Ich habe ein benutzerdefiniertes Menü erstellt (nennen wir es "mynav") und in meinem Thema eine Vorlage speziell dafür erstellt ( block--menu--menu-mynav.tpl.php
), die Folgendes enthält:
<div id="mynav" class="<?php print $classes; ?>"<?php print $attributes; ?>>
<?php print $content ?>
</div>
Das funktioniert gut.
Ich würde es jedoch vorziehen, die ID auf die ungeordnete Liste anzuwenden, die generiert und enthalten ist $content
. Ich denke, ich muss eine Funktion MYTHEME_links__system_mynav_menu
wie diese erstellen :
function MYTHEME_links__system_mynav_menu($variables) {
return "TEST"; // Generate HTML here (<ul id="mynav">...)
}
aber es scheint keinen Einfluss zu haben.
Was mache ich falsch?
Antworten:
Um die ungeordnete Liste zu thematisieren, müssen Sie theme_menu_tree () aufrufen. Sie können Ihre template.php bearbeiten, um dies aufzurufen.
Wenn Sie dann Ihre Links thematisieren möchten, rufen Sie theme_menu_link () auf.
Das Problem mit Drupal 7 ist nun, dass es einen großen Fehler gibt, wenn es darum geht, die aktive Spur von benutzerdefinierten Menüs anzuzeigen.
Siehe Problem
Ausgabe Nr. 520106 - Keine Möglichkeit, aktiven Pfad dynamisch
festzulegen Problem Nr. 942782 - Benutzerdefinierte Menüs erhalten niemals einen aktiven Pfad
Sie haben im Grunde kein Glück, wenn Sie echte benutzerdefinierte Menüs möchten. Diese Probleme sind in der Drupal-Community seit langem bekannt, daher bin ich mir nicht sicher, ob sie bald behoben werden. Ich weiß nicht, ob es PHP gibt, das dabei helfen kann. Sie können sich an einige alternative Module wenden, um die Funktionalität zu vereinfachen, z. B. Menüattribute und Menüblock . Beide können helfen, das grobe Menüsystem in Drupal 7 zu umgehen.
quelle
In der template.php Ihres Themas war dies die Möglichkeit, Dinge in Drupal 6 zu tun
In Drupal 7 müssen Sie anrufen
quelle
MYTHEME_menu_link
scheint nur die einzelnen Links zu behandeln. Ich kann das nicht erreichenul
.