1

是否可以为节点访问定义新操作?

据我所知,用于节点的操作hook_access()是:

  • 创造

  • 删除

  • 更新

  • 看法

我有一个自定义内容类型,我需要对其进行其他操作,例如“建议”。

4

1 回答 1

1

简短的回答是否定的,因为负责调用 hook_access()的 node_access() 会检查 $op 参数

if (!$node || !in_array($op, array('view', 'update', 'delete', 'create'), TRUE)) { return FALSE; }

您可以在建议()函数中将一些额外信息附加到节点对象 - 希望在 node_access() 之前调用 - 然后在 hook_access() 中检查这些额外信息并根据返回 TRUE/FALSE。

另一个选项是硬编码权限检查到Suggest()操作本身,而不用弄乱hook_access。

于 2011-04-20T12:08:22.200 回答