Je trouve vraiment l'idée d'utiliser une fonction de récursivité pour construire les menus de mon site mais j'ai un problème et je me bats la tête depuis longtemps . J'ai besoin de ma fonction de menu pour retourner une liste imbriquée mais je ne veux pas que les éléments irrelevent non-actifs de l'arbre soient affichés.Fonction récursive PHP, pour créer une navigation de site comme liste imbriquée, mais sans éléments de menu inutiles
Détails. J'ai une base de données MySql avec une table appelée menu_items qui stocke tous les champs habituels pour un élément nav (target, link_text, title, etc) ainsi qu'un identifiant unique pour chaque élément et, surtout, un parent_id.
Tout cela est à débattre, par exemple, serait-il plus facile de stocker ces informations dans un fichier XML?
Par exemple est ici un exemple de menu avec tous les éléments montré:
<ul>
<li><a href="1.html">link 1</a>
<ul>
<li><a href="1-1.html">link 1-1</a>
<li><a href="1-2.html">link 1-2</a>
</ul>
</li>
<li><a href="2.html">link 2</a>
<ul>
<li><a href="2-1.html">link 2-1</a>
<li><a href="2-2.html">link 2-2</a>
</ul>
</li>
<li><a href="3.html">link 3</a></li>
</ul>
Mais si la page en cours est par exemple 1-2.html je veux avoir un menu comme celui-ci:
<ul>
<li><a href="1.html">link 1</a>
<ul>
<li><a href="1-1.html">link 1-1</a>
<li><a href="1-2.html">link 1-2</a>
</ul>
</li>
<li><a href="2.html">link 2</a></li>
<li><a href="3.html">link 3</a></li>
</ul>
Évidemment, je transmettrais l'ID ou le nom de la page en cours à la fonction Menu.
Vous avez des idées? Je me suis cogné la tête contre un mur depuis un certain temps maintenant :-)
Et je n'ai évidemment pas préparé votre question correctement. La mienne ne fait pas ça. J'utiliserais personnellement jQuery pour pouvoir ouvrir des liens de sous-pages pour le menu – Alex