我需要在Drupal中进行一些复杂的节点访问,并且我决定使用自己的模块。我需要查看哪些钩子才能访问节点。你有什么例子吗?
答案 0 :(得分:5)
您所需要的只是hook_access
如果要对所有节点进行访问控制,可以通过一些调整来完成。您可以使用hook_menu_alter
将自定义访问控制功能添加到“node /%node”。它看起来像这样:
function module_menu_alter($items) {
$items['node/%node']['access callback'] = 'module_node_access';
}
function module_node_access($op, $node) {
if ($special_case) {
return FALSE;
}
elseif ($special_case_2) {
return TRUE;
}
// Default, let Drupal handle it.
return return node_access($op, $node);
}
答案 1 :(得分:1)
这在Drupal 6中很痛苦 - hook_access
只能调整由其所属模块创建的节点类型的访问权限,hook_node_access
是Drupal 7中的新功能。
不幸的是,我发现的最佳解决方案是通过核心补丁向access
添加hook_nodeapi
操作。可以找到详细信息here。