Главная » Drupal » Документация Drupal » Справочник API » Система модулей (хуки Drupal)
Распечатать статью

Система модулей (хуки Drupal)

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

Источник: drupal.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи