Блок меню core модуля menu позволяет вывести всю иерархию меню полностью, но иногда требуется показать только 1-2 верхних уровня. Посмотрим как организовать такой вывод.
Drupal в модуле menu использует функцию menu_tree(‘ИМЯ МЕНЮ’), чтобы рендерить нужное меню в блоке. Глубину обхода дерева здесь нельзя задать. Но та в свою очередь вызывает функцию menu_tree_page_data($menu_name, $max_depth = NULL, $only_active_trail = FALSE), где второй параметр — то, что нам нужно.
Пример вывода верхнего уровня главного меню:
|
|
$tree = menu_tree_output(menu_tree_page_data('main-menu', 1)); print render($tree); |
Осталось вставить это в шаблон, или оформить как свой блок и использовать вместо штатного блока меню.
Drupal 7
Данная запись опубликована в 25.03.2019 15:05 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Октябрь 20, 2019 г.
Столкнулся со следующим неприятным багом, при использовании модуля pathauto, совместно с модулем транслитерации: Drupal генерирует "обрезанные" синонимы адресов страниц.
Длина получаемого синонима плавала от 40-70 символов, и я никак не мог понять ...
Читать
Май 28, 2021 г.
Небольшой сниппет (snippet) по удалению сущностей nodequeue из кода. Может быть полезно при миграции данных.
Удобно оперировать с машинным именем нод-кью, но функция удаления требует ID, потому код обычно обретает следующие формы:
[crayon-691c7df5b2b5c313871136/] ...
Читать
Март 31, 2019 г.
Модуль Views - мощный инструмент в копилке друпалера. Конструктор позволяет создавать условия, перекрывающие большую часть потребностей в практических ...
Читать
Февраль 7, 2019 г.
Если вы решили вывести блок, реализованный в каком либо модуле, программно, то следующие примеры кода помогут вам.
Используя block API
Запрашиваем данные блока через API, готовим массив для последующего рендеринга:
[crayon-691c7df5b2fd4944222877/] ...
Читать