Ho navigato sul web e non è affatto ovvio come tema menu personalizzati. Ho cercato ore e non ho trovato un singolo post che illustri il processo, dall'inizio alla fine, della creazione di un menu e della personalizzazione del suo output. Sembra che questo sia un processo in più fasi:
- Crea il menu tramite l'interfaccia Drupal.
- Crea una funzione tema nel tuo
template.php
file per tema l'output. - Esporre questo menu a un file modello (in qualche modo) aggiungendolo come variabile.
- Chiamare la
theme
funzione nel menu nel file modello.
1 è abbastanza facile da fare, i problemi che incontro sono con 2, 3 e 4. Osservando il modello di pagina predefinito, vedo che espone il menu principale nella variabile $main_menu
. Più avanti nella pagina puoi vedere la funzione theme('links__system_main_menu', array('links' => $main_menu...
, il che significa che sta cercando da qualche parte una funzione tema con un nome appropriato e la utilizza per generare l'output.
So che inserisco function theme_links__system_main_menu(&$variables) {...}
nel mio file template.php Drupal userà quella funzione al contrario function theme_menu_links(&$variables) {...}
.
Quello che non so è come Drupal collega il menu personalizzato che ho creato con quella funzione. Diciamo ad esempio che ho creato un menu chiamato My Menu
. Potrei creare la seguente funzione nel mio template.php
file e tema l'output per quel menu?function theme_links__system_my_menu(&$variables) {...}
Inoltre, come si può rendere quel menu personalizzato disponibile per un file modello? In che modo Drupal espone la $main_menu
variabile a page.tpl.php?
Penso che la chiave che mi manca qui sia come incorporare la variabile che rappresenta il mio menu personalizzato in una pagina di modello. Per la maggior parte però mi sono completamente perso con cosa fare dopo aver creato il menu.
Grazie per l'aiuto.
EDIT: Probabilmente dovrebbe pubblicare quello che sto facendo. Per il mio commento a BetaRide di seguito, devo inserire codice HTML personalizzato negli <li>
elementi delle voci di menu. In particolare, sto aggiungendo le icone Twitter Bootstrap.