1

我不是在寻找如何实现现有的钩子,而是要创建一种新型钩子。假设钩子hook_node_load()存在。我想创建类似的东西hook_node_preload(),在加载节点之前触发。

我已经搜索过,似乎无法找出 Drupal 代码钩子在哪里被触发。我认为它是类似的东西module_invoke_all()或类似的东西?但我不确定它在哪里被调用。

4

1 回答 1

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);
}
于 2012-07-05T15:30:58.383 回答