Хуки
Позволяет модулям взаимодействовать с ядром Drupal.
Модули, используемые в Друпале, работают по принципу «хука» (англ. hook — крючок, ловушка). Хук — это PHP функция, которая имеет название module_name_hook_name()
, где «module_name» — название модуля (имя файла module_name.module), а «hook_name» — название самого хука. Каждый хук имеет определенный набор параметров и типов результатов.
Для расширения функциональности тех или иных частей Друпала, нужно реализовать соответствующий хук. Когда Друпал хочет взаимодействовать с модулями, он определяет какие хуки предоставляются модулями и вызывает эти хуки для всех включённых на сайте модулей.
Ниже перечислены хуки, вызов которых поддерживает Друпал. В определениях ниже, слово "hook"
следует заменять на имя соответствующего модуля, в котором этот хук будет реализован. Например, если есть модуль example.module и в нём определён хук hook_help()
, то в модуле реализацию хука следует определить в виде функции example_help()
.
Функции
Имя | Описание |
---|---|
custom_url_rewrite_inbound developer/hooks/core.php | custom_url_rewrite_inbound не является хуком. Это функция, которую можно добавить в settings.php, чтобы переадресовывать входящие запросы к путям Друпала. Эта функция вызывается перед загрузкой модулей и инициализацией меню. Она изменяет $_GET['q']. |
custom_url_rewrite_outbound developer/hooks/core.php | custom_url_rewrite_outbound не является хуком. Это функция, которую можно добавить в settings.php, и которая может вносить изменения во все ссылки, создаваемые Друпалом. |
hook_access developer/hooks/node.php | Определяет ограничения доступа. |
hook_actions_delete developer/hooks/core.php | Выполняется после удаления действия (action). |
hook_action_info developer/hooks/core.php | Информирует триггеры Друпала о новых действиях (actions). |
hook_action_info_alter developer/hooks/core.php | Изменяет действия (action), объявленные другим модулем. |
hook_block developer/hooks/core.php | Определяет блок или набор блоков. |
hook_boot developer/hooks/core.php | Выполняет задачи при загрузке системы. |
hook_comment developer/hooks/core.php | Выполняет действия над комментариями. |
hook_cron developer/hooks/core.php | Выполняет запланированные действия по расписанию. |
hook_db_rewrite_sql developer/hooks/core.php | Переписывает запросы к БД, обычно для контроля доступа. |
hook_delete developer/hooks/node.php | Срабатывает при удалении ноды. |
hook_disable developer/hooks/install.php | Выполняет нужные действия перед тем, как модуль будет отключён. |
hook_elements developer/hooks/core.php | Позволяет модулям определять свои собственные типы элементов Forms API и определять их значения по умолчанию. |
hook_enable developer/hooks/install.php | Выполняет необходимые действия после того, как модуль включён. |
hook_exit developer/hooks/core.php | Используется для подчистки данных после загрузки страницы. |
hook_file_download developer/hooks/core.php | Контролирует доступ к файлам при приватном способе загрузки. Кроме того, позволяет указывать HTTP заголовки для файлов. |
hook_filter developer/hooks/core.php | Определяет фильтры пользовательского ввода. |
hook_filter_tips developer/hooks/core.php | Предоставляет советы по использованию фильтров пользовательского ввода. |
hook_flush_caches developer/hooks/core.php | Позволяет добавляет свои таблицы к списку таблиц кеша, которые будут очищены. |
hook_footer developer/hooks/core.php | Вставляет закрывающий HTML. |
hook_form developer/hooks/node.php | Показывает форму изменения ноды. |
hook_forms developer/hooks/core.php | Привязывает идентификаторы форм (form_ids) к функциям их построения. |
hook_form_alter developer/hooks/core.php | Позволяет вносить изменения в форму перед её показом. |
hook_form_FORM_ID_alter developer/hooks/core.php | Предоставляет возможность изменить отдельную форму, вместо глобального хука hook_form_alter(). |
hook_help developer/hooks/core.php | Предоставляет контекстную справку для пользователей. |
hook_hook_info developer/hooks/core.php | Показывает список триггеров (событий), к которым Ваш модуль позволяет пользователям назначать действия. |
hook_init developer/hooks/core.php | Выполняет задачи по инициализации. См. также hook_boot(), hook_exit() |
hook_insert developer/hooks/node.php | Отвечает за вставку ноды. |
hook_install developer/hooks/install.php | Устанавливает текущую версию схемы базы данных и выполняет другие операции по настройке. |
hook_link developer/hooks/core.php | Определяет внутренние ссылки Drupal. |
hook_link_alter developer/hooks/core.php | Производит изменения перед тем как отображаются ссылки в ноде. Один из популярных способов использования этого хука - изменение/удаление ссылок из других модулей. Если вы хотите добавить ссылку в секцию ссылок ноды, используйте вместо этого hook_link(). |
hook_load developer/hooks/node.php | Загружает информацию специфичную для типа ноды. |
hook_locale developer/hooks/core.php | Позволяет модулям определять их собственные группы текстов, которые могут быть переведены. |
hook_mail developer/hooks/core.php | Подготавливает письмо, основанное на параметрах. Для подробностей см. также drupal_mail(). |
hook_mail_alter developer/hooks/core.php | Изменяет любой аспект email отсылаемых Друпал. Вы можете использовать этот хук, чтобы добавить общий нижний колонтитул сайта для всех исходящих писем; добавить дополнительное поле заголовка и/или изменить отправляемые письма любым образом. HTML-изация исходящих писем - одна из возможностей. |
hook_menu developer/hooks/core.php | Определяет пункты меню и обратные вызовы страниц. |
hook_menu_alter developer/hooks/core.php | Производит изменения над данными, сохраненными в таблице {menu_router}, после того как выполнился hook_menu(). |
hook_menu_link_alter developer/hooks/core.php | Изменение данных, сохраненных в {menu_links} таблице по menu_link_save(). |
hook_nodeapi developer/hooks/core.php | Выполняет действия над нодами. |
hook_node_access_records developer/hooks/core.php | Устанавливает разрешения для ноды быть записанной в базу данных. |
hook_node_grants developer/hooks/core.php | Информирует систему управления доступом к нодам о правах, которые пользователь имеет. |
hook_node_info developer/hooks/node.php | Определяет предоставляемые модулем типы нод. |
hook_node_operations developer/hooks/core.php | Добавляет массовые операции над нодами. |
hook_node_type developer/hooks/node.php | Позволяет модулям осуществлять действия при изменении типа нод. |
hook_perm developer/hooks/core.php | Определяет права доступа пользователя. |
hook_ping developer/hooks/core.php | Отправляет ping-запрос на другой сервер. |
hook_prepare developer/hooks/node.php | Этот хук используется модулями, которые работают с нодами. Он вызывается после загрузки ноды, но перед тем, как нода будет отображена в форме добавления/редактирования. |
hook_profile_alter developer/hooks/core.php | Вносит изменения в элементы профиля перед тем, как они будут показаны. Вы можете пропускать/добавлять/пересортировывать/перегруппировывать и т.д. |
hook_requirements developer/hooks/install.php | Проверяет требования для установки и выдает сообщение о статусе. |
hook_schema developer/hooks/install.php | Устанавливает базу данных согласно определенной схемы. |
hook_schema_alter developer/hooks/core.php | Вносит изменения в существующие схемы базы данных. |
hook_search developer/hooks/core.php | Определяет пользовательскую функцию поиска. |
hook_search_preprocess developer/hooks/core.php | Пред-обработка текста перед занесением в поисковой индекс. |
hook_system_info_alter developer/hooks/core.php | Изменяет информацию, получаемую из файлов .info модулей и тем. |
hook_taxonomy developer/hooks/core.php | Выполняется при изменениях таксономии. |
hook_term_path developer/hooks/core.php | Позволяет модулям предоставлять альтернативные пути к терминам таксономии, которыми заведует модуль. |
hook_theme developer/hooks/core.php | Регистрирует темизации модуля или темы. |
hook_theme_registry_alter developer/hooks/core.php | Изменяет информацию в регистре тем, возвращаемую hook_theme(). |
hook_translated_menu_link_alter developer/hooks/core.php | Позволяет изменять уже переведенную ссылку меню перед отображением. |
hook_translation_link_alter developer/hooks/core.php | Perform alterations on translation links. |
hook_uninstall developer/hooks/install.php | Служит для удаления таблиц и переменных модуля. |
hook_update developer/hooks/node.php | Отвечает за обновление ноды. |
hook_update_index developer/hooks/core.php | Обновляет полнотекстовый индекс Друпала для данного модуля. |
hook_update_last_removed developer/hooks/install.php | Возвращает номер последнего обновления модуля, не доступного более через хуки hook_update_N(). |
hook_update_N developer/hooks/install.php | Производит обновление таблиц БД, необходимое для единичного обновления модуля. |
hook_update_status_alter developer/hooks/core.php | Изменяет информацию о доступных для проектов обновлениях. |
hook_user developer/hooks/core.php | Выполняет действия с учётными записями пользователей. |
hook_user_operations developer/hooks/core.php | Добавляет массовую операцию над пользователями. |
hook_validate developer/hooks/node.php | Проверяет форму редактирования ноды. |
hook_view developer/hooks/node.php | Показывает ноду. |
hook_watchdog developer/hooks/core.php | Записывает в журнал сообщения о событиях. |
hook_xmlrpc developer/hooks/core.php | Регистрирует обработчики XML-RPC. |
module_hook includes/module.inc | Определяет, реализует ли модуль данный хук. |
module_implements includes/module.inc | Определяет, какие модули реализуют хук. |
module_invoke includes/module.inc | Вызывает хук в указанном модуле. |
module_invoke_all includes/module.inc | Вызывает хук во всех включённых модулях. |