Catégories:
Bonjour !
Je souhaiterai thèmer le menu principal et secondaire (créés via hook_menu), pour l’ensemble d’un module précis.
Or :
- Soit je modifie (via CSS) les classes pour «tabs primary» et «tabs secondary», mais l’inconvénient est que cela va porter sur la totalité du thème.
Il n’y a aucun identifiant CSS qui me permettrait de réduire la portée de ces deux classes CSS pour le module concerné. - Soit je fais appel aux hooks theme_menu_local_task et theme_menu_local_tasks, mais là encore, cela va porter sur la totalité du thème.
Or, je souhaiterai que cette modification ne concerne QUE un module précis (il s’agit d’un module que je développe).
Sur ce coup, j’avoue que je sèche… :-/
Il y a t’il une page de documentation (voire un exemple) à ce sujet qui pourrait me sortir de ce pétrin ?
D’avance merci !
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Tu ne peux pas faire un test sur les argument de l’url dans tes hooks de themes ? Si tu as des taches locales ça veut dire que tout se passe à la même adresse et donc que tu peux faire un test php pour savoir sur quelle page tu te trouves du genre
<?phpif(arg(0)=='url'){
$output ='bblabla'
}
else {
etc...
?>
Mais je me demande si tu prends le probleme dans le bon sens en fait : l’interet des taches locales c’est justement qu’elles sont designés de façon identique partout sur le site ce qui permet une intégration graphique facile ensuite sur n’importe quel theme. C’est à mon sens une unité à exploiter justement ; qui permet une meilleure réutulisabilité du code et une meilleure portabilité.
Ne peux tu pas créer un menu sans passer par les taches locales ? en utilisant simplement les l() de drupal ou encore en passant par la création d’array que tu themeras ensuite automatiquement avec la fonction «links». Tu peux conserver le mappage des fonctions en choisissant le type MENU_CALLBACK pour les items de menu.
J’ai fait ça pour un module ou le design du menu était vraiment particulier et pour lequel je désirais une feuille de css dédié qui n’a pas à s’embarasser de tout les css attachés aux primary tasks.
http://formation.ideia.fr/formation/drupal-la-carte | http://twitter.com/nyl_auster
nyl auster
838
En fait, ces onglets («tabs secondary») contiennent des lettres alphabétiques (un onglet = une lettre) servant à paginer un répértoire téléphonique.
J’avais choisi de me servir de ces tâches locales pour créer cette barre d’onglets. En réinitialisant le cache des menus à chaque ajout/modification/suppression d’un node.
Dans le cas présent, c’est uniquement cette barre d’onglets qui doit être stylée (CSS) autrement que les autres barres.
Je pensais que Drupal aurait permis de mettre un identifiant CSS pour les menus, mais je n’ai rien trouvé de la sorte dans hook_menu().
Quand tu parles de créer un menu sans passer via les tâches locales, fais-tu allusion à theme_item_list() et à theme_item(), ou vises-tu une autre fonction ?
Merci en tout cas pour les pistes ouvertes ! :-)
Bouchon
26