2012-11-20 11 views

risposta

1

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.

6

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.

+0

Questo non funziona per me. Questo gancio non viene trovato. È nel mio file template.php. – weaveoftheride

+0

@weaveoftheride Controlla il nome della funzione, ad es. 'THEMENAME_menu_link' e cancella le cache per ricaricare il registro. – kenorb

+0

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

Problemi correlati