【问题标题】:Forbidden node still displays in the menu - how do I prevent this?禁止节点仍然显示在菜单中 - 我该如何防止这种情况?
【发布时间】: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 和简单的访问参数)都根据用户的权限正确隐藏或显示。

我不明白为什么节点本身得到了正确保护,但菜单项却没有。在我看来,显示菜单时没有调用访问回调(回调方法中的调试消息未显示)。

【问题讨论】:

    标签: drupal drupal-6


    【解决方案1】:

    【讨论】:

    • 例如因为它可能与其他实现节点访问的模块发生冲突,例如有机群组或论坛访问。此外,这仅在直接显示单个节点时有效,但不适用于列表、视图等。
    猜你喜欢
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 2023-04-03
    • 2018-10-16
    • 2023-02-08
    • 1970-01-01
    相关资源
    最近更新 更多