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, то он будет автоматически подключен перед вызовом обработчика. Вызывается на каждом хите и работает до момента окончания работы скрипта.
Аналоги функции в новом ядре D7: Bitrix\Main\EventManager::addEventHandler (новый формат) и Bitrix\Main\EventManager::addEventHandlerCompatible.
Параметры функции
Параметр | Описание |
---|---|
from_module_id | Идентификатор модуля который будет инициировать событие. |
MESSAGE_ID | Идентификатор события. |
callback | Название функции обработчика. Если это метод класса, то массив вида Array(класс(объект), название метода). |
sort | Очередность (порядок), в котором выполняется данный обработчик (обработчиков данного события может быть больше одного). Необязательный параметр, по умолчанию равен 100. |
full_path | Полный путь к файлу для подключения при возникновении события перед вызовом callback. |
Примечание
Все зарегистрированные обработчики хранятся в глобальной переменной $MAIN_MODULE_EVENTS.
Смотрите также
Примеры использования
<? // скрипт в файле /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; } } } ?>
Сообщение не промодерировано, возможны ошибки и неточности.
|
||
(В таблице описания параметров - предпоследним. Не ошибитесь.) | ||
Сообщение не промодерировано, возможны ошибки и неточности.
|
||
Как скорректировать запись если нужно применить AddEventHandler только для определенного инфоблока? запись такая
| ||
Андрей Огибин
|
||
Если нужно передать переменную в обработчик (в данном случае мне нужно было добавить в цепочку навигации NAME из arResult)
| ||
Роберт Басыров
|
||||
Задача: Посчитать количество залогиненных пользователей на сайте на данный момент времени и вывести на экран это число.
Решение: В файле \bitrix\php_interface\init.php:
В том месте, где нужно получить пользователей в онлайне:
| ||||
Роберт Басыров
|
||
Задача: При авторизации сделать проверку наличия действующих сессий с данным логином, и при наличии сбросить их, что бы в один момент времени был авторизован только 1 клиент.
Решение: 1. В файл /bitrix/php_interface/init.php дописываем:
2. В Настройки -> Настройки продукта -> Пользовательские поля создаем новый элемент следующего вида: Тип данных: Строка Объект: USER Код поля: UF_USERSESS Не показывать в списке: Y Размер поля ввода для отображения: 32 | ||
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.