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

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

如果我们前面的修改,还不能令客户满意,而此时又需要进一步的隐藏系统自带的用户菜单。那么有多种方法,我们这里介绍通过实现hook_menu_link_alter()钩子函数,在Drupal将一个菜单项保存到menu_link表时,修改对应链接。下面是如何将“我的帐户”、“登出”菜单项隐藏的。

 

/**

 * 实现 hook_menu_link_alter().

 */

function my_menu_link_alter(&$item){

  if($item['link_path'] == 'user'){

    $item['hidden'] = 1;

}

if($item['link_path'] == 'user/logout'){

    $item['hidden'] = 1;

}

}

这个钩子可以用来修改一个链接的多个属性,比如标题、重量、是否隐藏。如果你需要修改一个菜单项的其它属性的话,比如访问回调,那么需要使用hook_menu_alter()

图片1.png 

        3-16.用户菜单的链接已被禁用

 

    此时,在用户菜单的管理界面,我们选择启用,并保存设置,我们发现两个菜单项仍然是禁用的,也就是说hook_menu_link_alter()中对菜单项所做的修改,是无法在用户界面中再进行覆写的。


Drupal版本: