2013-06-04 2 views
0

J'ai un menu personnalisé appelé "Pied de page", le nom lisible par machine est "menu-footer". Et je veux remplacer la fonction theme_menu_tree() pour le menu. Mon nom de thème est "abc", donc j'ai essayé abc_menu_tree__menu_footer() et ça ne marche pas. Mais modifier abc_menu_tree() fonctionne, il doit donc s'agir de la substitution de menus personnalisés. J'ai vérifié cette Question mais cela ne fonctionne pas. Y a-t-il quelque chose que je dois faire pour autoriser le remplacement des menus personnalisés?YOUR_THEMENAME_menu_tree__YOUR_MENUNAME ne fonctionne pas

Merci pour votre aide à l'avance.

Edit:

Le code de la fonction:

function abc_menu_tree__menu_footer($variables) { 
    return '<nav class="sub-navigation"><ul>' . $variables['tree'] . '</ul></nav>'; 
} 

abc_menu_link__menu_footer() ne peut pas être surchargée aussi. Dans abc_menu_link(), vous pouvez vérifier le contexte, ce n'est donc pas un gros problème. Si je vérifie si le thème de l'élément est "menu_link__menu_footer" il fonctionne pour les liens du menu.

Edit2:

Je ne peux pas passer outre abc_menu_tree pour le menu principal aussi. abc_menu_tree__main_menu ne fonctionne pas.

+1

Etrange parce que cette même fonction fonctionne pour moi pour 4 menu personnalisé dans template.php dans le même format. Pouvez-vous s'il vous plaît poster toute la fonction ici? – RajeevK

+1

Avez-vous vidé le cache du site après avoir déclaré la nouvelle fonction dans le fichier 'template.php' du thème?! –

+0

J'ai rincé les caches dans les paramètres de performance et ajouté le code et les infos supplémentaires à ma question. Merci pour vos réponses! ;) – Abenil

Répondre

1

Pour utiliser THEME_menu_tree dans le menu principal, au lieu d'utiliser THEME_menu_tree__main_menu(), vous devez utiliser THEME_menu_tree__primary()

En effet, le menu qui fournit les liens primaires est défini dans admin/structure/menu/paramètres. J'ai pensé à cela en explorant la fonction radix_preprocess_page() du thème radix, où la variable du menu principal est configurée pour être utilisée dans le fichier page.tpl.php en utilisant variable_get(). Duh! Il est si facile d'oublier ces minuscules petites configurations.

Alors ouais. THEME_menu_tree__primary() et THEME_menu_tree__secondary() sont probablement les fonctions que vous recherchez!