- <?php
- class menu
- {
- private $_xml_source;
- private $_language;
- private $_access_level;
- //permet d'afficher le noeud de depart(accueil)
- var $_show_starting_node;
- //constructeur
- function menu($set_xml_source,$set_access_level,$set_language)
- {
- $this->_xml_source=$set_xml_source;
- $this->_access_level=$set_access_level;
- $this->_language=$set_language;
- }
- //fonction recursive pour parcourir toutes les branches du xml
- private function check_node($node)
- {
- echo('<ul>');
- foreach($node->sitenode as $sitenode)
- {
- if($this->is_in(explode(',',$sitenode['level']),$this->_access_level)==true)
- {
- echo('<li><a href=\'');
- echo($sitenode['url']);
- echo('\' ');
- if(!empty($sitenode['id'])){echo('id=\''.$sitenode['id'].'\' ');}
- if(!empty($sitenode['class'])){echo('class=\''.$sitenode['class'].'\' ');}
- echo('>');
- echo($sitenode[$this->_language]);
- echo('</a>');
- if(!empty($sitenode->sitenode))
- {
- $this->check_node($sitenode);
- }
- echo('</li>');
- }
- }
- echo('</ul>');
- }
- public function display()
- {
- $xml=simplexml_load_file($this->_xml_source);
- if ($this->_show_starting_node==true)
- {
- $this->check_node($xml);
- }
- else
- {
- $this->check_node($xml->sitenode);
- }
- }
- private function is_in($tab,$value)
- {
- $return_value=false;
- foreach($tab as $tab_value)
- {
- if($tab_value==$value)
- {
- $return_value=true;
- }
- }
- return $return_value;
- }
- }
- ?>
-
-
- XML exemple :
-
- <?xml version="1.0" encoding="utf-8"?>
- <sitemap>
- <sitenode url='index.php' fr='Accueil' en='Index' level='0,1,2,3,4,5' >
- <sitenode url='page2.php' fr='Pagefr1' en='Pageen1' level='0,1,2,3,4,5' id='mnu_page2'>
- <sitenode url='page3.php' fr='Pagefr2' en='Pageen2' level='0,1,2,3,4' class='level2' />
- <sitenode url='page4.php' fr='Pagefr3' en='Pageen3' level='0,1,2,3,4' />
- </sitenode>
- .....
- </sitenode>
- </sitemap>
<?php
class menu
{
private $_xml_source;
private $_language;
private $_access_level;
//permet d'afficher le noeud de depart(accueil)
var $_show_starting_node;
//constructeur
function menu($set_xml_source,$set_access_level,$set_language)
{
$this->_xml_source=$set_xml_source;
$this->_access_level=$set_access_level;
$this->_language=$set_language;
}
//fonction recursive pour parcourir toutes les branches du xml
private function check_node($node)
{
echo('<ul>');
foreach($node->sitenode as $sitenode)
{
if($this->is_in(explode(',',$sitenode['level']),$this->_access_level)==true)
{
echo('<li><a href=\'');
echo($sitenode['url']);
echo('\' ');
if(!empty($sitenode['id'])){echo('id=\''.$sitenode['id'].'\' ');}
if(!empty($sitenode['class'])){echo('class=\''.$sitenode['class'].'\' ');}
echo('>');
echo($sitenode[$this->_language]);
echo('</a>');
if(!empty($sitenode->sitenode))
{
$this->check_node($sitenode);
}
echo('</li>');
}
}
echo('</ul>');
}
public function display()
{
$xml=simplexml_load_file($this->_xml_source);
if ($this->_show_starting_node==true)
{
$this->check_node($xml);
}
else
{
$this->check_node($xml->sitenode);
}
}
private function is_in($tab,$value)
{
$return_value=false;
foreach($tab as $tab_value)
{
if($tab_value==$value)
{
$return_value=true;
}
}
return $return_value;
}
}
?>
XML exemple :
<?xml version="1.0" encoding="utf-8"?>
<sitemap>
<sitenode url='index.php' fr='Accueil' en='Index' level='0,1,2,3,4,5' >
<sitenode url='page2.php' fr='Pagefr1' en='Pageen1' level='0,1,2,3,4,5' id='mnu_page2'>
<sitenode url='page3.php' fr='Pagefr2' en='Pageen2' level='0,1,2,3,4' class='level2' />
<sitenode url='page4.php' fr='Pagefr3' en='Pageen3' level='0,1,2,3,4' />
</sitenode>
.....
</sitenode>
</sitemap>