Drupal 7 Drupal 7钩子节点访问不允许“拒绝”?

Drupal 7 Drupal 7钩子节点访问不允许“拒绝”?,drupal-7,nodes,Drupal 7,Nodes,我创建了一个简单的模块: function hook_node_access($node, $op, $account) { return NODE_ACCESS_DENY; } 它确实会阻止对节点的访问,但我在访问该页面时遇到以下错误: Notice: Trying to get property of non-object in node_node_access() (line 3089 of \www\modules\node\node.module). 该行内容如下: 308

我创建了一个简单的模块:

function hook_node_access($node, $op, $account)
{
    return NODE_ACCESS_DENY;
}
它确实会阻止对节点的访问,但我在访问该页面时遇到以下错误:

Notice: Trying to get property of non-object in node_node_access() (line 3089 of \www\modules\node\node.module).
该行内容如下:

3088.    function node_node_access($node, $op, $account) {
3089.        $type = is_string($node) ? $node : $node->type;
基本上,当我这样做时,$node不是字符串,但也没有类型值。我只能想象$node在点击代码的这一部分时是一个空白对象。但是为什么呢

更新

我对node对象进行了var_转储,我相信这就是内容:

int(436)
因此,不知何故,节点id被推到了这个函数中,但不是节点,并且is_string函数没有检测到它是一个字符串,因为它不是,它是一个INT

有什么想法吗

更新2:

所有这些对我来说都非常糟糕的是,即使我以没有访问这些节点的用户身份登录Drupal,如果他们转到/node并滚动页面,他们仍然可以看到这些节点


我是否遗漏了什么,因为hook\u node\u访问肯定会阻止节点出现在/node?

在实现Drupal hook时,应该始终用自定义模块名替换“hook”。例如:

function mymodule_node_access($node, $op, $account)
{
    return NODE_ACCESS_DENY;
}
此外,每次实现新的钩子时,您都需要清除Drupal缓存,方法是转到admin/config/development/performance