Sto cercando di capire come aggiungere un tag span a un determinato collegamento di menu in un menu personalizzato. Ne ho solo bisogno su un link all'interno dei collegamenti del menu personalizzato. Indovinare una funzione di pre-elaborazione e provare con theme_menu_item_link()
senza fortuna, non sembrava essere stato chiamato.Come aggiungere un tag span ad un certo collegamento del menu personalizzato in Drupal 7?
risposta
Trovato la risposta! Necessarie per utilizzare theme_menu_link()
:
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
lì posso trovare l'articolo che sto cercando e regolare di conseguenza.
Trova la soluzione qui sotto.
Si noti che se si utilizza il modulo Superfish, theme_menu_link()
non funzionerà in questo caso, quindi utilizzare theme_superfish_menu_item_link
invece.
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 (con 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);
}
Dopo aver definito sopra ganci, svuotare la cache per ricostruire registro tema.
Se in precedenza non funzionerà, come suggerito da @weaveoftheride, assicurati di attivare utilizzare una funzione tema per i collegamenti ipertestuali eutilizzare una funzione tema per le voci di menu nelle impostazioni. Normalmente questi dovrebbero essere abilitati di default.
Drupal 6 (appena per riferimento)
/*
* 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']);
}
Nota: Non dimenticare di sostituire THEME
con il nome della macchina del vostro tema in tutto il codice sopra.
- 1. Come stampare un menu personalizzato in Drupal 7?
- 2. campo CCK Aggiungere al modulo personalizzato in Drupal 7
- 3. Come posso creare un token personalizzato in Drupal 7?
- 4. Aggiunta di un filtro personalizzato alle viste in Drupal 7
- 5. Come ottenere tutti gli elementi del menu sotto un determinato genitore in drupal 7?
- 6. Drupal 7 come eseguire il rendering del campo personalizzato
- 7. Come creare un nome file i18n in Drupal 7?
- 8. Corrispondenza parola corretta in un tag span
- 9. Come inserire un'immagine all'interno del tag span?
- 10. Come aggiungere ad un BigDecimal
- 11. Chiamare la variabile $ site_name da un modulo in Drupal 7
- 12. Larghezza CSS di un tag <span>
- 13. Come aggiungere codice di Google Analytics a Drupal 7
- 14. Drupal 7: l'alias URL viene ignorato sulle pagine quando "fornire un collegamento al menu" è deselezionato sul sito multilingue
- 15. Drupal 7: accesso al campo nodo personalizzato in page.tpl.php
- 16. Creazione di un collegamento dall'ID nodo in Drupal 8
- 17. Serve un esempio per allegare una raccolta di campi a un modulo drupal - drupal 7
- 18. Aggiungere personalizzato attributo tag HTML
- 19. Come creare un nuovo tema in drupal 7
- 20. Drupal 7: Localhost/collegamento utente predefinito al sito web/utente
- 21. Drupal Custom Menu Positioning
- 22. Come aggiungo un sottomenu ad un menu esistente in Magento?
- 23. Come aggiungere un collegamento all'applicazione in ActiveAdmin?
- 24. Puoi aggiungere un messaggio personalizzato ad AssertJ assertThat?
- 25. Come aggiungere un UIMenuItem personalizzato a UIMenuController in un UITextView?
- 26. Come si applica la convalida del webform in drupal 7?
- 27. Come utilizzare la convalida del modulo in Drupal 7
- 28. Trovare una stringa di testo in un elemento e avvolgere alcuni tag span intorno ad esso
- 29. Posso chiamare un tag personalizzato in cfscript?
- 30. Come si crea un tag div in un collegamento
Questo non funziona per me. Questo gancio non viene trovato. È nel mio file template.php. – weaveoftheride
@weaveoftheride Controlla il nome della funzione, ad es. 'THEMENAME_menu_link' e cancella le cache per ricaricare il registro. – kenorb
Sto usando Superfish quindi dovrei usare theme_superfish_menu_item_link, penso? Anche il mio menu è in un blocco. Questo fa qualche differenza? function nph_superfish_menu_item_link ($ variables) { dpm ("BLAH"); $ menu_item = $ variabili ['menu_item']; $ link_options = $ variabili ['link_options']; return l ($ menu_item ['link'] ['title'], $ menu_item ['link'] ['href'], $ link_options); } – weaveoftheride