У меня есть тема Drupal, которая называется wellington и находится в \ sites \ all \ themes \ wellington. Я хочу переопределить функцию menu_item и следовал инструкциям на http://drupal.org/node/310356.
Я хочу добавить класс в li, как описано.
Я попытался назвать функцию wellington_menu_item и попробовал phptemplate_menu_item, но безуспешно. Я могу поместить операторы печати в функцию, и они отображаются на экране.
Кроме того, я могу распечатать возвращаемую строку непосредственно перед ее возвратом, и она верна, но когда меню отображается, без разницы, отображается обычный основной, т.е. без переопределения.
Сама тема работает нормально, и я вижу CSS и HTML.
В тупике, есть идеи?
<?php
/**
* Theme override for theme_menu_item()
*/
function phptemplate_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';
}
// Add unique identifier
static $item_id = 0;
$item_id += 1;
$id .= ' ' . 'menu-item-custom-id-' . $item_id;
// Add semi-unique class
$class .= ' ' . preg_replace("/[^a-zA-Z0-9]/", "", strip_tags($link));
return '<li class="'. $class .'" id="' . $id . '">'. $link . $menu ."</li>\n";
}
?>
Он вызывается в page.tpl.php с использованием
<?php print theme('links', $primary_links); ?>