Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно, 
то ждем ваше обращение в нашей службе тех поддержки.
		
	
								
			
В тех. поддержке часто поднимается вопрос об авторизации пользователей по e-mail адресу и паролю. Штатно данный функционал не поддерживается, но задача просто решается на конкретном сайте.
Итак, приступим.
1. Перенесём компонент bitrix:main.register в своё пространство имён

Сразу уточню, что для решения этой задачи эффективнее всего именно изменение кода компонента. Обусловлено это тем, что он имеет очень много проверок и условий, обходить которые себе дороже будет, при внесении изменений в шаблон. Плюс мы получаем доступ к порядку вывода полей формы регистрации.
2. Открываем на редактирование файл /bitrix/components/demo/main.register/component.php (путь зависит от пространства имён, в котором находятся пользовательские компоненты).
3. Меняем строки:
на:
4. Далее мы должны для системы создавать логин из e-mail'а. Для этого надо в файл /bitrix/php_interface/init.php (если его нет, то создайте) добавить код:
В результате у нас получился такой компонент

и пользователи после регистрации выглядят

Теперь поправим нашу форму авторизации (bitrix:system.auth.form) на сайте, чтобы вместо логина запрашивался e-mail.
1. Кастомизируем шаблон компонента

2. Отредактируем языковой файл /bitrix/templates/.default/components/bitrix/system.auth.form/email/lang/ru/template.php
и заменим строку:
на 
или
Теперь пользователь сайта увидит что-то подобное:
 
			
			
Назад в раздел
		  
	
	
	
	
		 Наверх
 Наверх
	
	
то ждем ваше обращение в нашей службе тех поддержки.
Авторизация на сайте по e-mail'у
Доброго времени суток!В тех. поддержке часто поднимается вопрос об авторизации пользователей по e-mail адресу и паролю. Штатно данный функционал не поддерживается, но задача просто решается на конкретном сайте.
Итак, приступим.
1. Перенесём компонент bitrix:main.register в своё пространство имён

Сразу уточню, что для решения этой задачи эффективнее всего именно изменение кода компонента. Обусловлено это тем, что он имеет очень много проверок и условий, обходить которые себе дороже будет, при внесении изменений в шаблон. Плюс мы получаем доступ к порядку вывода полей формы регистрации.
2. Открываем на редактирование файл /bitrix/components/demo/main.register/component.php (путь зависит от пространства имён, в котором находятся пользовательские компоненты).
3. Меняем строки:
| $arDefaultFields = array( "LOGIN", "PASSWORD", "CONFIRM_PASSWORD", EMAIL", ); | 
на:
| $arDefaultFields = array( "EMAIL", "PASSWORD", "CONFIRM_PASSWORD", ); | 
4. Далее мы должны для системы создавать логин из e-mail'а. Для этого надо в файл /bitrix/php_interface/init.php (если его нет, то создайте) добавить код:
| AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserUpdateHandler");
AddEventHandler("main", "OnBeforeUserUpdate", "OnBeforeUserUpdateHandler");
function OnBeforeUserUpdateHandler(&$arFields)
{
        $arFields["LOGIN"] = $arFields["EMAIL"];
        return $arFields;
} | 
В результате у нас получился такой компонент

и пользователи после регистрации выглядят

Теперь поправим нашу форму авторизации (bitrix:system.auth.form) на сайте, чтобы вместо логина запрашивался e-mail.
1. Кастомизируем шаблон компонента

2. Отредактируем языковой файл /bitrix/templates/.default/components/bitrix/system.auth.form/email/lang/ru/template.php
и заменим строку:
| $MESS ['AUTH_LOGIN'] = "Логин"; | 
| $MESS ['AUTH_LOGIN'] = "E-mail"; | 
| $MESS ['AUTH_LOGIN'] = "Логин или e-mail"; | 
 
Назад в раздел
Подписаться на новые материалы раздела:
	Загрузка...
	
			
				
	
		
	
	
	
	
	 Наверх
 Наверх