Как я могу создать свой собственный хук (аналогичный тому, который создает ядро Drupal) для использования другими модулями Drupal?
18
Вы на самом деле не создаете хуки. Вы используете вспомогательные функции, такие как module_invoke_all()
, module_invoke()
или drupal_alter()
для вызова всех функций, соответствующих ожидаемому шаблону имени. Вызванные функции обычно находятся с module_implements()
.
Даже если для работы хуков нет необходимости, лучше всего документировать их MODULE.api.php
, создавая пустые функции- заглушки hook_NAME
с комментариями к документации .
Вы также можете создать ловушку, используя hook_trigger_info, вы можете создать новую ловушку, и в вашем модуле вам необходимо ее реализовать. В качестве примера предположим, что вы хотите создать архив узлов и поместить в него старые узлы. Вы также хотите вызвать ловушку, когда операция архивирования завершена. это будет нечто подобное
После определения ловушки, ваш модуль отвечает за реализацию ловушки и действий с помощью module_invoke () или module_invoke_all () .
Вы можете включить
trigger
модуль, чтобы увидеть этот новый хук на вкладке узла.источник