By marcinos on
Hi!
I'm quite new in Drupal world and I've met some issue that I can't find resolution for. I'd like to build drop-down menu. I use quite default markup:
<ul class="menu">
<li>
<a href="#">menu item</a>
<ul>
<li>
<a href="#">menu item</a>
</li>
<li>
... and so on.
I've a problem with generating appropriate class in only first ul. I know I can override template_menu_tree() function, but it is called each time an ul element is generated. I don't know how to get a tree level from within this method.
I've managed to bypass the problem with following code:
In template.php:
function better_health_menu_tree($tree) {
return '<ul>'.$tree.'</ul>';
}
function better_health_menu_item($link, $has_children, $menu = '', $in_active_trail = FALSE, $extra_class = NULL) {
return '<li>'. $link . $menu ."</li>\n";
}
In page.tpl.php:
$my_menu = menu_tree('primary-links');
$secondPart = substr($my_menu, 4);
$my_menu = '<ul class="sf-menu">'.$secondPart;
echo $my_menu;
But I think it's really ugly solution. I'd like to do it better/cleaner. Can you help me, please? Thanks in advance.
Best regards,
Marcin