在Drupal 7中创建新的Hook

时间:2012-07-05 14:41:52

标签: drupal-7 drupal-hooks

我不是在考虑如何实现现有的钩子,而是创建一个新的类型的钩子。假设钩子hook_node_load()存在。我想创建像hook_node_preload()这样的东西,它会在加载节点之前触发。

我已经搜索过,似乎无法找出Drupal代码钩子被解雇的位置。我认为它类似于module_invoke_all()或类似的东西?但我不确定它的名字在哪里。

1 个答案:

答案 0 :(得分:2)

在整个Drupal进程中,Drupal钩子遍布整个地方。没有一个地方可以调用所有钩子。

下面是Drupal核心创建钩子的一些函数列表:

http://api.drupal.org/api/drupal/includes%21module.inc/function/calls/module_invoke_all/7

如果是hook_node_load(),则会从位于 includes / entity.inc 的entity.inc文件中调用它,位于第334行。

foreach (module_implements($this->entityInfo['load hook']) as $module) {
  call_user_func_array($module . '_' . $this->entityInfo['load hook'], $args);
}