你现在的位置:首页 > PHP网站建设知识库 > Drupal > 正文

Drupal URL设计

Drupal 使用它的菜单系统来定义 Web 站点的导航。在构建定制的模块时,可以指定模块如何根据 URL 为内容提供服务。当接收到页面请求时,系统根据路径的层次化结构寻找最接近的匹配。如果注册了一个路径,它就使用定义的回调函数来生成要显示的内容。路径的任何部分都可以用来选择如何显示内容。例如,如果路径是 /announcement/15/edit,那么将显示 id = 15 的节点的编辑页面;而对于路径 /announcement/15/view,仅仅显示节点的内容。回调函数是在 <module_name>_menu 挂钩中定义的。

Drupal 还有一种用来定义选项卡式界面的机制。这些选项卡是在菜单系统中作为 “本地任务(local tasks)” 指定的。在定义本地任务时,可以指定其中一个作为默认任务。默认本地任务是在用户查看内容段时首先显示的任务。我们建议在使用这个特性时总是指定一个默认本地任务。

<module_name>_menu 返回一个菜单规范数组。清单 5 中的代码片段显示一个菜单规范,它为一个典型的定制模块定义了回调函数。

清单 5. 来自 menu 挂钩代码片段的条目

$items[] = array('path' => '<module_name>', 'title' => t('Module Name'), 'access' => user_access('access content'), 'type' => MENU_SUGGESTED_ITEM, 'callback' => '<module_name>_page');
规范中的属性包括:

Path
当这个路径与 URL 请求匹配时,就使用这个条目。
Title
菜单条目的标题。
Access
这个属性的值决定当前用户是否可以访问这个条目所指定的内容。
Type
菜单规范的类型。
Callback
调用这个函数来生成在使用这个条目时要显示的内容。
有几种不同类型的 菜单规范,包括:

MENU_NORMAL_ITEM
这是菜单条目使用的默认类型,它们会显示在菜单树中。
MENU_ITEM_GROUPING
这种类型对条目进行分组,简单地列出要访问的子页面。
MENU_CALLBACK
注册一个回调函数,它会生成在访问 URL 时要显示的内容。
MENU_SUGGESTED_ITEM
管理员可以启用来自模块的建议条目。
MENU_LOCAL_TASK
这些页面显示为选项卡。其他显示方式也是可能的。
MENU_DEFAULT_LOCAL_TASK
每组本地任务还应该提供一个默认任务,它链接到与它的父条目相同的路径。