Создание новых хуков в Drupal 7

Я не ищу, как реализовать существующий хук, а скорее как создать новый тип хука. Допустим, крючок hook_node_load() существует. Я хочу создать что-то вроде hook_node_preload(), которое срабатывает до загрузки узла.

Я искал и не могу найти, где в коде Drupal запускаются хуки. Я предполагаю, что это что-то вроде module_invoke_all() или что-то в этом роде? Но я не уверен, где это называется.


person Eduard Luca    schedule 05.07.2012    source источник


Ответы (1)


Перехватчики Drupal запускаются повсюду, на протяжении всего процесса Drupal. Не существует одного места, которое вызывает все крючки.

Ниже приведен список некоторых функций ядра Drupal, которые создают хуки:

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

В случае hook_node_load() он вызывается из файла entity.inc, расположенного по адресу includes/entity.inc, в строке 334.

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