Dynamiser un item du menu primaire si l'ordre des items du menu secondaire est modifié

Catégories:

Bonjour,

Je développe actuellement un site pour un agent de photographes.

Le site est doté d’un menu primaire permettant de se balader de section en section (photographes, contacts, liens, etc…).
Mon client souhaite avoir un sous-menu sur les pages de la section «Photographes» permettant de passer d’un photographe à un autre. Jusque là pas de soucis, lorsqu’il crée son contenu, il peut ajouter un item au sous-menu.

Ce qui m’ennuie un peu plus c’est qu’il ne veut pas de page de regroupement des photographes ; autrement dit lorsque je clique sur le lien «Photographes» présent dans le menu principal, je n’arrive pas sur la page «/photographes» mais sur la page «/photographes/appelons-le-numero-1».
Jusque là toujours pas de problème, j’ai attribué mon lien «/photographes/appelons-le-numero-1» à l’item de menu «Photographe» présent dans le menu principal.

Venons en au cœur du problème :
Si demain mon client décide de mettre à jour son sous-menu et de déplacer «appelons-le-numero-1» en seconde position, je souhaiterai que le lien de l’item «Photographes» présent dans le menu principal pointe alors vers l’item du sous-menu qui se retrouve désormais en première position, soit «/photographes/appelons-le-numero-2».

En gros je voudrai que mon lien «Photographes» du menu principal soit dynamique par rapport à l’ordre des items du sous-menu.

Peut-être que je me complique la vie, auquel cas je suis preneur de toute solution plus simple, mais là je suis parti dans une idée de faire un trigger mettant à jour ce fameux lien du menu principal lorsque l’ordre du menu secondaire est modifié.

Dans l’idée ça me semblait simple mais dans la pratique beaucoup moins… J’ai mon module «trigger» activé ainsi que le module «rules». La question que je me pose désormais est : comment puis-je créer un évènement «mise à jour du menu-secondaire» pour pouvoir par la suite exécuter mon code PHP à l’exécution de cet évènement ???

Merci d’avance pour toute réponse.

En espérant avoir été assez clair… ce qui n’est pas toujours évident à 2h15 du matin ;)

#

Hummm pas simple à faire Drupal n’est pas très flexible de ce côté là… Je suggèrerais une fonction de redirection sur l’entrée de menu «photographes» qui redirige vers le premier élément de menu (à l’aide de la fonction drupal_goto()). Pour déterminer le premier enfant de ton menu je ne vois rien de plus simple que de faire une requête sur la table menu_links en déterminant le mlid de ton élément «photographes», en regardant s’il a des enfants et en les triant par poids + ordre alphabétique.
Ca devrait faire l’affaire, non ?

Twitter : @Artusamak

Syndiquer le contenu