OnBeforeUserAdd
Описание и параметры
bool функция-обработчик( array &arParams );Событие вызывается в методе CUser::Add до вставки нового пользователя, и может быть использовано для отмены вставки или переопределения некоторых полей.
Параметры
Параметр | Описание |
---|---|
arParams | Массив полей нового пользователя. |
Примечание. Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому если вы измените значение параметра внутри обработчика, это приведет к смене значения исходной переменной поступившей на вход функции-обработчика.
Возвращаемое значение
Для отмены добавления и прекращении выполнения метода CUser::Add необходимо в функции-обработчике создать исключение методомСмотрите также
- Событие "OnAfterUserAdd"
- CUser::Add
- События
Пример функции-обработчика
<? // файл /bitrix/php_interface/init.php // регистрируем обработчик AddEventHandler("main", "OnBeforeUserAdd", Array("MyClass", "OnBeforeUserAddHandler"));
class MyClass { // создаем обработчик события "OnBeforeUserAdd" public static function OnBeforeUserAddHandler(&$arFields) { if(strlen($arFields["LAST_NAME"])<=0) { global $APPLICATION; $APPLICATION->throwException("Пожалуйста, введите фамилию."); return false; } } } ?>
Автоматическое создание логина пользователя на основе email (версия main меньше 20.0.0)
<? use Bitrix\Main\EventManager, Bitrix\Main\Diag\Debug, Bitrix\Main\Context; $eventManager = EventManager::getInstance(); /* ---------------------------------------------------------------------------------------------------- EMAIL to LOGIN */ $eventManager->addEventHandler('main', 'OnBeforeUserAdd', ['CUserEx', 'OnBeforeUserAddHandler']); $eventManager->addEventHandler('main', 'OnBeforeUserRegister', ['CUserEx', 'OnBeforeUserRegisterHandler']); $eventManager->addEventHandler('main', 'OnBeforeUserUpdate', ['CUserEx', 'OnBeforeUserUpdateHandler']); class CUserEx { function OnBeforeUserAddHandler( &$arFields ) { //\Bitrix\Main\Diag\Debug::writeToFile( $arFields, 'OnBeforeUserAddHandler', 'log.txt'); return self::OnBeforeUserUpdateHandler( $arFields ); } function OnBeforeUserRegisterHandler( &$arFields ) { //\Bitrix\Main\Diag\Debug::writeToFile( $arFields, 'OnBeforeUserRegisterHandler', 'log.txt'); return self::OnBeforeUserUpdateHandler( $arFields ); } function OnBeforeUserUpdateHandler( &$arFields ) { //\Bitrix\Main\Diag\Debug::writeToFile( $arFields, 'OnBeforeUserUpdateHandler', 'log.txt'); if( !\Bitrix\Main\Context::getCurrent()->getRequest()->isAdminSection() ) { $arFields['LOGIN'] = $arFields['EMAIL']; //\Bitrix\Main\Diag\Debug::writeToFile( $arFields, 'OnBeforeUserUpdateHandler notAdminSection', 'log.txt'); return $arFields; } } } ?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024