New DhoniShow Rock

595 Tage zuvor

Ok, here we go, new DhoniShow() version is out now, based on jquery and named Dhonishow Rock! Have fun.

dhonishow.de

Funktion zum Generieren von Navigationen in Drupal

608 Tage zuvor

Jeder der zum ersten Mal sein eigenes Theme in Drupal aufbaut, fragt sich: “Wie kann ich meine Navigation aufbauen? Wie kann ich einzelne Navigations-Ebenen separat ausgeben?”

Mit folgender Funktion ist es ganz einfach die Anfangs- und Endtiefe der Navigation, den Menü-Namen und zusätzliche html Attribute auszugeben.

function theme_menu ($start = 0, $depth = 100, $tree = "primary-links", $html = 'id="sub-navigation"', $current_depth = 0){
  if(is_string($tree)) $tree = menu_tree_page_data($tree);

$print = ($current_depth >= $start && $current_depth <= $depth); $output = ""; if($print) $output .= "<ul $html>"; foreach($tree as $leaf) { if($print) $output .= "<li".($leaf["link"]["in_active_trail"] ? "class=‘active’").">"; if($print) $output .= l($leaf["link"]["title"], $leaf["link"]["link_path"]); if($leaf["below"]) $output .= dhonishow_menu($start, $depth, $leaf["below"], $print ? "" : $html, $current_depth+1); if($print) $output .= "</li>"; } if($print) $output .= "</ul>"; return $output; }

Diese Funktion einfach in die template.php Datei einfügen und dann im Template von einer beliebigen Stelle aufrufen.

Beispiele

Ich möchte nur die erste Ebene des Menüs “mein-menu-name” und der id=“navigation” ausgeben . Wie geht dies?

<?php print theme_menu(0, 0, "mein-menu-name", 'id="navigation"');?>

Ok das gleiche, aber alles von der zweiter Ebene ausgehend

<?php print theme_menu(1, 100, "mein-menu-name", 'id="sub-navigation"');?>