Ich bin durch das Web gekreuzt und es ist überhaupt nicht offensichtlich, wie man benutzerdefinierte Menüs thematisiert. Ich habe stundenlang gesucht und keinen einzigen Beitrag gefunden, der den gesamten Prozess der Erstellung eines Menüs und der Anpassung der Ausgabe veranschaulicht. Es scheint, dass dies ein mehrstufiger Prozess ist:
- Erstellen Sie das Menü über die Drupal-Oberfläche.
- Erstellen Sie eine Themenfunktion in Ihrer
template.php
Datei, um die Ausgabe zu thematisieren. - Setzen Sie dieses Menü (irgendwie) einer Vorlagendatei aus, indem Sie es als Variable hinzufügen.
- Rufen Sie die
theme
Funktion im Menü der Vorlagendatei auf.
1 ist einfach genug, die Probleme, auf die ich stoße, sind 2, 3 und 4. Wenn ich mir die Standardseitenvorlage ansehe, sehe ich, dass das Hauptmenü in der Variablen angezeigt wird $main_menu
. Später auf der Seite sehen Sie die Funktion theme('links__system_main_menu', array('links' => $main_menu...
. Das bedeutet, dass Sie irgendwo nach einer entsprechend benannten Themenfunktion suchen und diese verwenden, um die Ausgabe zu generieren.
Ich weiß, wenn ich function theme_links__system_main_menu(&$variables) {...}
in meine template.php-Datei platziere, wird Drupal diese Funktion im Gegensatz zu verwenden function theme_menu_links(&$variables) {...}
.
Was ich nicht weiß, ist, wie Drupal das benutzerdefinierte Menü, das ich mit dieser Funktion erstellt habe, verknüpft. Nehmen wir zum Beispiel an, ich habe ein Menü namens erstellt My Menu
. Könnte ich die folgende Funktion in meiner template.php
Datei erstellen und die Ausgabe für dieses Menü thematisieren?function theme_links__system_my_menu(&$variables) {...}
Wie stellt man dieses benutzerdefinierte Menü auch einer Vorlagendatei zur Verfügung? Wie macht Drupal die $main_menu
Variable page.tpl.php zugänglich?
Ich denke, der Schlüssel, den ich hier vermisse, ist, wie man die Variable, die mein benutzerdefiniertes Menü darstellt, in eine Vorlagenseite einbettet. Meistens habe ich jedoch keine Ahnung, was ich tun soll, nachdem ich das Menü erstellt habe.
Danke für die Hilfe.
EDIT: Sollte wohl posten, was ich mache. Gemäß meinem Kommentar zu BetaRide unten muss ich benutzerdefiniertes HTML in die <li>
Elemente der Menüelemente einfügen . Insbesondere füge ich Twitter Bootstrap-Symbole hinzu.