Меню в виде SELECT в Drupal 7

Drupal обладает развитым набором инструментов с menu, т.к. меню — это одна из составляющих частей Drupal API. Хотя модуль Menu, входящий в состав ядра, можно отключить, но я пока не встречал проектов, в которых был бы отключен данный модуль. И уж совсем нельзя исключить библиотеку работы с меню (/includes/menu.inc).

Изучение API быстрее протекает на практике. Вот одна из таких практических задач — вывод меню (одного или нескольких) в виде одного выпадающего списка (html SELECT, отражающего иерархию пунктов меню.

Задача разбивается на два этапа — получение списка пунктов меню и формирование html кода элемента SELECT.

Получение списка пунктов меню в Drupal

Если нужны все меню сайта:

Вы получите массив пунктов всех меню в следующем виде:

Т.е. ключами будет пара значений — имя меню:ID menu, так называемый mlid. Название пункта меню будет сформировано таким образом, что мы увидим псевдоиерархическую структуру.

Получить пункты только определенных меню сайта.

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

Формат данных очевиден — массив меню — список меню сайта, где ключами является системное название меню, а значениями — человекопонятное название меню.

Вот как получить пункты только главного меню сайта:

html код элемента SELECT

Можно воспользоваться Drupal Form API, или собрать select своими руками. Т.к. контекст задачи неизвестен, то Form API привлекать в качестве примера не очень удобно.

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

Хак с Form API в Drupal 7: создаём HTML5‑поля (number, email, tel) без лишних модулей

Март 15, 2026 г.

Drupal 7 предлагает мощный Form API для построения форм. Однако при работе с HTML5‑атрибутами можно столкнуться с неожиданным ограничением: если вы попытаетесь задать тип поля number, email или tel стандартным способом, Drupal проигнорирует ваше значение ...

Читать

Выгрузка словарей таксономии в csv из Drupal

Декабрь 27, 2016 г.

Понадобилась выгрузка всей кучи словарей в текстовом виде. Не для импорта, а так: редакторам на сайте не удобно по словарям ползать и смотреть, что есть, а чего нет. Дело, конечно, вкуса. Посмотрел для начала готовые модули. Все они заточены под ...

Читать

Как в Drupal добавить страницу?

Май 16, 2017 г.

Иногда пользователи не могут разобраться с самыми простыми вещами. Для разработчиков эти вопросы могут казаться смешными и нелепыми, потому что это буквально ...

Читать

Проблемы загрузки скриптов в параграфах Drupal 7

Март 22, 2021 г.

Проявляется как не прогружающиеся wysiwyg редактор (ckeditor, например) или элементы поля, обрабатываемые модулем media, при добавлении параграфа (entity модуля parapraphs). Это по-крайней мере два примера с которыми я лично сам сталкивался. Характерно, ...

Читать
 

Комментарии к «Меню в виде SELECT в Drupal 7»

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



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