Podróżowałem po Internecie i wcale nie jest oczywiste, jak tworzyć własne menu. Szukałem godzin i nie znalazłem ani jednego postu, który ilustruje proces tworzenia menu i dostosowywania jego wyników od początku do końca. Wygląda na to, że jest to proces wieloetapowy:
- Utwórz menu za pomocą interfejsu Drupal.
- Utwórz funkcję motywu w
template.phppliku, aby utworzyć motyw wyjściowy. - Naraż to menu na plik szablonu (jakoś), dodając go jako zmienną.
- Wywołaj
themefunkcję z menu w pliku szablonu.
1 jest łatwa do zrobienia, problemy, na które napotykam, dotyczą 2, 3 i 4. Patrząc na domyślny szablon strony, widzę, że odsłania główne menu w zmiennej $main_menu. W dalszej części strony możesz zobaczyć funkcję theme('links__system_main_menu', array('links' => $main_menu..., co oznacza, że szuka gdzieś odpowiednio nazwanej funkcji motywu i używa jej do wygenerowania wyniku.
Wiem, że jeśli umieszczę function theme_links__system_main_menu(&$variables) {...}w pliku template.php, Drupal użyje tej funkcji w przeciwieństwie do function theme_menu_links(&$variables) {...}.
Nie wiem, jak Drupal łączy niestandardowe menu, które utworzyłem za pomocą tej funkcji. Powiedzmy na przykład, że stworzyłem menu o nazwie My Menu. Czy mogę utworzyć następującą funkcję w moim template.phppliku i utworzyć motyw wyjściowy dla tego menu?function theme_links__system_my_menu(&$variables) {...}
W jaki sposób można udostępnić to niestandardowe menu w pliku szablonu? W jaki sposób Drupal wystawia $main_menuzmienną na page.tpl.php?
Myślę, że kluczem, którego tu brakuje, jest sposób osadzenia zmiennej reprezentującej moje niestandardowe menu na stronie szablonu. W większości jednak jestem całkowicie zagubiony w tym, co robić po utworzeniu menu.
Dzięki za pomoc.
EDYCJA: Prawdopodobnie powinien opublikować to, co robię. Zgodnie z moim komentarzem do BetaRide poniżej, muszę wstrzyknąć dostosowany kod HTML do <li>elementów pozycji menu. W szczególności dodaję ikony Bootstrap na Twitterze.