Menu, hooks, ausgabe
am 18.07.2013 - 13:22 Uhr in
Hallo,
plage mich immer noch mit der Handhabung des Drupal Menüs rum. Das Menü lässt sich ja auf diversen Wegen auf der Seite ausgeben.
<?php print theme('links__system_main_menu', array(
'links' => $main_menu,
'attributes' => array(),
));
?>
<ul>
<li class="menu-237 first active"><a href="/" title="" class="active">Startseite</a></li>
<li class="menu-605"><a href="/content/kontakt" title="">Kontakt</a></li>
<li class="menu-707 last"><a href="/produkte" title="">Produkte</a></li>
</ul><?php print render($page['navigation']); ?>
<ul class="menu">
<li class="first leaf"><a href="/" title="" class="active">Startseite</a></li>
<li class="leaf"><a href="/content/kontakt" title="">Kontakt</a></li>
<li class="last expanded"><a href="/produkte" title="">Produkte</a>
<ul class="menu">
<li class="first leaf"><a href="/content/produkt-1">Produkt 1</a></li>
<li class="last leaf"><a href="/content/produkt-2">Produkt 2</a></li>
</ul>
</li>
</ul><?php print(render(menu_tree('main-menu'))); ?>
<ul class="menu">
<li class="first leaf"><a href="/" title="" class="active">Startseite</a></li>
<li class="leaf"><a href="/content/kontakt" title="">Kontakt</a></li>
<li class="last expanded"><a href="/produkte" title="">Produkte</a>
<ul class="menu">
<li class="first leaf"><a href="/content/produkt-1">Produkt 1</a></li>
<li class="last leaf"><a href="/content/produkt-2">Produkt 2</a></li>
</ul>
</li>
</ul>Ich bräuchte das Menü aber in der ersten Form mit allen weiteren Ebenen. Leider schaffe ich es nicht, mein Menü in die Form zu bringen. Habe schon gefühlte 100000 Snippets und Hooks durch, aber leider bis lang ohne Erfolg.
Hätte hier wer einen Tip oder Workaround für mich?
Viele Grüße
Julsen
- Anmelden oder Registrieren um Kommentare zu schreiben

Moin Julsen, bin mir nicht
am 19.07.2013 - 09:47 Uhr
Moin Julsen,
bin mir nicht ganz sicher ob ich dich richtig verstehe, du willst das nur die hauptmenupunkte ausgegeben werden oder ?

dafür könntest du einfach das menu block modul nehmen und da in den erweiterten Einstellungen die menuausgabe auf
z.b. das erste level begrenzen:
modul link:
https://drupal.org/project/menu_block
kann man auch schon erweitern:
https://drupal.org/project/menu_position
https://drupal.org/project/menu_attributes
gruß
kai
Moin Kai, also das Modul habe
am 19.07.2013 - 10:51 Uhr
Moin Kai,
also das Modul habe ich bereits installiert. Punkt 2 und 3 nutzen es (hier sind nur leider die active Klassen in den a Tags und nicht im li Tag). Mir geht es in erster Linie um eine saubere Struktur und das ich eigene Klassen verwenden kann. Punkt 1 kommt dem schon am Nächsten, da ich hier per Hook alles selber einstellen kann, bis auf die weiteren Ebenen. Habe beim Menü zwar alles auf expanded, nur wird bei Punkt 1 nur die erste Ebene ausgegeben. Bei Block Menu habe ich es leider nicht geschafft, die active Tags auf die li zu setzen und überflüssige Klassen zu entfernen.
Habe das Block Menu zwar per CSS so angepasst wie ich es haben möchte, aber eine Schlankheitskur würde ich gerne noch an der HTML Ausgabe vornehmen. Brauche eigentlich im Menü selber nur die active Klasse bei den aktiven elementen.
<ul><li class="active">Startseite</li>
<li>Produkte
<ul>
<li>Produkt 1</li>
</ul>
</li>
<li>Kontakt</li>
</ul>
So wäre eigentlich meine bevorzugte Struktur.
Viele Grüße
Julsen
Moin Julsen, also mit menu
am 19.07.2013 - 12:12 Uhr
Moin Julsen,
also mit menu attributes kannst du auf jeden fall eigene klassennamen vergeben.
Da ich selber noch nicht soviel mit Drupal gemacht hab und das Kapitel "Drupal und Menus" aus meiner (kurzen) Erfahrung eher ein unglückliches ist, weiss ich leider auf die schnelle keine "elegante aufräumaktion" schau dir event. mal den menu wrapper im menu block modul an, da hatte ich mal ein wenig rumgeschraubt aber das könnte dir beim nächsten update wieder um die ohren fliegen.
geht denn irgendwas nicht was du erreichen willst, oder gehts dir grad nur um sauberen html code an der front?
VG
Kai
Hey Kai, Ziel ist eigentlich
am 19.07.2013 - 12:47 Uhr
Hey Kai,
Ziel ist eigentlich in erster Linie alle Unnötigen Elemente und Klassen zu entfernen, dass mache ich eigentlich bis jetzt durchweg bei allen Elementen. Ich persönlich finde es auch einfacher später per CSS zu stylen (wenn saubere Struktur vorliegt), zumal ich meine Templates vor der Drupal Integration auch "sauber" halte. So bräuchte ich auch später keine Anpassungen mehr am Menü vornehmen. Gut, ich könnte direkt auch die Menüs in der Drupal Struktur in meinem Templates berücksichtigen, aber das geht nicht immer, zumal ich gelegentlich mal von einem anderen Designer ein Template erhalte und in Drupal umsetzen soll. Hier wäre es für mich einfacher die Struktur in Drupal selbst anzupassen, als die Arbeit des Designers umzuwursten.
Hinzufügen von z.B. Span Tags bei Parent Elementen wäre dem ersten Punkt auch kein Problem, wenn es denn die Child Elemente anzeigen würde -.-
Viele Grüße
Julsen