Документация для разработчиков
Темная тема

OnAfterUserRegister

Описание и параметры

функция-обработчик(
	array &arFields
);
Событие "OnAfterUserRegister" вызывается после попытки регистрации нового пользователя методом CUser::Register.

Параметры

ПараметрОписание
arFields Массив полей регистрации нового пользователя:
  • USER_ID - в случае если регистрация прошла успешно содержит код нового пользователя
  • RESULT_MESSAGE - массив с информационным текстом, описывающий результат регистрации пользователя, в дальнейшем используется функцией ShowMessage для вывода сообщения.
  • LOGIN - имя входа пользователя
  • NAME - имя пользователя
  • LAST_NAME - фамилия пользователя
  • PASSWORD - пароль
  • CONFIRM_PASSWORD - подтверждение пароля
  • CHECKWORD - новое контрольное слово для смены пароля
  • EMAIL - EMail пользователя
  • ACTIVE - флаг активности [Y|N]
  • SITE_ID - ID сайта по умолчанию для уведомлений
  • GROUP_ID - массив ID групп пользователя
  • USER_IP - IP адрес пользователя
  • USER_HOST - хост пользователя

Примечание. Все параметры данного обработчика являются ссылками на исходные переменные. Поэтому изменить эти параметры невозможно: изменения не сохраняются. Реально можно изменить только RESULT_MESSAGE, что приведет к смене сообщения возвращаемого функцией CUser::Register. Если необходимо модифицировать поля регистрации пользователя перед сохранением, необходимо использовать событие OnBeforeUserRegister

Смотрите также

Примеры

Пример функции-обработчика:

<?
// файл /bitrix/modules/my_module_id/include.php
class MyClass
{
	// создаем обработчик события "OnAfterUserRegister"
	public static function OnAfterUserRegisterHandler(&$arFields)
	{
		// если регистрация успешна то
		if($arFields["USER_ID"]>0)
		{
			// если текущий сайт - r1, то
			if(SITE_ID=="r1")
			{
				// зададим сообщение об успешной регистрации на сайте r1
				$arFields["RESULT_MESSAGE"]["MESSAGE"] = "Вы успешно зарегистрировались на сайте \"Мой любимый сайт 1\"";
			}
			elseif(SITE_ID=="r2")
			{
				// зададим сообщение об успешной регистрации на сайте r2
				$arFields["RESULT_MESSAGE"]["MESSAGE"] = "Вы успешно зарегистрировались на сайте \"Мой любимый сайт 2\"";
			}
		}
		return $arFields;
	}
}
?>

Пример регистрации функции-обработчика:

<?
// регистрируем обработчик события "OnAfterUserRegister"
RegisterModuleDependences("main", "OnAfterUserRegister", "my_module_id", "MyClass", "OnAfterUserRegisterHandler");
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
6
Роберт Басыров
Задача: сделать регистрацию, в которой будет только емайл (он же логин).

Решение:

В шаблоне стандартного компонента system.auth.registration кастомизируем поля для логина:  
Код
<input type="hidden" name="REGISTER[LOGIN]" value="temp_login">


В /bitrix/php_interface/init.php вставляем следующий код:
Код
<?php
AddEventHandler("main", "OnBeforeUserRegister", Array("MyClass", "OnBeforeUserRegisterHandler"));
class MyClass
{
   function OnBeforeUserRegisterHandler(&$arFields)
    {
          $arFields["LOGIN"] = $arFields["EMAIL"];
    }
}
?>
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх