【发布时间】:2011-02-28 01:21:00
【问题描述】:
我已经实现了 hook_menu_alter 来为 Drupal 6 中的标准 node/%node 菜单项添加自定义访问功能。
function amh_workflow_menu_alter(&$items)
{
$items['node/%node']['access callback'] = '_amh_workflow_access';
}
当节点本身显示给用户时,此函数非常适合确定访问权限 - 但节点的菜单项始终显示。我希望菜单项仅在用户有权访问该页面时显示给用户。
我已经尝试清除缓存几次,但菜单项顽固地拒绝隐藏。这看起来很奇怪,因为其他菜单项(诚然,我认为它们都使用默认的 user_access 和简单的访问参数)都根据用户的权限正确隐藏或显示。
我不明白为什么节点本身得到了正确保护,但菜单项却没有。在我看来,显示菜单时没有调用访问回调(回调方法中的调试消息未显示)。
【问题讨论】: