Выпадающее главное меню в 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
Подборка тем для Drupal

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

Web-Дизайн
help2site
Шорткоды для интернет магазина на WordPress + WooCommerce

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

Оборудование
help2site
Разгон встроенных видеокарт от Intel

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

Windows
help2site
Правильная установка Windows 10

Вы решили обновиться до Windows 10 или установить эту операционную систему с нуля? В таком случае следует более подробно рассмотреть данный процесс. Если говорить о

Linux
help2site
Dock для Linux

Dock – это удобно. Dock – это красиво. Dock, в конце концов – это по-гиковски. Недаром, многие люди, всегда работавшие под Windows и толком не

Web-Дизайн
help2site
Оптимизация сайта

Оглавление SEO оптимизация. Что такое seo оптимизация. SEO оптимизация сайта – это тема сегодняшней статьи на блоге. Приветствую всех читателей и желаю всем успехов в изучении