Здравствуйте уважаемые!
Возникла проблема с выводом третьего уровня меню. Третий уровень выводится, но не так, как хотелось бы.
Проблема в том, что если включены 2 уровня:
.submenu
меню отображается нормально, а если включить третий уровень, то иерархия получается следующей:
.menu
.submenu
а нужно:
.submenu
.submenu
Меню темизированное. Направьте, пожалуйста, на путь истинный!
Заранее благодарен.
<?php
function THEME_menu_link(array $variables, $level = 0) {
$element = $variables['element'];
$sub_menu = '';
if ($element['#below']) {
$sub_menu = drupal_render($element['#below'], $level++);
}
$output = l($element['#title'], $element['#href'], $element['#localized_options']);
$menuid = explode('/',$element['#href']);
$midpath = $menuid['1'];
if ($midpath == '3'){
return '<li class="first">' . $output . $sub_menu . "</li>\n";
}
elseif ($midpath == '12'){
return '<li class="second">' . $output . $sub_menu . "</li>\n";
}
elseif ($midpath == '18'){
return '<li class="third">' . $output . $sub_menu . "</li>\n";
}
elseif ($midpath == '20'){
return '<li class="fourth">' . $output . $sub_menu . "</li>\n";
}
elseif ($midpath == '7'){
return '<li class="fifth">' . $output . $sub_menu ."</li>\n";
}
else {
return '<li class="smenu fid_'. $midpath .'" '. drupal_attributes($element['#attributes']) .'>' . $output . $sub_menu . "</li>\n";
}
}
function
THEME_menu_tree($variables) {
if (preg_match("/\bsubmenu\b/i", $variables['tree'])){
return '<ul class="menu">' . $variables['tree'] . '</ul>';
} else {
return '<ul class="submenu">' . $variables['tree'] . '</ul>';
}
}
?>