Une rubriques active si une de ses sous-rubriques est active

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Je but sur ce truc depuis plusieur jours.
Il est important de renseigner visuellement le visiteur sur l'endroit où il est dans le site. Les miettes de pain ne sont pas suffisant à mon goût. Donc je souhaite que, si on se trouve dans une sous-rubrique (ici un lien secondaire), l'onglet de la rubrique dans laquelle se trouve cette sous-rubrique soit aussi dans visuellement dans l'état actif.

Cette problèmatique doit-être assez banale. J'ai trouvé quelques éléments de réponse dans ce thread : http://drupalfr.org/node/1027. J'ai regardé les fonctions générant les menus primaires et secondaires dans la template.php, la page.tpl.php, le menu.inc (notamment la fonction theme_menu_links.

Mais je ne comprends toujours pas comment et où sont générés ces menus et quelle condition mettre pour avoir la class active pour la rubrique et sa sous rubrique ?

Peut-être que passer par un menu généré en fonction de la taxonomy est intéressant.

Version de Drupal : 

Dans le thème, les menus sont gérés au final par le fichier block.tpl.php (pour PHPTemplate), les variables mises à disposition permettent de déterminer le type de block à afficher ainsi que l'identifiant du block ou menu.

Il me semble que ce que tu décris est le comportement par défaut... à condition que...

... ton menu soit bien construit (les sous-rubriques sont rattachées aux rubriques, et surtout, les nodes qu'on trouve dans les sous-rubriques leurs sont rattachés également, CE QUI N'EST PAS LE CAS PAR DEFAUT. Si j'ai bien compris, Zigazou a codé un module pathmenu qui permet de faire ça.

Bon j'y arrive pas, mais alors pas du tout.
J'ai ouvert le fichier page.tpl.php pour modifier ma template. Mais je n'arrive pas à remonter le fil jusqu'à le calcul de l'expression servant à produire le menu : theme('menu_links', $primary_links). J'ai regardé dans template.php, dans menu.inc, dans theme.inc. Il n'est pas mention de $primary_links.
Quelqu'un pourrait-il m'orienter ?

Ayé.
En faite la réponse se trouve dans le fichier include menu.inc (répertoire includes). La fonction function menu_primary sert à produire le menus primaires et secondaires en fonction de la page active. Elle associe à chaque rubrique des identifiants en tant qu'attribut (comprends pas trop pourquoi, mais bon) ex : 1-23-active (voir code source d'une page).
Il suffit de rajouter après -active : " active". Et ça marche.
Voilou.