AddEventHandler
Описание и параметры
AddEventHandler( string from_module_id, string MESSAGE_ID, mixed callback, int sort = 100, mixed full_path = false );
Регистрирует произвольный обработчик callback события MESSAGE_ID модуля from_module_id. Если указан полный путь к файлу с обработчиком full_path, то он будет автоматически подключен перед вызовом обработчика. Вызывается на каждом хите и работает до момента окончания работы скрипта.
Параметры функции
Параметр | Описание |
---|---|
from_module_id | Идентификатор модуля который будет инициировать событие. |
MESSAGE_ID | Идентификатор события. |
callback | Название функции обработчика. Если это метод класса, то массив вида Array(класс(объект), название метода). |
sort | Очередность (порядок), в котором выполняется данный обработчик (обработчиков данного события может быть больше одного). Необязательный параметр, по умолчанию равен 100. |
full_path | Полный путь к файлу для подключения при возникновении события перед вызовом callback. |
Примечание
Все зарегистрированные обработчики хранятся в глобальной переменной $MAIN_MODULE_EVENTS.
Аналоги в ядре D7
У функции есть аналоги в ядре D7.
Обратите внимание, порядок параметров в них отличается: подключение файла выполняется перед сортировкой.
Bitrix\Main\EventManager::addEventHandler
— регистрирует обработчик события. В качестве аргумента передается объект события Bitrix\Main\Event.EventManager::addEventHandler( $fromModuleId, $eventType, $callback, $includeFile = false, $sort = 100 )
Bitrix\Main\EventManager::addEventHandlerCompatible
— регистрирует обработчик события со старыми аргументами.EventManager::addEventHandlerCompatible( $fromModuleId, $eventType, $callback, $includeFile = false, $sort = 100 )
Смотрите также
Примеры использования
<? // скрипт в файле /bitrix/php_interface/init.php AddEventHandler("main", "OnBeforeUserLogin", Array("MyClass", "BeforeLogin"));
class MyClass { function BeforeLogin(&$arFields) { if(strtolower($arFields["LOGIN"])=="guest") { global $APPLICATION; $APPLICATION->throwException("Пользователь с именем входа Guest не может быть авторизован."); return false; } } } ?>
© «Битрикс», 2001-2025, «1С-Битрикс», 2025