davidm
mardi 10 janvier 2006 à 16:12
MODx offre un snippet de génération automatique de menu qui est assez flexible et qui ne cesse dévoluer.
Tu as la possibilité d'encapsuler ton menu dans un div, et d'imbriquer des menus. Tous les éléments se voient affectés une classe CSS (div, ul, li...), avec bien sûr une classe spécifique pour la page en cours de visualisation (i.e pour la page active). Tu as aussi une class différente pour le premier et le dernier élément du menu.
Les paramètre dispo pour la config du menu :
siteMapRoot => pour définir à quel niveau le menu doit débuter (tu n'est donc pas limité à la racine. Ca permet de créer des menus spécifiques dans des rubriques section)
maxLevels => la profondeur maximum que doit comporter le menu par rapport à ton arborescence (en partant de siteMapRoot).
titleOfLinks => Quel champ de la base de donnée doit servir de base pour le nommage des liens (par défaut, c'est pagetitle mais ça peut être menutitle, id, pagetitle, description, parent, alias, longtitle, introtext i.e tout les champs existant d'un document)
pre => le contenu que tu souhaites ajouter en préfixe à tes "li"
selfAsLink => Définir si la page en cours doit comporter un lien ou pas
hereClass => Classe CSS pour li et a pour la page active
showDescription => Définir si tu veux que la description du document soit incluse dans la balise title du lien
descriptionField => Choisir quel champs de la base doit être utilisée pour la description (par défaut, description mais on peut choisir introtext)
topdiv => Définir si la balise ul de premier niveau doit être encapsulée par un div
topdivClass => Définir la classe du div contenant le menu (si encapsulation)
topnavClass => Définir la classe de l'ul de premier niveau
useCategoryFolders => Si tu veux que les dossiers sans contenu comporte un lien vers une page de rubrique
categoryClass => Définir la classe CSS du dossier
subdiv => indique si les ul imbriquées doivent être encapsulée dans un div
subdivClass => Class du div en question
orderBy => Quel champ de la base doit définir l'ordre de classement du menu
orderDesc => Ordre descendant ou ascendant
Comme tu vois, cela donne une flexibilité assez poussée

Plus d'infos sur l'utilisation du snippets ici :
http://modxcms.com/snippet-dropmenu.htmlLa traduction est en cours sur le wiki, bientôt tout ça en français