Submenu Überladen
Eingetragen von floalyo (11)
am 04.09.2008 - 08:16 Uhr in
am 04.09.2008 - 08:16 Uhr in
Ich gibt die Funktion (includes/menu.inc)
function theme_menu_tree($tree) {
return '<ul class="menu">'. $tree .'</ul>';
}
das ich Überladen will in template.php.
Ich habe eine neue Funktion in template.php geschrieben wo ich eine id eingefügt:
function garland_menu_tree($tree) {
return '<ul id="submenu" class="menu">'. $tree .'</ul>';
}
Mein Ziel ist die id="submenu" zu ersetzen mit der Name von der Submenu.
Wie kann ich dass ab besten tun?
Vielen Dank?
Florian
- Anmelden oder Registrieren um Kommentare zu schreiben
keine gute Idee
am 04.09.2008 - 09:35 Uhr
Ich habe eine neue Funktion in template.php geschrieben wo ich eine id eingefügt:
function garland_menu_tree($tree) {
return '<ul id="submenu" class="menu">'. $tree .'</ul>';
}
Das ist keine gute Idee, der Funktion eine feste ID mit auf den Weg zu geben. Die Funktion wird bei fast jedem Menü UND Submenü, dass die Baumstruktur verwendet, benutzt. Eine ID darf aber nur EINMAL auf der Seite vorkommen.
Wenn überhaupt, wäre es besser, beim Aufruf des Menüs einen DIV-Container einzusetzen. Beispiel:
<div class="irgendwas">
<?php print menu_tree($menu_name = 'primary-links'); ?>
</div>
Richtig
am 04.09.2008 - 10:04 Uhr
Danke für deine Antwort.
Das ist richtig. Eine ID darf nur eimal auf der Seite vorkommen. Ich will das wenn der Submenu, ein bestimmte Submenu ist, dann wird eine bestimmte ID geschrieben sonst wird keine ID geschrieben.
Florian
Bonjour Florian
am 04.09.2008 - 11:45 Uhr
... Ich will das wenn der Submenu, ein bestimmte Submenu ist, dann wird eine bestimmte ID geschrieben sonst wird keine ID geschrieben.
Versuche deine Wünsche anders umzusetzen. Es gibt da zum Beispiel das Modul Nice Menus. Dieses Modul fügt jedem Link und jeder Ebene in der Menüstruktur eine eigene und eindeutige ID zu.
Du brauchst ja das JavaScipt nicht nutzen, sondern lässt dir einfach nur so den Quelltext ausgeben. Über CSS kannst du dann ALLES individuell stylen. Das müsste eigentlich das sein, was du möchtest.
Ungefähr so sieht es dann aus, überall eine eindeutige ID:
<ul class="nice-menu nice-menu-down" id="nice-menu-1">
<li id="menu-201" class="menu-path-frontpage"><a href="#">Home</a></li>
<li id="menu-202" class="menu-path-products"><a href="#">Products</a>
<ul class="nice-menu nice-menu-down" id="nice-menu-2">
<li id="menu-203" class="menu-path-faq"><a href="#">FAQ</a></li>
</ul>
</li>
<li id="menu-204" class="menu-path-contact"><a href="#">Contact</a></li>
</ul>
Accordeon
am 05.09.2008 - 08:56 Uhr
Danke. Ich habe nice menus geschaut aber die Effekts sind nur mit css. Ich möchte meine submenu mit dem jquery plugin bauen (http://bassistance.de/jquery-plugins/jquery-plugin-accordion/).
Bis jetzt ich habe die javascript (jquery-plugin-accordion) in meine Drupal eingefügt und ein neue block mit dem code :
<hr>
<ul id="myAccordeon">
<li>
<a href="#" class="head">Menu 1</a>
<div style="height: 196px; display: none;">Content 1</div>
</li>
<li>
<a href="#" class="head">Menu 2</a>
<div style="height: 196px; display: none;">Content 2</div>
</li>
<li>
<a href="#" class="head">Menu 3</a>
<div style="height: 196px; display: none;">Content 3</div>
</li>
</ul>
<hr>
So funktioniert meine Accordeon. Deswegen wollte ich die Funktion theme_menu_tree() überschreiben mit
function phptemplate_menu_tree($tree) {
$menuName
if($menuName == "mySpecialMenu"){
return '<ul id="submenu" class="menu">'. $tree . '</ul>';
} else {
return '<ul class="menu">'. $tree . '</ul>';
}
}
Die Frage ist wie kann der $menuName krigen? mit delta?
Vielen Dank.
Florian
DHTML Menu
am 05.09.2008 - 10:47 Uhr
So funktioniert meine Accordeon. Deswegen wollte ich die Funktion theme_menu_tree() überschreiben mit
Genau an diesem Punkt war ich auch schon mal. Zur Umsetzung einer Navigation wollte ich das jQuery Accordion Plugin einsetzen.
Ich möchte meine submenu mit dem jquery plugin bauen
Ich habe dann aber das DHTML Menu entdeckt und bin damit vollauf zufrieden gewesen. Das DHTML Menu hat genau diese Sliding-Effekte, die du dir vorstellst.
Die Frage ist wie kann der $menuName krigen? mit delta?
Und an diesem Punkt muss ich dann sagen: Je ne sais pas ...
delta
am 05.09.2008 - 11:12 Uhr
Die Frage ist wie kann der $menuName krigen? mit delta?
Mit delta bekommst du die ID des Blockes. Wenn du die Navigation in einem bestimmten Block mit Accordeon sichtbar machen möchtest, dann wäre das eventuell eine Idee.
mit DHTML menus
am 05.09.2008 - 15:47 Uhr
ich habe meine Accordeon Menu! mit DHTML menus. Es viel CSS arbeit.
Danke für die Hilfe.
Florian.