Ted*_*Ted 0 php drupal drupal-7 drupal-modules
我有一个作者应该能够编辑的节点表单,除非某些条件为真。我想在这些条件下为作者删除“编辑”选项卡。高级用户应该仍然可以使用“编辑”选项卡。
该hook_menu_alter()
函数对我不起作用,因为它仅在构建菜单时被调用,然后才会被放入缓存中。
我更喜欢 (a) 在不添加另一个 contrib 模块的情况下执行此操作,并且 (b) 在模块级别而不是主题级别(为了安全),但我也有兴趣听到其他方式。
您可能可以使用规则来执行此操作,但我个人会hook_node_access()
在自定义模块中使用:
function MYMODULE_node_access($node, $op, $account) {
if ($op == 'edit') {
if ($some_condition) {
return NODE_ACCESS_ALLOW;
}
return NODE_ACCESS_DENY;
}
return NODE_ACCESS_IGNORE;
}
Run Code Online (Sandbox Code Playgroud)