Separator zwischen Menu-Items
Eingetragen von tetri999 (153)
am 05.09.2012 - 15:27 Uhr in
am 05.09.2012 - 15:27 Uhr in
Hallo,
ich arbeite mich grade in D7 ein und durchschaue noch nicht so richtig, wie die erzeugten outputs beeinflußt werden können.
Um in einem (selbst angelegten) Menü (horizontal im footer-Bereich) die items mit einem Separator zu trennen, hab ich folgendes zusammengebaut (mithilfe der themer-info):
in der template.php:
<?php
function [mein_theme_name]_menu_link__menu_[mein_menu_name]($vars) {
$sep = "<span class='sep'> | </span>";
$title = $vars['element']['#title'];
$href = $GLOBALS['base_path'] . $vars['element']['#href'];
$classes = $vars['element']['#attributes']['class'];
$out = '<li class="'.implode(' ', $classes).'"><a href="'.$href.'">'.$title.'</a></li>';
if( !in_array ('last', $classes) ) $out .= $sep;
return $out;
}
?>
Das funktioniert zwar, aber ist das richtig so?
Oder müssen da noch andere Elemente aus $vars['element'][#original_link] mit eingebaut werden?
Oder geht das vielleicht einfacher?
- wie z.B. bei [mein_theme_name]_breadcrumb($vars), dort hab ich mit $breadcrumb = $vars['breadcrumb'] ein array mit den items zur Weiterverarbeitung.
Sowas hab ich weder bei _menu_link_ noch bei _menu_tree_ gefunden, hier gibt's nur die HTML-Strings.
Hat hier vielleicht jemand einen Rat oder Hinweis, wie man sowas am saubersten angeht?
Beste Grüße, Michael
- Anmelden oder Registrieren um Kommentare zu schreiben
Per CSS?
am 05.09.2012 - 16:31 Uhr
Wozu soll der Separator denn dienen? Vermutlich geht es nur rein optisch um einen Strich zwischen den Menüpunkten, oder? In dem Fall bist du mit CSS und einem einfach border-right / border-left besser bedient.
Kennst Du das Modul
am 05.09.2012 - 16:59 Uhr
Kennst Du das Modul [do:special_menu_items]? Wenn nicht, einfach mal ansehen.
Beste Grüße
Werner
@ Nicolai Schwarz: schon - aber
am 05.09.2012 - 17:08 Uhr
wenn es etwas Differenzierteres sein soll, müßte man ein background-image einbauen, und das ist dann wieder nicht font-size-abhängig ...
Aber das war auch nur ein Beispiel, um zu erkunden, wie man bei den einzelnen Elementen dazwischen kommt -
ich arbeite mich wie gesagt grade erst ein (übrigens mit deinem Buch),
war denn meine Lösung prinzipiell richtig oder völlig falsch gedacht?
mfG, Michael
@ wla
am 05.09.2012 - 17:13 Uhr
das hatte ich noch nicht entdeckt, sieht ja interessant aus,
vielen Dank für den Tipp.
mfG, Michael