1

私は既存のフックを実装する方法を探しているのではなく、新しいタイプのフックを作成することを考えています。フックが存在するとしましょうhook_node_load()hook_node_preload()ノードがロードされる前に発火するようなものを作成したいと思います。

検索しましたが、Drupal コードのどこでフックが起動されているのかわかりません。私はそれが何かのようなmodule_invoke_all()ものだと思いますか?しかし、それがどこで呼ばれているかはわかりません。

4

1 に答える 1

2

Drupal フックは、Drupal プロセス全体を通じて、あらゆる場所で起動されます。すべてのフックを呼び出す 1 つの場所はありません。

以下は、フックを作成する Drupal コアの関数の一部のリストです。

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

の場合、includes/entity.inchook_node_load()にある 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 に答える