Главная Новости

Выпадающее главное меню в Drupal 7

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

видео Выпадающее главное меню в Drupal 7

Создаем выпадающее меню на CSS

В случае необходимости темизировать сайт на Drupal 7  на котором установлена тема которая не поддерживает опцию второго уровня для «Главное меню», и установка опции «Показать раскрытым» (Show as expanded) для родительских элементов в разделе настройки меню не помогает.



Есть два способа решения этой задачи:

Установка стороннего модуля и при его помощи настроить вывод второго уровня меню (например модуль — Superfish , который позволяет настраивать выпадающие меню с jQuery эффектами.) Добавление нового региона , в который нужно будет поместить меню.

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


Создание гризонтального меню. Drupal 7 модуль superfish

Первым делом проверьте в page.tpl.php доступна ли переменная $main_menu.

Затем нам необходимо получить имя меню, которое выбрано главным. Для этого нужно воспользоваться функцией variable_get :

$main_menu = variable_get('menu_main_links_source', 'main-menu');

Далее нам понадобиться получить массив пунктов меню при помощи функции menu_tree_all_data . Обратите внимание, что в данном случае будут отображаться ВСЕ подпункты главного меню вне зависимости от текущей страницы и отмеченной галочки «Show as expanded». В случае если Вам необходимо, чтобы поведение главного меню учитывала эти параметры, то Вам следует использовать функцию  menu_tree_page_data .

$main_menu_expanded = menu_tree_all_data($main_menu);

Так же Вы можете передать данный вывод меню в темплейт в качестве элемента массива $variables и выводить его в нужном Вам месте. Конечный код который приведен ниже нужно скопировать и вставить в фаил template.php вашей темы (не забудьте поменять zen  на имя Вашей темы):

function zen_preprocess_page(&$variables) { $main_menu = variable_get('menu_main_links_source', 'main-menu'); $main_menu_expanded = menu_tree_all_data($main_menu); $variables['main_menu_expanded'] = menu_tree_output($main_menu_expanded); }

Теперь вы сможете выводить сформированное нами «Главное меню» в  любом нужном Вам месте, просто добавьте в фаил page.tpl.php вашей темы в нужном месте следующую строку кода:

<?php print render($main_menu_expanded); ?>

А далее дело за Вами и CSS, при его помощи настраивайте внешний вид вашего меню на свой вкус.

rss