У разі необхідності темізіровать сайт на Drupal 7 на якому встановлена тема яка не підтримує опцію другого рівня для «Головне меню», і установка опції «Показати розкритим» (Show as expanded) для батьківських елементів в розділі настройки меню не допомагає.
Є два способи вирішення цього завдання:
- Установка стороннього модуля і при його допомоги налаштувати висновок другого рівня меню (наприклад модуль -Superfish. Який дозволяє налаштовувати випадають меню з jQuery ефектами.)
- Додавання нового регіону. в який потрібно буде помістити меню.
Але якщо ви не прибічників встановлення сторонніх модулів для реалізатціі тільки однієї не складного завдання, а використання окремого регіону тільки для одного-єдиного меню вважаєте неприйнятним, то в цьому випадку є і третій спосіб про який ми і поговоримо докладніше в цій статті.
Насамперед перевірте в page.tpl.php доступна змінна $ main_menu.
Потім нам необхідно отримати ім'я меню, яке вибрано головним. Для цього потрібно скористатися функцією variable_get:
Далі нам знадобитися отримати масив пунктів меню за допомогою функції menu_tree_all_data. Зверніть увагу, що в даному випадку будуть відображатися ВСЕ підпункти головного меню незалежно від поточної сторінки та зазначеною галочки «Show as expanded». У разі якщо Вам необхідно, щоб поведінка головного меню враховувала ці параметри, то Вам слід використовувати функцію menu_tree_page_data.
Так само Ви можете передати цей висновок меню в темплейт як елемент масиву $ variables і виводити його в потрібному Вам місці. Кінцевий код який наведено нижче потрібно скопіювати і вставити в фаил template.php вашої теми (не забудьте поміняти zen на ім'я Вашої теми):
Тепер ви зможете виводити сформований нами «Головне меню» в будь-якому потрібному Вам місці, просто додайте в фаил page.tpl.php вашої теми в потрібному місці наступний рядок коду:
А далі справа за Вами і CSS, при його допомоги налаштовуйте зовнішній вигляд вашого меню на свій смак.