Пытаюсь переопределить вывод меню,так как создаю свою тему. Через админку друпала создал главное меню и еще одно меню. И вывожу их в свою тему. В общем кое что получается. Вот что сделано.
Есть файл 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 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>
?>
Таким образом в ячейках таблицы я вижу как выводятся у меня два меню разными способами. В принципе неплохо, и остается последний шаг.
Дело в том, что в файрбаге я вижу вот такой вот текст меню
Я не хочу иметь эти классы leaf и прочие которые друпал там сочиняет. Поэтому начитавшись в нете как это дело переопределить, я описал функцию mytheme_menu_item. Вот в ней то и беда, я туда попросту не попадаю. Брейкпоинт не срабатывает, да и всякая краказямба не выводится. В общем как попасть в эту функцию. А то уже бесить начинает. Я между прочим не одинок
http://stackoverflow.com/questions/3244858/theme-menu-item-is-not-working
В общем помогите пожалуйста.
Комментарии
Гуглим и находим сразу вот этот док 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р за гугление.