Menüs in Templates: Block oder manuell?
am 29.02.2008 - 15:44 Uhr in
Was ist wohl die üblichere Variante, um das Hauptmenü eines Themes im Template rendern zu lassen?
* Wenn ich es über Regions und Blocks mache, kann ich die Ausgabe nur schwer kontrollieren (keine eigenen Klassen oder IDs für die generierte Liste)
* Wenn ich es über "theme('links', $primary_links, array())" löse, dann rendert Drupal nur die erste Menü-Ebene
Wie macht man das üblicherweise?
- Anmelden oder Registrieren um Kommentare zu schreiben

Hmm, wenn Du die Primary
am 29.02.2008 - 16:51 Uhr
Hmm, wenn Du die Primary Links per
<?php if (isset($primary_links)) : ?><?php print theme('links', $primary_links, array('class' => 'links primary-links')) ?>
<?php endif; ?>
ausgibst, sollte eigentlich jeder Menüpunkt eine eigene CSS-Klasse besitzen.
Wenn Du eine oder zwei Ebenen ausgeben möchtest, ist das m.M.n. die richtige Vorgehensweise. Die zweite Ebene kannst übrigens ganz einfach über die Secondary Links ausgeben, wenn Du unter @admin/build/menu/settings@ sowohl bei den @Menu containing primary links:@ als auch bei den @Menu containing secondary links:@ "Primary links" einstellst.
Bei mehr als drei Ebenen muß man es dann über die Blöcke machen. Du kannst die Ausgabe der Menu Items auch relativ einfach per "Override" in der template.php Datei beeinflussen. Siehe dazu z.B.:
http://drupal.org/node/11811
http://api.drupal.org/api/function/theme_menu_links/5
http://www.drupalcenter.de/node/6964
--
bv - drupalcenter.de