Générer des menus avec un DOM récursif...

Eléphanteau du PHP | 19 Messages

04 août 2009, 19:11

Bonjour,

Comme j'allais vous soumettre un problème, j'ai extrait le code concerné de mon application pour vous faire un petit package.
Et ce faisant, j'ai trouvé ce qui clochait ! :mrgreen:

Alors comme je ne suis pas radin, le voici quand même, qui fonctionne.

C"est une classe pour faire des menus imbriqué en utilisant l'objet DOM qui est légèrement surchargée.
Son gros avantage est de gérer tous les menus les sous-menus (1seul niveau testé) avec 1 seul dataset (donc 1 seule requête sur la BDD)
De cette façon, si vous déclrez la classe en singleton et vous chargerez tous vos menu d'un seul coup.
Amusez-vous à rajouter des menus aux données et à passer un autre nom de menu dans $arg['name'] lors de l'appel à la méthode build_Menu ...

Le package vous génère un affichage en 2 parties (2 DIVs côte à côte) :

* celui de gauche pour vos debug (echo, var_dump...)
* celui de droite pour le rendu final

Il ne reste plus qu'à intégrer un petit JS pour gérer l'apparition des sous-menus) ou à modifier le CSS pour un affichage vertical.

Il s'agit de ma première réalisation de ce type alors merci de ne pas être trop sévère dans vos jugements.
Par contre, si vous avez des suggestions, elles sont les bienvenues.

Considérez ça comme une avance sur toutes les infos que je vais vous réclamer... :wink:

PS : les données sont sérialisées. Vous ne vouliez quand même pas ma BDD ?!
dom.zip
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Celui qui recherche la vengeance devrait commencer par creuser 2 tomnes (Confucius)

ViPHP
ViPHP | 4674 Messages

07 août 2009, 16:40

Hey :-),

Ne serait-ce pas inspiré de l'article Dynamically Create Menu With PHP DOM de PHPro ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

07 août 2009, 22:10

Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 18 Messages

07 août 2009, 22:24

Merci, c'est sympa de partager, en plus c'est utile ce genre de fonctions.
Quelques tuto photoshop sur mon site ^^

Eléphanteau du PHP | 19 Messages

08 août 2009, 01:16

Ne serait-ce pas inspiré de l'article Dynamically Create Menu With PHP DOM de PHPro ?
Bien sûr ! C'est un de mes sites de références. Mon modèle MVC vient de ce site également. Ce n'est pas forcément le meilleur, mais je l'ai bien assimilé.
Celui qui recherche la vengeance devrait commencer par creuser 2 tomnes (Confucius)