Ich versuche herauszufinden, wie ein span-Tag zu einer bestimmten Menüverknüpfung in einem benutzerdefinierten Menü hinzugefügt werden kann. Ich brauche es nur auf einem Link innerhalb der benutzerdefinierten Menü-Links. Erraten eine Vorverarbeitungsfunktion und versucht theme_menu_item_link()
ohne Glück, schien nicht, es wurde überhaupt angerufen.Wie kann man einem bestimmten benutzerdefinierten Menü-Link in Drupal 7 ein span-Tag hinzufügen?
Antwort
Die Antwort gefunden! Benötigt theme_menu_link()
zu verwenden:
function theme_menu_link(array $variables) {
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
$sub_menu = drupal_render($element['#below']);
}
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}
http://api.drupal.org/api/drupal/includes%21menu.inc/function/theme_menu_link/7
Dort habe ich den Artikel finden Sie suche ich nach und passen es entsprechend.
Finden Sie die folgende Lösung.
Beachten Sie, dass, wenn Sie Superfish Modul verwenden, theme_menu_link()
in diesem Fall nicht funktioniert, verwenden Sie stattdessen theme_superfish_menu_item_link
.
Drupal 7
/*
* Implements theme_menu_link().
*/
function THEME_menu_link(array $variables) {
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
$sub_menu = drupal_render($element['#below']);
}
$element['#localized_options']['html'] = TRUE;
$linktext = '<span class="tab-inner">' . $element['#title'] . '</span>';
$output = l($linktext, $element['#href'], $element['#localized_options']);
return '<li' . drupal_attributes($element['#attributes']) . '>' . $output . $sub_menu . "</li>\n";
}
Drupal 7 (mit Superfish)
/*
* Implements theme_superfish_menu_item_link().
* Theme a superfish menu item link,
* to override menu item to insert span tags
*/
function THEME_superfish_menu_item_link(array $variables) {
$menu_item = $variables['menu_item'];
$link_options = $variables['link_options'] + array('html' => TRUE);
$linktext = '<span class="tab-inner">' . $menu_item['link']['title'] . '</span>';
return l($linktext, $menu_item['link']['link_path'], $link_options);
}
Nach oben Haken definieren, löschen Sie den Cache-Speicher Thema Registrierung neu zu erstellen.
Wenn oben nicht funktionieren, wie @weaveoftheride vorgeschlagen, stellen Sie sicher, Verwenden eines Themas Funktion für Hyperlinks und Verwenden Sie ein Thema Funktion für Menüpunkte in den Einstellungen zu aktivieren. Normalerweise sollten diese standardmäßig aktiviert sein.
Drupal 6 (nur als Referenz)
/*
* Implements theme_menu_item_link().
*/
function THEME_menu_item_link($link) {
if (empty($link['localized_options'])) {
$link['localized_options'] = array();
}
$link['localized_options'] += array('html'=>true);
return l('<span>'.$link['title'].'</span>', $link['href'], $link['localized_options']);
}
Hinweis: Vergessen Sie nicht, THEME
mit Ihrem Namen Ihres Themas in allen oben genannten Code zu ersetzen.
- 1. Drupal: Wie man bestimmte Ansicht in einem bestimmten Block zeigt
- 2. Wie lösche ich Knoten benutzerdefinierten Cache in Drupal 7
- 3. drupal 7, wie eine Variable in einem Knoten hinzuzufügen
- 4. Wie soll ich den Wert erhalten, der in einem bestimmten Feld eines benutzerdefinierten Drupal 7-Knotens enthalten ist?
- 5. Verschachtelte Inhalte mit benutzerdefinierten Inhaltstypen in Drupal 7 anzeigen
- 6. Wie kann ich programmatisch Bilder zu einem Drupal-Knoten hinzufügen?
- 7. drupal 7 wie drupal_goto für Datei verwenden
- 8. Wie installiere ich Module mit einem Modul in Drupal 7?
- 9. Drupal 7 - entityFieldQuery Auftrag
- 10. hinzufügen CCK Feld benutzerdefiniertes Formular in Drupal 7
- 11. Drupal 7 Commerce Paypal IPN
- 12. Wie man den Kommentarthread in drupal rendert 7
- 13. Wie kann man ein Drupal-Modul programmatisch deaktivieren und deinstallieren?
- 14. Wie speichert man eine Session-Variable in Drupal 7?
- 15. Wie man Datei in Drupal 7 mit Formularen hochlädt?
- 16. Drupal 7 - Wie kann ich EntityForm-Daten als eine Seite mit benutzerdefinierten URL-Alias sehen
- 17. Drupal Menü Hook - wie man Formatierung hinzufügen
- 18. Konvertieren Vorlagen in Drupal 7
- 19. Anzeige einer Drupal-Seite ohne Vorlage in Drupal 7
- 20. So entfernen Sie CSS und JS von einem bestimmten Inhaltstyp in Drupal 7
- 21. Wie hook_theme in Drupal 7 zu implementieren?
- 22. Drupal 7 Passwort Hash
- 23. Wie erstellt man ein Entity-Referenzfeld in Drupal 8 programmgesteuert?
- 24. Drupal 7 kann keine Module installieren
- 25. Konvertieren von HTML-Vorlage in Drupal 7
- 26. Einstellungen in benutzerdefinierten Drupal Panel
- 27. Drupal 7, Get PDO Verbindungsgriff?
- 28. wie zu organisieren Ajax Suche in Drupal 7
- 29. Drupal 7 Formular nicht auf Seite
- 30. scale image in drupal 7
Dies funktioniert nicht für mich. Dieser Haken wird nicht gefunden. Es ist in meiner template.php Datei. – weaveoftheride
@weaveoftheride Überprüfen Sie den Funktionsnamen, z. 'THEMENAME_menu_link' und löschen Sie Ihre Caches, um die Registrierung neu zu laden. – kenorb
Ich benutze Superfish, also sollte ich theme_superfish_menu_item_link verwenden, denke ich? Auch meine Speisekarte ist in einem Block. Macht das einen Unterschied? Funktion nph_superfish_menu_item_link ($ Variablen) { dpm ("BLAH"); $ menu_item = $ Variablen ['menu_item']; $ link_options = $ Variablen ['link_options']; Rückgabe l ($ menu_item ['link'] ['title'], $ menu_item ['link'] ['href'], $ link_options); } – weaveoftheride