18 通配符和页面回调参数

admin 的头像
Submitted by admin on 星期二, 2015-06-02 02:49

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
菜单路径中的通配符,不影响将URL中的额外部分作为参数传递给页面回调,这是因为通配符只匹配到下一个/字符。继续使用我们的wildcard/%路径作为例子,对于URL wildcard/123/b/c/d,通配符所匹配的字符串就是123,而对于路径中的其余部分(b/c/d),它们将分别作为参数传递给页面回调。

Drupal版本:

15 基本通配符

admin 的头像
Submitted by admin on 星期二, 2015-06-02 02:46

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
%字符在Drupal菜单项中是一个特殊的字符。它意味着“从这到下一个/字符之间的字符串”。上面是一个使用了通配符的菜单项。这个菜单项适用的Drupal路径可以有wildcard /a, wildcard/a/b, wildcard/88。但是它对路径wildcard不起作用;对于后者,因为它只包含了一个部分,而wildcard /%只匹配至少具有两部分的字符串,所以你需要为其单独创建一个菜单项。注意,尽管%通常是用来指定一个数字的(比如,user/%/edit用于user/1/edit),但是它能匹配该位置上的任何文本。

Drupal版本:

14 菜单项中的通配符

admin 的头像
Submitted by admin on 星期二, 2015-06-02 02:45

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

到目前为止,我们在菜单项中所用的都是普通的Drupal路径名字,比如menu_abc 、my、my/orders。但是Drupal还经常使用这样的路径,比如user/1或node/1/edit,在这些路径中,有一部分是动态的。现在,让我们来看看动态路径是如何工作的。

Drupal版本:

13 改变其它模块的菜单链接

admin 的头像
Submitted by admin on 星期二, 2015-06-02 01:34

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
如果我们前面的修改,还不能令客户满意,而此时又需要进一步的隐藏系统自带的用户菜单。那么有多种方法,我们这里介绍通过实现hook_menu_link_alter()钩子函数,在Drupal将一个菜单项保存到menu_link表时,修改对应链接。下面是如何将“我的帐户”、“登出”菜单项隐藏的。

Drupal版本:

12 修改其它模块定义的菜单项

admin 的头像
Submitted by admin on 星期二, 2015-06-02 01:32

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
当Drupal重构menu_router表和更新menu_link表时(比如,当一个新模块被启用时),通过实现hook_menu_alter(),模块就可以修改任意的菜单项。例如,“我的帐户”菜单项通过调用user_page(),如果当前用户是登录用户,那么就显示用户的个人资料;如果是匿名用户,则显示登录表单。由于user_page ()函数位于modules/user/user.pages.inc中,所以该Drupal路径的菜单项中定义了file键。这样,通常情况下,当一个用户点击了用户菜单中的“我的帐户”链接,Drupal会加载文件modules/user/user.pages.inc并运行user_page ()函数。

Drupal版本:

11 将菜单项显示为标签

admin 的头像
Submitted by admin on 星期二, 2015-06-02 01:28

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
有时候,Drupal的术语是异常晦涩难懂的,同样的名字,在Drupal中有着不同的含义,拿标签tabs来说,在Drupal中,我们把它叫做本地任务,对应的菜单类型为MENU_LOCAL_TASK或者MENU_DEFAULT_LOCAL_TASK。本地任务的标题通常是一个简短的动词,比如“添加”或者“列出”。它通常作用在一些对象上,比如节点,或者用户。我们可以把一个本地任务理解为一个关于菜单项的语义声明,通常显示为一个标签(tab)----这和标签类似,后者也是一个语义声明,通常用来显示加粗的文本。

Drupal版本:

10 页面回调参数

admin 的头像
Submitted by admin on 星期二, 2015-06-02 01:25

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
有时候,我们可能希望能够向回调函数提供更多的信息。首先,路径中的其它部分能够自动的作为参数传递过来。让我们修改一下我们的回调函数,增加两个参数:

Drupal版本:

页面

Subscribe to Think in Drupal RSS