【发布时间】:2011-09-15 00:14:08
【问题描述】:
我正在尝试向 Drupal 7 添加自定义菜单,但似乎我无法处理 hook_menu 中的外部链接,因为它们没有插入数据库。当我将实现更改为使用 menu_link_save 时,内部菜单项不会保存在菜单路由表中,因此它们不会显示。有没有办法实现一个自定义菜单,该菜单将显示在包含正常菜单项和外部网站链接的页脚中?
【问题讨论】:
我正在尝试向 Drupal 7 添加自定义菜单,但似乎我无法处理 hook_menu 中的外部链接,因为它们没有插入数据库。当我将实现更改为使用 menu_link_save 时,内部菜单项不会保存在菜单路由表中,因此它们不会显示。有没有办法实现一个自定义菜单,该菜单将显示在包含正常菜单项和外部网站链接的页脚中?
【问题讨论】:
hook_menu() 实际上仅用于设计内部路径,因此外部路径不属于menu_router 表。你可以做一个小技巧来让你定义的内部路径立即重定向到外部站点,使用drupal_goto()作为你的页面回调:
$items['my_internal_path'] = array(
'title' => 'Title',
'type' => MENU_NORMAL_ITEM,
'access arguments' => array('access content'),
'page callback' => 'drupal_goto',
'page arguments' => array('http://external-site.com/')
);
希望有帮助
【讨论】:
这不是真的,至少现在不是。
你可以像这样添加外部项目
$items['http://facebook.com/'] = array(
'title' => t('Facebook'),
'type' => MENU_NORMAL_ITEM,
'access arguments' => array('access content'),
'menu_name' => 'menu-footer'
);
【讨论】: