Eu criei um menu personalizado (vamos chamá-lo de "mynav") e, no meu tema, criei um modelo específico para ele ( block--menu--menu-mynav.tpl.php
) que contém:
<div id="mynav" class="<?php print $classes; ?>"<?php print $attributes; ?>>
<?php print $content ?>
</div>
Isso funciona bem.
No entanto, prefiro aplicar o ID à lista não ordenada gerada e contida $content
. Eu acho que preciso criar uma função MYTHEME_links__system_mynav_menu
como esta:
function MYTHEME_links__system_mynav_menu($variables) {
return "TEST"; // Generate HTML here (<ul id="mynav">...)
}
mas não parece ter um efeito.
O que estou fazendo errado?
Respostas:
Para criar um tema para a lista não ordenada, você precisa chamar theme_menu_tree (). Você pode editar seu template.php para chamar isso.
Então, se você deseja colocar um tema em seus links, chame theme_menu_link ().
Agora, o problema com o Drupal 7 é que há um erro grave na exibição da trilha ativa dos menus personalizados.
Veja a edição
# 520106 - Não há maneira de definir dinamicamente a trilha ativa
Edição # 942782 - Os menus personalizados nunca recebem uma trilha ativa
Você está basicamente sem sorte se quiser alguns menus personalizados verdadeiros. Essas questões existem há muito tempo na comunidade drupal, por isso não tenho certeza se elas serão corrigidas em breve. Não sei se existe algum PHP que possa ajudar com isso. Você pode recorrer a alguns módulos alternativos para facilitar a funcionalidade, como Atributos de Menu e Bloco de Menu . Ambos podem ajudar a contornar o sistema de menus do Drupal 7.
fonte
Dentro do template.php do seu tema, essa era a maneira de fazer as coisas no Drupal 6
No Drupal 7, você precisa ligar
fonte
MYTHEME_menu_link
parece lidar apenas com os links individuais. Eu não consigo alcançar oul
.