Erweiterbare Menüstruktur mit jeweils eigenem CSS-Styling
![](http://www.drupalcenter.de/files/noavatar_mini.gif)
am 06.04.2010 - 12:23 Uhr in
Hallo,
ich habe eine grundlegende Frage zum Aufbau einer Menüstruktur: Die Aufgabe besteht darin, ein erweiterbares Menü zu erstellen, in dem die Inhalte eines jeden Hauptmenüpunkts unterschiedlich über CSS gestylt werden können. Also Hauptmenüpunkt1 soll z.B. alle <a>
in rot anzeigen, Hauptmenüpunkt2 z.B. alle <a>
in blau etc, außerdem muss der Redakteur der Seite die Möglichkeit haben, weitere Hauptmenüpunkte hinzuzufügen und das Styling für den neuen Punkt zu definieren.
Mein vorläufige Lösung nutzt das CSS Injector Module mit dem ich auf der Basis von Pfaden der Node CSS hinzufüge. Für jeden Hauptmenüpunkt gibt es eine Regel die folgendes PHP enthällt. Wenn der Redakteur einen neuen Menüpunkt erstellt, muss er lediglich eine neue Regel erstellen und $MENU_NAME = 'meinMenüPunkt' aktualisieren
<?php
$MENU_NAME = 'aktuelles';
$do = false;
$menu_get_active_trail = menu_get_active_trail();
$path = $menu_get_active_trail[1]['page_arguments'][0]->path;
$path_explode = explode('/', $path);
$parent = $path_explode[0];
if($parent==$MENU_NAME){
$do = true;
}
return $do;
?>
Das Problem hierbei ist, dass das ganze auf Pfaden basiert, ich möchte aber eine Lösung die tatsächlich auf den Namen des übergeordneten Menüs zugreift: Wenn der Redakteur den Titel des Hauptmenüpunkts ändert, sollen nicht erst alle URL-Aliase der zugeordneten Nodes aktualiert werden müssen, bzw. suche ich nach einer Lösung die auch ohne URL-Aliase auskommt.
Ich bin auch dankbar für einen komplett anderen Ansatz, der das ganze flexibler oder drupal-gemäßer löst :-) Muss aber mit Menu Blocks Modul funktionieren, da ich auf dem Weg meine horizontale Haupt- und vertikale Unternavigation realisiere.
Danke schon mal
Michael
- Anmelden oder Registrieren um Kommentare zu schreiben
Das ganze sollte mit diesem
am 06.04.2010 - 13:46 Uhr
Das ganze sollte mit diesem Modul zu regeln sein: http://drupal.org/project/menu_css_names
Jedes Listenelement erhält die class="Nodetitle" also immer bezogen auf die Überschrift oder den verlinkten view.
Gruss aus Aachen
Danke für den Tip
am 06.04.2010 - 16:19 Uhr
Mist, meine Anfrage war nicht klar formuliert, sorry. Mir geht's nicht um das Styling des Menüs (das würde mit dem oben empfohlenen Modul wahrscheinlich funktionieren), sondern um das Styling der Nodes die diesen Menüs zugeordnet sind.
Ein Beispiel: eine Menüstruktur nach dem Muster
haupt1
- sub1
-sub2
haupt2
- sub1
- sub2
Alle Nodes die haupt1 bzw. dessen Unermenüs sub1 oder sub2 zugeordnet sind, sollen ein eigenes CSS erhalten (z.B. um alle -Tags rot zu färben).
Alle Nodes die haupt2 bzw. dessen Unermenüs sub1 oder sub2 zugeordnet sind, sollen auch ein eigenes CSS erhalten, z.B. um alle -Tags blau zu färben.
Hat dazu jemand einen Tip?
Danke noch mal
Michael
These has been an
am 31.05.2010 - 16:16 Uhr
This has been an informational post. I'm gonna try this on my own. Thanks. fake handbags
Zwei Module
am 31.05.2010 - 17:02 Uhr
Hier fallen mir zwei Module ein, die evtl. passen. Das sinnvollere scheint mir Page Theme zu sein. Ist nicht sehr bequem, da Du hier alle Seiten händisch eintragen musst, aber was besseres fällt mir nicht ein.
Das andere Modul ist Nodetype-Theme. Das Modul stellt abhängig vom Inhaltstyp ein ganz eigenes Theme zur Verfügung. Je nach Anwendungszweck macht auch das Sinn. Ein anderes Theme muss sich ja nicht groß vom "Vorbild" unterscheiden. Da kannst Du ja dann viele Definitionen übernehmen.
Wie Du allerdings erreichen kannst, das Unter dem Hauptmenüpunkt alle Submenüpunkte das gleiche (vom Standard abweichende) CSS verwenden, kann ich nicht sagen.
Gruß 2be