Drupal $tabs 不包括编辑/修订/工作流程
题
我继承了 Drupal5 站点并负责进行一些更改,但我不知道从哪里开始寻找。
在许多页面上都有一个可供管理员使用的菜单,允许您执行某些操作:
概述专家资源和工具在现场新闻事件课程中
但是,在某些部分,有不同的选项:预览布局设置布局设置高级上下文内容导出
我需要将(编辑、跟踪、工作流程、设置)添加到第二个菜单,但我不知道该怎么做。
我在 page.tpl.php 中看到 $tabs 区域,但我不知道它是如何构建的。
据我所知,该主题基于 Zen STARTERKIT 主题。
解决方案
$tabs 变量通常会填充以下类型的菜单条目 MENU_LOCAL_TASK
.
看看 菜单系统, ,特别是在 hook_menu()
得到一个基本的想法。它归结为回调函数到路径的映射。如果 URL 与中定义的路径匹配 hook_menu
(可以包含占位符!),将调用为该路径注册的回调函数来生成该 URL 的内容。
的“类型” hook_menu
item 定义了路径/回调组合在系统中的表示方式。它可以是一个 MENU_CALLBACK
, ,这意味着只是注册的路径/回调组合,但没有相应的“真实”菜单条目。A MENU_NORMAL_ITEM
, ,将是相同的,但具有“标准”菜单条目,例如在导航菜单中。A MENU_LOCAL_TASK
是相同的,但相应的菜单项通常显示在 $tabs 中而不是菜单中。
全部 MENU_LOCAL_TASK
共享相同基本路径的文件最终将成为一组选项卡。所以如果你有这样的路径:
- 一些/路径/tab1
- 一些/路径/tab2
- 一些/路径/tab3
所有这些都定义为 MENU_LOCAL_TASK
, ,您会在它们所代表的每一页上看到它们每个的一个选项卡。
因此,要找到需要修改/增强的地方,您应该在代码库中搜索所有内容 hook_menu()
定义这些选项卡显示路径的实现。请注意,它们不必全部定义在同一位置,而是可以来自不同的位置 hook_menu
不同模块中的实现。您需要为要添加的选项卡添加菜单定义,将相关路径映射到回调函数。回调函数将返回用户单击选项卡时应看到的页面内容。
其他提示
如果您正在显示节点,通常在$ tabs中已有Edit链接,因为它不存在可能是其他东西(某种布局模块)。您需要添加编辑/跟踪选项来编辑/跟踪哪种内容?具体节点还是什么?