Générer l'arbre html à partir d'un array
Bonjour,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| //Générer l'arbre html du menu
function displayNav($array) {
//html du menu
$html = "";
if ( count($array )> 0 ) {
//Menu principal
$html .= '<ul>';
foreach ($array as $item) {
$html .= '<li>';
$html .= '<a href="#"';
if ( $item['css'] ) $html .= ' class="'.$item['css'].'"';
$html .= '>'.$item['name'].'</a>';
//Sous menu
( is_array($item['subs']) && count($item['subs']) > 0 ) ? $html .= displayNav($item['subs']) : '';
$html .= '</li>';
}
$html .= '</ul>';
}
return $html;
}
$temp = array(
array('name' => 'Accueil', 'css' => NULL, 'subs' => NULL),
array('name' => 'Pays', 'css' => NULL, 'subs' => array(
array('name' => 'Rca', 'css' => NULL, 'subs' => NULL),
array('name' => 'Rdc', 'css' => 'current', 'subs' => NULL),
array('name' => 'Tchad', 'css' => NULL, 'subs' => NULL))
),
array('name' => 'Contact', 'css' => NULL, 'subs' => NULL)
);
echo displayNav($temp); |
Résultat
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<ul>
<li><a href="#">Accueil</a></li>
<li><a href="#">Pays</a>
<ul>
<li><a href="#">Rca</a></li>
<li><a href="#" class="current">Rdc</a></li>
<li><a href="#">Tchad</a></li>
</ul>
</li>
<li><a href="#">Contact</a></li>
</ul> |
Je souhaite donc modifier displayNav() pour ajouter une classe .chemin sur les parents li de .current.
Voici le résultat attendu
Code:
1 2 3 4 5 6 7 8 9 10 11
| <ul>
<li><a href="#">Accueil</a></li>
<li class="chemin"><a href="#">Pays</a>
<ul>
<li><a href="#">Rca</a></li>
<li class="chemin"><a href="#" class="current">Rdc</a></li>
<li><a href="#">Tchad</a></li>
</ul>
</li>
<li><a href="#">Contact</a></li>
</ul> |
En JavaScript, je le fais ainsi avec jQuery
Code:
1 2
|
$('.current').parents("li").addClass('chemin'); |
Comment le faire en Php ?
Merci d'avance...