문제

I'm not looking about how to implement an existing hook, but rather to create a new type of hook. Let's say the hook hook_node_load() exists. I want to create something like hook_node_preload(), that fires before the node is loaded.

I've searched and can't seem to find out where in the Drupal code hooks are being fired. I assume it's something like module_invoke_all() or something like that? But I'm not sure where it's called.

도움이 되었습니까?

해결책

Drupal hooks are fired all over the place, throughout all of the Drupal process. There isn't one place that calls all of the hooks.

Below is a list of some of the functions from the Drupal core that create hooks:

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

In the case of hook_node_load(), it is called from the entity.inc file located at includes/entity.inc, at line 334.

foreach (module_implements($this->entityInfo['load hook']) as $module) {
  call_user_func_array($module . '_' . $this->entityInfo['load hook'], $args);
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top