Menu des sections
J'aimerais "bêtement" mettre un menu de navigation sur mon site.
Je voudrais avoir dans une boîte de navigation un menu de mes sections, comme sur beaucoup de sites.
Evidemment, je ne veux pas l'écrire en dur pour ne pas avoir à le modifier à chaque modification de mon arborescence de sections.
Et à ma grande surprise, soit il est tard et j'y vois plus rien, soit ce n'est pas possible dans yacs.
Je vous met un lien vers la page correspondante dans ma maquette, le menu est à gauche Maquette
Evidemment, je ne veux pas l'écrire en dur pour ne pas avoir à le modifier à chaque modification de mon arborescence de sections.
Et à ma grande surprise, soit il est tard et j'y vois plus rien, soit ce n'est pas possible dans yacs.
Je vous met un lien vers la page correspondante dans ma maquette, le menu est à gauche Maquette
Fernand![]() from Paris 1287 posts | Dans YACS, il y a une section spéciale qui s'appelle "Menus" Si elle n'existe pas, tu la crée en tant que section spéciale et tu lui donne le nom que tu veux. Tu crées une page dans cette section que tu appelles "Menu" (pour rester orginal). Dans cette page tu écris les données que tu veux voir apparaître à ton menu avec les adresses des sections. Un exemple, celui de ce site (je suis fainéant, alors je n'ai pas été chercher ailleurs pour répondre à ton cas de figure précis, mais les données sont les mêmes): Tu vois ce que ça donne pour la section "Français", par exemple, qui est chez nous la section=41. He bien tu fais la même chose en ce qui te concerne pour les sections figurant au hit parade du site que tu es en train de faire. Comme le dirait Agnès: ".. du YACS tout craché " (ça c'est un slogan!). L'équilibre entre automatisme et la liberté de choix. Fastoche, non. |
Agnès![]() from le Grésivaudan (grenoble-chambéry) Associate, 2030 posts | Fernand : Merci pour ta réponse. Je crois cependant que le pb se situe un peu ailleurs : il faut en l'occurence que le menu soit généré automatiquement avec les sous-sections présentes, de manière à ne pas être obligé de refaire le menu si les sous-sections changent, ce qui sera le cas puisque les sous-sections sont le reflet du catalogue produits de l'entreprise (lequel évolue bien sûr). Les fonctionnalités que nous avons repérées dans Yacs ne suffisent pas à cet objectif - sauf si nous sommes passés à côté de quelque chose, mais dans ce cas tant pis. Tof s'est attelé à la tâche. Nous en avons besoin pour demain ( ).On vous tient au courant. Agnès Il n'y a pas de problèmes, que des solutions. |
| GnapZ from Caribbean 2970 posts |
Agnès : Je vois ce que vous voulez et j'ai fait quelques essais mais rien de concluant. Avoir une fonction qui liste les sections (et sous-sections sur plusieurs niveaux) pourait être utile surtout dans l'exemple de la maquette. Je ne sais pas trop m'y prendre mais Tof semble savoir alors bon courage. Je vois ça un peu comme la fonction sitemap mais en liste et sur plusieurs niveaux de profondeur. Ensuite, le résultat pourrait être placé soit dans un article, soit en boîtes. En fait, ça pourrait carrément remplacer le sitemap (index.php des sections) car cela donnerait au moins la même chose mais avec la profondeur complète des sous-sections. Une sorte de liste des sections de tête avec chaque sous-niveau dans un folder ... sauf que les Folder ne s'imbriquent pas (encore). |
| Tof from Grenoble-Chambery 512 posts |
Voilà, j'ai fini mon menu. Il faut inclure le code suivant dans son skin.php et l'appeler depuis son template.php par l'instruction suivante : Skin::build_navigation_menu($father); où $father contient l'id de la section mère de l'arborescence à traiter.
Cette instruction est à placer après le Page::Side();Le code à inclure dans son skin.php est dans le fichier attaché situé sur cette page. Tof |
| GnapZ from Caribbean 2970 posts |
Tof : Ben j'en ai un peu bavé parce que je n'avais pas compris (puisque mal lu) qu'il fallait copier ton fichier DANS le skin.php ! J'essayais de l'appeler par un include, alors j'y avais ajouter les balises php ... bon ça a marché mais quand j'ai relu comme il faut, j'ai remis comme prévu et c'est bon. Je n'ai qu'une seule section avec 2 sous-sections donc je n'ai pu tester que celle-là. Par contre, j'ai pas réussi à utiliser le 2ème paramètre, ça me donne rien. Donc, que doit-on mettre en 2ème paramètres (facultatif) pour avoir le nom de la section du param1 en titre ? Peut-on avoir (héhé, l'idéal) l'arborescence depuis la racine (sitemap), sachant que celle-là n'a pas de numéro ? En tous cas, merci. |
| Tof from Grenoble-Chambery 512 posts | GnapZ : Le deuxième paramètre (facultatif) sert à passer l'id de la section courante pour pouvoir l'avoir en gras dans le menu. un exemple tiré de mon template.php pour retrouver la section courante :
// récupération section courantePour afficher le menu complet, je n'ai pas réussi vraiment; ça marchotte en passant null en premier paramètre mais pas de manière arborescente. Je n'ai pas eu le temps de vérifier mais je crois que la fonction get_children_of_anchor renvoie toutes les sections si elle reçoit null en paramètre alors qu'elle ne renvoie que les noeuds enfants d'une ancre spécifiée (pas les autres descendants). Tof |
| GnapZ from Caribbean 2970 posts |
Tof : Ok, merci, je vais essayer d'approfondir mais je passe mes journée sur free et le bug de la 6.5 ... j'suis tenace jusqu'à ce que Bernard nous dise "ben, c'était juste ça" ! |
| Bernard from nearby-an-airport Associate, 6732 posts |
Tof: très bien tout ce boulot. Je pense le reprendre dans la 6.6, et le généraliser comme suit :
[tree=123], pour créer une arborescence où on le souhaite, comme on le souhaite.
|
| Tof from Grenoble-Chambery 512 posts |
Bernard : ça me convient tout-à-fait. Welcome Back, Sir Tof |
| Bernard from nearby-an-airport Associate, 6732 posts | Tof: Attention en juillet je pars trois semaines... |
| Cloubech from Chonas l'Amballan Associate, 779 posts |
Bernard : Et ce rallye des princesses. Bien passé ? non je dis ca parce que j'en ai croisé quelques unes vers Grenoble
|
| Bernard from nearby-an-airport Associate, 6732 posts |
Cloubech: pas mal merci. YACS s'est avéré assez puissant, avec quelques overlays de mon cru, pour faire tous les classements. Presque tout seul en plus, puisque j'ai rajouté cette année une moulinette en PHP pour récupérer les temps des chronos électroniques. Beaucoup de boulot en début de semaine pour l'ajout d'un tableau de contrôle demandé par mon collègue, puis plus cool après... Donc, YACS en serveur d'appli sur le terrain, ça fonctionne pour de vrai ! Qu'on se le dise ! |
Rate this page
Posted by Tof on June 5 2006, commented by Bernard on June 5 2006, (popular)


).