Меню в виде 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 привлекать в качестве примера не очень удобно.

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

Редирект после отправки формы в Drupal 7

Октябрь 8, 2017 г.

В Drupal form API версии 6, у формы было свойство редиректа (пример из документации Drupal): [crayon-6a1f122dbbfe8620928585/] которое позволяло перенаправить пользователя после отправки/обработки данных формы. В 7й версии API это свойство исчезло. Что ...

Читать

Форма поиска товаров на Drupal

Май 11, 2023 г.

Здесь подробно рассмотрим небольшую задачу для сайта под управлением CMS Drupal. Требуется выводить поисковую форму для товаров в виде блока. Форма ...

Читать

Twig-функция qr_code() в Drupal: простой плагин с использованием Endroid QR Code

Октябрь 23, 2025 г.

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

Читать

Включить вывод php ошибок в drupal 7

Январь 24, 2020 г.

Drupal надстраивает собственные разрешения на вывод ошибок, потому если вам необходим вывод ошибок на этапе разработки, то важно знать как разрешить их ...

Читать
 

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

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



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