Drupal 主题菜单项()不工作

Drupal 主题菜单项()不工作,drupal,drupal-6,drupal-navigation,Drupal,Drupal 6,Drupal Navigation,我有一个名为惠灵顿的Drupal主题,位于\sites\all\themes\wellington。我希望覆盖菜单项功能,并按照处的说明操作 我想向li添加一个类,如上所述 我试过给函数命名惠灵顿菜单项,也试过phptemplate菜单项,但没有成功。我可以在函数中输入打印语句,这些语句将显示在屏幕上 此外,我可以在返回字符串及其正确之前打印出返回字符串,但在呈现菜单时,没有区别,显示的是正常的主字符串,即没有覆盖 主题本身运行良好,我可以看到CSS和HTML 我被难住了,有什么想法吗 <

我有一个名为惠灵顿的Drupal主题,位于\sites\all\themes\wellington。我希望覆盖菜单项功能,并按照处的说明操作

我想向li添加一个类,如上所述

我试过给函数命名惠灵顿菜单项,也试过phptemplate菜单项,但没有成功。我可以在函数中输入打印语句,这些语句将显示在屏幕上

此外,我可以在返回字符串及其正确之前打印出返回字符串,但在呈现菜单时,没有区别,显示的是正常的主字符串,即没有覆盖

主题本身运行良好,我可以看到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); ?>

将函数添加到template.php时,不要忘记清空浏览器缓存和drupal缓存。清除浏览器缓存不是必需的,但有时对其他更改有用


(站点配置-性能-清除缓存数据)

当您提到能够在返回结果字符串之前打印结果字符串时,覆盖确实有效。我怀疑的是,渲染时没有实际使用函数的结果。可能是因为它存储在模板变量中,然后在稍后调用的预处理函数中用另一个值覆盖该模板变量


我建议您使用该模块检查用于呈现菜单项的模板/函数。

您应该发布您编写的函数,最有可能的错误是该函数中的缺陷。请参见上面的链接-嘿,谢谢。我已经试了很多次了,但是没有成功。它只是没有选择覆盖。您是否也在主题的.info文件中将引擎设置为phptemplate?(引擎=phptemplate)。。。我只是在说它可能是什么。engine=phptemplate,没错。谢谢你的建议。主题是呈现OK、CSS等。只是没有选择这个覆盖。它是在page.tpl.php文件中调用的,我假设它是默认的?我将检查您建议的模块,干杯。在日志中看不到它调用菜单项吗?点击主导航按钮,我可以使用惠灵顿链接