it-swarm.com.de

Fügen Sie den Hauptmenü-Links eine Klasse hinzu

Ich habe Variationen dieser Frage gesucht und gefunden, aber ich habe nie eine Antwort gefunden, die zu funktionieren schien. Ich muss den <li> - Elementen eine Klasse hinzufügen. Derzeit wird das Hauptmenü folgendermaßen gerendert:

print theme('links__system_main_menu', array(
    'links' => $main_menu,
    'attributes' => array(
        'id' => 'slidemenu',
        'class' => array(
            'links',
            'inline',
            'clearfix'
        )
    ),
    'heading' => t('')
));

Soweit ich das beurteilen kann, wird hier nur das Element <ul> Des Hauptmenüs eingerichtet. Daher habe ich mich gefragt, ob es eine Möglichkeit gibt, die Attribute des Teils 'links' Zu bearbeiten.

---BEARBEITEN---

Okay, ich denke ich habe es gelöst. Anscheinend können Sie theme_links__system_main_menu In Vorlagen verwenden, um das Ganze zu überschreiben. Am Ende habe ich das gemacht:

function mytheme_links__system_main_menu($variables) {
    $html = '<div id="mainmenu">';
    $html .= '  <ul id="slidemenu" class="clearfix">';

    static $linkClass = 1;

    foreach ($variables['links'] as $link) {                
        $html .= '<li class="themastyle' . $linkClass . '">' . l($link['title'], $link['href'], $link) . '</li>';
        ++$linkClass;
    }

    $html .= '  </ul>';
    $html .= '</div>';

    return $html;
}

Ich bin mir nicht ganz sicher, ob dies der richtige Drupal ist, obwohl er mein Problem gelöst hat!

5
Zedicius

print_r($main_menu); jedes $main_menu Elemente sollten diese Struktur haben:

array(
    'title' => 'xxx',
    'href' => 'xxx',
    'attributes' => array(
        'class' => array('xxx'),
    ),
);

sie können li also eine Klasse hinzufügen, indem Sie $main_menu Array.

1

Menüattribute ist ein weiteres großartiges Modul, mit dem Sie class, id, rel und andere Attribute entweder für a festlegen können oder li Element.

3
daniels

Wenn es Ihnen nichts ausmacht, ein vorhandenes Modul zu verwenden, können Sie auch Menünamen CSS verwenden. Dieses Modul fügt den Zielpfad eines Menüelements als bereinigte CSS-Klasse zum Li-Element hinzu.

Ein zweiter Vorteil ist, dass das Modul eine gute Vorlage ist, wie Sie Ihre Funktionalität in ein Modul anstelle der Datei template.php einfügen können, um die Wiederverwendbarkeit Ihres Codes zu verbessern.

0
Nebel54