Вывод нужного уровня подменю в Drupal

Система меню в друпале сделана правильно и в большинстве случаев не требует установки каких то дополнительных модулей, чтобы получить тот результат, который требуется. И в данной статье мы не будем как то дополнять саму систему меню drupal-а.

В тоже время штатные блоки (blocks) предоставляемые модулем меню не сильно радуют гибкостью настроек. Да и нет фактически никаких настроек.

Задача

Не редко возникает следующая задача — вывести не всё меню, а меню соответствующее подразделу сайта. Подразумевается, что где то выводится содержимое корня меню (допустим полоска главного меню, построенная на основе primary-menu), т.е. какие то основные разделы сайта. А уже в самих разделах нужно показать блок меню с подразделами, исключая корень (первый уровень меню).

Нужно это обычно для того, чтобы не дублировать главное меню в блоке с подменю. Также я сталкивался с решениями в дизайне, когда отдельно выводят первые два уровня меню (корень и подуровень) и нужно как бы отсечь два уровня меню от корня для вывода их в разделах сайта.

Модуль

Код, решающий эту задачу, состоит из одной короткой функции, и ещё одна функция объявляет блок (block) для движка drupal.

Суть работы сводится к тому, что мы получаем данные всего дерева меню, а затем убираем нужное число уровней (число итераций, устанавливаемое в цикле) от корня меню.

Если модуль вам может оказаться полезным — качайте архив.

Мало букафф? Читайте есчо !

Список всех типов публикаций в Drupal

Май 13, 2020 г.

Как получить полный список зарегистрированных типов публикаций в Drupal 7. Задача типична для бек-енда при создании форм страниц настроек. Потому покажу в статье пример реализации поля для формы с выбором типов публикаций. В API Drupal существует ...

Читать

Как получить код языка по умолчанию в Drupal

Июль 4, 2025 г.

В Drupal (начиная с версии 8 и выше, включая 10 и 11), чтобы получить код языка по умолчанию сайта (например, en, ru, fr), используйте следующий способ: [crayon-69daa596905c2997484185/] Подробности запроса: \Drupal::languageManager() — обращение ...

Читать

Вывод данных с группировкой во views drupal

Ноябрь 15, 2019 г.

Типичная проблема при использовании модуля views - как вывести результат группировки, т.е. столбец вроде COUNT(*). Это можно сделать штатными средствами ...

Читать

Rutube: интегрируем как oembed provider source в Drupal

Февраль 28, 2025 г.

Задача - добавить rutube как oembed провайдера в медиа библиотеку, чтобы можно было создать медиа тип Rutube, где будет поле для ввода ссылки. Медиа поля ...

Читать
 

Комментарии к «Вывод нужного уровня подменю в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: