Третий уровень для темизированного меню

Главные вкладки

Аватар пользователя maincg maincg 14 декабря 2012 в 17:28

Здравствуйте уважаемые!

Возникла проблема с выводом третьего уровня меню. Третий уровень выводится, но не так, как хотелось бы.
Проблема в том, что если включены 2 уровня:

.menu
        .submenu

меню отображается нормально, а если включить третий уровень, то иерархия получается следующей:

.menu
        .menu
                .submenu

а нужно:

.menu
        .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>';
  }
}
?>