Созонов Алексей

Веб-разработчик

Что такое hook в Drupal 7

01.08.2016

Модули в друпале представляют из себя набор файлов, которые содержат в себе некоторые функциональные возможности и написана на PHP. Поскольку код модуля выполняется в контексте сайта, то он может использовать все функции, все переменные и структуры ядра Drupal. На самом деле, модуль ничем не отличается от обычного PHP файла.

Такой подход позволяет ядру в конкретных местах вызывать функции, определенные в модулях для расширения его функциональности. Места, где код может быть исполнен, называются hooks (хуки). Они позволяют, например, добавлять новые url и страницы (hook_menu), изменять содержимое (hook_block, hook_footer и т.д.), создавать новые таблицы (hook_schema) и много чего еще. Например у модуля CCK существует хук - hook_field_info, который могут использовать другие модули для того, чтобы определить новый тип содержимого поля.

Большинство модулей предоставляют документацию о своих хуках.

Hooks можно рассматривать как event listener в том смысле, что некоторое событие вызывает действие. Например, событие “удалить содержимое” вызывает hook_delete. Вы можете добавить в свой модуль (mycustom.module) функцию

/**
 * Implements hook_delete().
 */
function mycustom_delete(&$node) {
    drupal_set_message($node->title);
}

для отображения заголовка ноды после ее удаления.

Больше информации вы можете найти здесь и здесь.

#Drupal