xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

В 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
Похожие записи

Комментарии RSS

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

не сталкивался с таким

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

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

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

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

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

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

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

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

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

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

Спасибо, помогло

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

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании