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

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

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

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

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

Первым делом проверьте в 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, при его помощи настраивайте внешний вид вашего меню на свой вкус.
Свежие записи
Команда RD

Команда RD и RMDIR позволяют удалять как каталоги, так и

Web-Дизайн
help2site
СЕО словарь терминов для вэб-мастера

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

Оборудование
help2site
Самые лучшие кастомные прошивки

В прошлой статье мы уже писали о кастомных прошивках и о ее преимуществах, а теперь пришло время поговорить о сборках, о том какая из них

Web-Дизайн
help2site
О файлах Sitemap

Что такое файл Sitemap? Файл Sitemap позволяет сообщить поисковым роботам о том, как организован ваш сайт. Роботы поисковых систем сканируют этот файл, чтобы более точно

Web-Дизайн
help2site
Как правильно подключить шрифт от GoogleFonts

Используя пресеты шрифтов от google fonts разработчики редко заглядывают в код генерируемого css файла. А зря, там самое интересное.  Я хочу рассказать как избежать распространенных

Web-Дизайн
help2site
Основные понятия. Что такое веб-сервер.

На этом занятии мы познакомимся с таким понятием как веб-сервер (web server). Посмотрим, что пишет по этому поводу Wikipedia: Веб-сервер — это сервер, принимающий HTTP-запросы

Windows
help2site
Как убрать стрелки с ярлыков в Windows 7

Здравствуйте, дорогие читатели. В данной статье я расскажу вам о том как убрать стрелки с ярлыков в Windows 7. На данный момент существует несколько способов,

Web-Дизайн
help2site
PHP if-else. Условия в PHP.

В прошлый раз я писал о существующих типах операторов в PHP. Этот пост начинает серию связанных заметок об управляющих структурах (условия, циклы и т.д.) в PHP.