Хуки
Позволяет модулям взаимодействовать с ядром 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 | Вызывает хук во всех включённых модулях. |
