Переопределение вывода меню

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

Аватар пользователя usik usik 3 июня 2013 в 23:17

Пытаюсь переопределить вывод меню,так как создаю свою тему. Через админку друпала создал главное меню и еще одно меню. И вывожу их в свою тему. В общем кое что получается. Вот что сделано.

Есть файл template.php

<?php
function mytheme_menu_tree($variables) {
    return 
'<fieldset><legend>Шаблон 1 menu_tree</legend><ul class="menu">' $variables['tree'] . '</ul></fieldset>';
}

function 

mytheme_menu_link(array $variables) {
    
$element $variables['element'];
    
$sub_menu '';

    if (

$element['#below']) {
        
$sub_menu drupal_render($element['#below']);
    }
    
$output l($element['#title'], $element['#href'], $element['#localized_options']);
    return 
'<li' drupal_attributes($element['#attributes']) . '><strong style="color:green;">2[[</strong>' $output $sub_menu "<strong style=\"color:green;\">]]</strong></li>\n";
}

function 

mytheme_menu_tree__menu_top_menu($variables) {
    return 
'<fieldset><legend>Шаблон3&nbsp;menu_tree__menu_test_menu</legend><ul class="menu">' $variables['tree'] . '</ul></fieldset>';
}

function 

mytheme_menu_link__menu_top_menu(array $variables) {
    
$element $variables['element'];
    
$sub_menu '';

    if (

$element['#below']) {
        
$sub_menu drupal_render($element['#below']);
    }
    
$output l($element['#title'], $element['#href'], $element['#localized_options']);
    return 
'<li' drupal_attributes($element['#attributes']) . '><strong style="color:red;">4[[</strong>' $output $sub_menu "<strong style=\"color:red;\">]]</strong></li>\n";
}

function 

mytheme_menu_item($link$has_children$menu ''$in_active_trail FALSE$extra_class NULL) {
    
$class = ($menu 'expanded' : ($has_children 'collapsed' 'leaf'));
    if (!empty(
$extra_class)) {
        
$class .= ' '$extra_class;
    }
    if (
$in_active_trail) {
        
$class .= ' active-trail';
    }
    return 
'<li class="'$class .'">ww555ww'$link $menu ."</li>\n";
}
?>

Есть файл page.tpl.php Там написано такое

<?php
<table>
 <
tr>
  <
td><?php print render(menu_tree('main-menu')); ?></td>
  <td><?php print render(menu_tree('menu-top-menu')); ?></td>
 </tr>
</table>
?>

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

Дело в том, что в файрбаге я вижу вот такой вот текст меню

<li class="leaf">
  ...
</li>

Я не хочу иметь эти классы leaf и прочие которые друпал там сочиняет. Поэтому начитавшись в нете как это дело переопределить, я описал функцию mytheme_menu_item. Вот в ней то и беда, я туда попросту не попадаю. Брейкпоинт не срабатывает, да и всякая краказямба не выводится. В общем как попасть в эту функцию. А то уже бесить начинает. Я между прочим не одинок

http://stackoverflow.com/questions/3244858/theme-menu-item-is-not-working

В общем помогите пожалуйста.

Комментарии

Аватар пользователя serega111 serega111 4 июня 2013 в 10:43

Гуглим и находим сразу вот этот док https://api.drupal.org/api/drupal/includes!menu.inc/function/theme_menu_... , читаем первый коммент и понимаем, что нам сюда https://api.drupal.org/api/drupal/includes!menu.inc/function/theme_menu_...
а может даже сюда https://api.drupal.org/api/drupal/modules!system!system.api.php/function...

P.S. С вас 10р за гугление.