如何以编程方式打开Drupal 6子菜单?

如何以编程方式打开Drupal 6子菜单?,drupal,drupal-6,Drupal,Drupal 6,我有一个两级菜单,第二级显示在二级菜单中 如何从菜单中链接的页面以外的页面以编程方式打开第二级菜单 我查看了theme\u preprocess\u页面和其他页面,但不知道如何将菜单项状态从折叠状态更改为活动状态。将菜单项放入菜单中而不启用它们,可以解决您的问题吗 如果没有,您可以查看该模块,因为它为设置活动菜单项提供了更大的灵活性。一段时间以来,我一直在处理类似的问题 这里有一些文档: 但在某些方面有点粗略 此函数似乎可以实现以下功能: . 查看如何设置级别(作为参数),以便菜单呈现所需内容

我有一个两级菜单,第二级显示在二级菜单中

如何从菜单中链接的页面以外的页面以编程方式打开第二级菜单


我查看了
theme\u preprocess\u页面
和其他页面,但不知道如何将菜单项状态从折叠状态更改为活动状态。

将菜单项放入菜单中而不启用它们,可以解决您的问题吗


如果没有,您可以查看该模块,因为它为设置活动菜单项提供了更大的灵活性。

一段时间以来,我一直在处理类似的问题

这里有一些文档: 但在某些方面有点粗略

此函数似乎可以实现以下功能: . 查看如何设置级别(作为参数),以便菜单呈现所需内容


这可能不是你想要的,但希望能为你指明正确的方向

回答我自己的问题,这个节点api钩子就做到了。
受模块启发,Mike提到

function phptemplate_nodeapi(&$node, $op) {
  if($open_menu_for_this_node && $op == 'view') {
    $item = menu_get_item();
    $item['href'] = $menu_item_to_open;
    menu_set_item(NULL, $item);
  }
}

在节点上下文之外,类似这样的操作将起作用:

function HOOK_init() {

  if (arg(0) == 'exhibits' && arg(2) == 'publications') {
    $normal_path = drupal_get_normal_path( arg(0) .'/'. arg(1));
    $item = menu_get_item();
    $item['href'] = $normal_path;
    menu_set_item(NULL, $item);
  }

}
此特定示例希望在Exhibies/XXXXX/publications为路径时激活Exhibies/XXXXX菜单。Exhibles/XXXXX/publications不在相关菜单中,但Exhibles/XXXXX在菜单中

drupal\u get\u normal\u path()
只是将/XXXXX转换为节点/NNNN