Aktiven Menü-Eintrag mit menu_get_active_item() ermitteln.
am 26.11.2006 - 14:50 Uhr in
Ich möchte das Menü so anpassen, dass die einzelnen Einträge weiterhin als
li mit class="leaf" erstellt werden, wobei ich allerdings den aktuell
geöffneten Eintrag mit der class "current-leaf" versehen will, um z.B. im Theme
den aktuellen Eintrag mit einer bestimmten Hintergrundfarbe zu versehen.
Die für die Erstellung des li-Tags zuständige Funktion ist
function theme_menu_item($mid, $children = '', $leaf = TRUE)
Zeile 683, includes/menu.inc
Der relevant Code schaut so aus:
return '<li class="'. ($leaf ? 'leaf' : ($children ? 'expanded' : 'collapsed')) .'">'. menu_item_link($mid) . $children ."</li>\n";
Da diese Funktion für jedes einzelne item ausgeführ wird sollte es ausreichen,
zu überprüfen ob das zu rendernde item ($mid) gleich dem aktuellen item (per menu_get_active_item()) ist.
Nun ist zwar der Wert von $mid immer korrekt, also die ID des zu rendernden items, menu_get_active_item() gibt aber immer -105 zurück, wenn es innerhalb von theme_menu_item($mid, $children = '', $leaf = TRUE)
aufgrufen wird.
Warum ist das so? Any ideas?
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 1 Tag 18 Stunden
vor 3 Tagen 15 Stunden
vor 3 Tagen 17 Stunden
vor 3 Tagen 18 Stunden
vor 3 Tagen 19 Stunden
vor 3 Tagen 19 Stunden
vor 3 Tagen 19 Stunden
vor 4 Tagen 9 Stunden
vor 5 Tagen 17 Stunden
vor 6 Tagen 17 Stunden