Drupal $ tabs不包括编辑/修订/工作流程

时间:2009-10-22 20:02:55

标签: php drupal menu tabs drupal-5

我继承了Drupal5网站并且已经完成了一些更改,但我无法弄清楚从哪里开始寻找。

在许多页面上,管理员可以使用一个菜单,允许您执行某些操作:

概述 专家 资源和工具 在该领域 新闻 活动 课程 多媒体 编辑 跟踪 工作流程 设置

但是,在某些部分,有不同的选项: 预习 布局 设置 布局设置 高级 上下文 内容 出口

我需要在第二个菜单中添加(编辑,跟踪,工作流程,设置),但我不知道该怎么做。

我在page.tpl.php中看到$ tabs的区域,但我无法弄清楚它是如何构建的。

据我所知,主题基于Zen STARTERKIT主题。

2 个答案:

答案 0 :(得分:6)

$ tabs变量通常会填充MENU_LOCAL_TASK类型的菜单项。

查看menu system,特别是hook_menu(),以获得基本想法。它归结为回调函数到路径的映射。如果URL匹配hook_menu中定义的路径(可以包含占位符!),则将调用为该路径注册的回调函数以生成该URL的内容。

hook_menu项的'type'定义了如何在系统中表示路径/回调组合。它可以是MENU_CALLBACK,这意味着只注册路径/回调组合,但没有相应的“真实”菜单条目。 MENU_NORMAL_ITEM是相同的,但带有“标准”菜单条目,例如在导航菜单中。 MENU_LOCAL_TASK是相同的,但相应的菜单条目通常显示在$ tabs中,而不是显示在菜单中。

共享相同基本路径的所有MENU_LOCAL_TASK最终将作为一组标签。所以如果你有这样的路径:

  • 一些/路径/ TAB1
  • 一些/路径/ TAB2
  • 一些/路径/ TAB3

以及所有这些定义为MENU_LOCAL_TASK的内容,您会在每个页面上看到一个标签。

因此,要查找需要修改/增强的位置,您应该在代码库中搜索定义这些选项卡显示的路径的所有hook_menu()实现。请注意,它们不需要在同一个地方定义,但可以来自不同模块中的不同hook_menu实现。您需要为要添加的选项卡添加菜单定义,将相关路径映射到回调函数。回调函数将返回用户在单击选项卡时应看到的页面内容。

答案 1 :(得分:0)

如果您正在显示节点,通常在$ tabs中已有Edit链接,因为它不存在可能是其他东西(某种布局模块)。您需要添加编辑/跟踪选项来编辑/跟踪哪种内容?具体节点还是什么?