2012-11-20 5 views

Antwort

1

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.

6

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.

+0

Dies funktioniert nicht für mich. Dieser Haken wird nicht gefunden. Es ist in meiner template.php Datei. – weaveoftheride

+0

@weaveoftheride Überprüfen Sie den Funktionsnamen, z. 'THEMENAME_menu_link' und löschen Sie Ihre Caches, um die Registrierung neu zu laden. – kenorb

+0

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

Verwandte Themen