Я круїз по Інтернету, і зовсім не очевидно, як тематизувати власні меню. Я годинами шукав і не знайшов жодної публікації, яка б ілюструвала процес, від початку до кінця, створення меню та налаштування його результатів. Схоже, це багатоетапний процес:
- Створіть меню через інтерфейс Drupal.
- Створіть у вашому
template.php
файлі функцію теми для тематизації результатів. - Розкрийте це меню файлом шаблону (якось), додавши його як змінну.
- Викличте
theme
функцію в меню у файлі шаблонів.
1 досить легко зробити, проблеми, з якими я стикаюся, - це з 2, 3 та 4. Переглядаючи шаблон сторінки за замовчуванням, я бачу, що він відкриває головне меню в змінній $main_menu
. Пізніше на сторінці ви можете побачити функцію theme('links__system_main_menu', array('links' => $main_menu...
, а це означає, що вона шукає десь відповідну тематичну функцію і використовує її для отримання результатів.
Я знаю, якщо я розміщую function theme_links__system_main_menu(&$variables) {...}
у своєму шаблоні.php файл Drupal буде використовувати цю функцію на відміну від function theme_menu_links(&$variables) {...}
.
Чого я не знаю, це те, як Drupal пов'язує користувальницьке меню, яке я створив за допомогою цієї функції. Скажімо, наприклад, що я створив меню з назвою My Menu
. Чи можу я створити наступну функцію у своєму template.php
файлі та тематизувати вихід для цього меню?function theme_links__system_my_menu(&$variables) {...}
Крім того, як зробити це користувацьке меню доступним для файлу шаблону? Як Drupal виставляє $main_menu
змінну page.tpl.php?
Я думаю, що головне, що мені тут не вистачає, - це як вставити змінну, яка представляє моє користувацьке меню, на сторінку шаблону. Здебільшого, хоча я повністю розгубився з тим, що робити після створення меню.
Дякую за допомогу.
EDIT: Напевно, слід опублікувати те, що я роблю. Відповідно до мого коментаря до BetaRide нижче, мені потрібно ввести індивідуальний HTML в <li>
елементи пунктів меню. Зокрема, я додаю піктограми Twitter Bootstrap.