@Vlad171

Как правильно работать с menu_tree и menu_link в Drupal?

Уважаемые друпаловоды! Кипит мозг. Ничего не получается! Суть в следующем: начал изучение Drupal. Решил с нуля создать тему, а заодно и разобраться что к чему в этой cms. Первое на что наткнулся - необходимость кастомизировать меню. Можно, конечно, тупо вывести его через блок со своей разметкой, но хочется чтобы была возможность работать с ним в обычном режиме через админку. Почитал в просторах интернета как можно сделать, люди на toster посоветовали: переопределить функции menu_tree(обертка для всего меню) и menu_link(обертка для элемента меню). Проблема в том, что ничего не меняется вообще. Фрагмент где выводится регион для меню(page.tpl.php):
<body>
<div id="main">
    <div id="header"></div>
    <?php print render($page['header_menu']); ?>
    <div id="info">
        <div id="container"></div>
    </div>
</div>
</body>

Код для template.php, где переопределяется menu_tree:
<?php
function factor_menu_tree__main_menu($variables) {
  return '<ul class="topNav">' . $variables['tree'] . '</ul>';
}

Привожу только часть, где тегу ul должен быть назначен class topNav.
factor.info:
name = factor
description =Factor theme
package = Core
version = VERSION
core = 7.x
stylesheets[all][] = style.css
regions[header_menu] = Меню
regions[content] = Content bottom

Название темы factor, меню-main_menu. Соответственно папку с темой расположил в sites/all/themes.
Подскажите где и что не так!!!
  • Вопрос задан
  • 451 просмотр
Решения вопроса 1
@Vlad171 Автор вопроса
Ответ был прост: надо использовать машинное имя созданного меню, я же использовал просто название. Все получилось.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
andead
@andead
друпал девелопер, фрилансер
factor__menu_tree__main_menu -> factor_menu_tree__main_menu
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы