Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
В тех. поддержке часто поднимается вопрос об авторизации пользователей по 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"; |
Назад в раздел
Подписаться на новые материалы раздела: