Drupal → Как отобразить все уровни Main Menu

23.04.2011

В Drupal почему то принято хардкодить в page.tpl.php вывод Main Menu и Secondary Links (наверное, чтобы при установке темы всё работало из коробки). Всё бы ничего, но при таком подходе нельзя вывести все уровни основного меню, так как в логике функции menu_navigation_links() заложен вывод только одного.

Решение:

  1. В настройках пунктов меню включаем опцию Show as expanded (скриншот).
  2. В настройках темы отключаем Main menu (скриншот).
  3. На странице admin/structure/block перемещаем блок Main menu в нужный регион.

Profit.

Написанное актуально для
Drupal 7
Похожие записи

Комментарии

Евгений
23.04.2011, 22:18

Насколько помню в шестерке не было первого пункта. Приходилось писать фунцию вывода меню в виде дерева.

Насколько помню в шестерке не было первого пункта.

Был, прямо в списке пунктов.

Удаляем из шаблона page.tpl.php рендер переменной $main_menu.

Это можно отключить в настройках темы.

Это можно отключить в настройках темы.

точно, спасибо

Очередной вебмастер
04.05.2012, 13:17

Ну просто спасибище.
Только почему так по тупому сделано, я битый час пытался вывести 2 уровня через функцию menu_navigation_links в page.tpl...

Гость
31.08.2012, 00:37

это все очень хорошо и зашибись!
а как быть, если в настройках темы в админке невозможно снять галку дабы не отображать Главное меню....этой настройки тупо нет? Тема Pixture Reloaded....субтема AT

а так же можно -

<?php print render(menu_tree('main-menu')); ?>

Для тех, у кого большие меню и/или не охота кликать по всему ряду.
Ставим menu_block > в блоках появл-ся кнопка "Add Menu Block" > вкладка "Дополнит. настройки" > "Expand all children of this tree."

Добавить комментарий