Я создал собственное меню (давайте назовем его «mynav»), и в своей теме я создал шаблон специально для него ( block--menu--menu-mynav.tpl.php
), который содержит:
<div id="mynav" class="<?php print $classes; ?>"<?php print $attributes; ?>>
<?php print $content ?>
</div>
Это отлично работает.
Однако я бы предпочел применить идентификатор к неупорядоченному списку, который создается и содержится в $content
. Я думаю, мне нужно создать такую функцию MYTHEME_links__system_mynav_menu
:
function MYTHEME_links__system_mynav_menu($variables) {
return "TEST"; // Generate HTML here (<ul id="mynav">...)
}
но, похоже, это не влияет.
Что я делаю неправильно?
Ответы:
Чтобы создать тему неупорядоченного списка, вам нужно вызвать theme_menu_tree (). Вы можете отредактировать ваш template.php, чтобы вызвать это.
Затем, если вы хотите создать тематику для своих ссылок, вызовите theme_menu_link ().
Теперь проблема с Drupal 7 заключается в том, что существует серьезная ошибка при отображении активного следа пользовательских меню.
См. Выпуск
Проблема № 520106 - Нет способа динамически установить активный след
Проблема № 942782 - Пользовательские меню никогда не получают активный след
Вам в основном не повезло, если вы хотите настоящие пользовательские меню. Эти проблемы очень давно существуют в сообществе друпалов, поэтому я не уверен, будут ли они исправлены в ближайшее время. Я не знаю, есть ли какой-нибудь PHP, который может помочь с этим. Вы можете обратиться к некоторым альтернативным модулям для того , чтобы помочь облегчить functionaltiy, как меню Attributes и меню блок . Они оба могут помочь обойти систему грубого меню в Drupal 7.
источник
В template.php вашей темы это был способ сделать что-то в Drupal 6
В Drupal 7 нужно позвонить
источник
MYTHEME_menu_link
кажется, обрабатывать только отдельные ссылки. Я не могу добраться доul
.