9菜单嵌套

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

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
到目前为止,我们仅仅定义了一个静态菜单项。让我们再添加一个与它相关的子项:

Drupal版本:

8定义标题回调

admin 的头像
Submitted by admin on 星期一, 2015-06-01 03:53

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

如果没有在菜单项中定义标题回调的话,Drupal将默认使用t()函数。我们也可以使用title callback键,明确地定义这个回调函数:

Drupal版本:

7标题的本地化和定制

admin 的头像
Submitted by admin on 星期一, 2015-06-01 03:49

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

我们知道,Drupal是支持多语言的,它使用t(),st()函数来翻译字符串。所以你可能会想,菜单项中的title键应该是这样定义的:

'title' =>t( '菜单ABC'),

Drupal版本:

6访问控制

admin 的头像
Submitted by admin on 星期一, 2015-06-01 03:48

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

​到目前为止,在前面的例子中,我们简单的将菜单项的access callback键设置为了TRUE,这意味着所有的用户都可以访问我们的菜单项。一般情况下,通过在模块中使用hook_ permission ()来定义权限,并使用一个函数来检查这些权限,从而实现对菜单的访问控制。这里所用的函数定义在菜单项的access callback键中,一般使用user_access。让我们定义一个名为access abc的权限;如果用户所在角色不具有该权限,当他访问页面http://localhost/thinkindrupal/menu_abc时,就会看到一个“拒绝访问”提示。

Drupal版本:

5把页面回调放在inc文件中

admin 的头像
Submitted by admin on 星期一, 2015-06-01 03:40

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

​如果我们没有特别指定,那么Drupal会假定我们把页面回调函数放在了module文件中。在Drupal7中,对于每个页面请求,系统通常都会加载所有的module文件,为了尽可能的降低所加载的module文件大小,我们可以把很多回调函数放置在inc文件中。可以使用菜单项中的file键,来指定哪个文件包含了它的回调函数,这样回调函数就不需要放在当前的module文件中了。我们在前面一章中,就曾提到过file键。

Drupal版本:

4不在菜单中显示菜单项

admin 的头像
Submitted by admin on 星期一, 2015-06-01 03:38

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

大多数时候,我们可能想将一个URL映射到一个函数上,而不需要创建一个可见的菜单项。例如,你可能在web表单中有一个JavaScript函数,它需要从特定Drupal路径中得到相应的数据,此时可以将这个URL映射到一个回调函数上,而不需要将它放到菜单中。通过将菜单项的类型指定为MENU_CALLBACK,便可轻松实现这一点。

Drupal版本:

2调整菜单项的位置

admin 的头像
Submitted by admin on 星期一, 2015-06-01 03:31

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

如果我们觉得这个菜单项的放置位置不合适,那么可以使用' weight '来进行相应的调整,增加菜单项的重量,可以使它向下移动;减少菜单项的重量,可以使它向上移动。

function menu_abc_menu() {

Drupal版本:

页面

Subscribe to Think in Drupal RSS