Настройки регистрации в 1с битрикс
Возможности системного компонента регистрации довольно скромные: нет возможности добавить свои поля, сделать их обязательными для заполнения. Для реализации таких возможностей есть компонент «Настраиваемая регистрация», который позволяет настроить и разместить на сайте свою форму регистрации. В визуальном редакторе компонент расположен по пути: «Служебные • Пользователь • Настраиваемая регистрация».
Пример вызова компонента
Создадим страницу /auth/register.php , разместим на ней вызов компонента «Настраиваемая регистрация». В настройках компонента выберем поля, которые надо показывать:
- [EMAIL] E-mail
- [NAME] Имя
- [LAST_NAME] Фамилия
- [PERSONAL_PHONE] Телефон
- [WORK_COMPANY] Наименование компании
- [WORK_PHONE] Телефон (рабочий)
И укажем поля, обязательные для заполнения:
- [EMAIL] E-mail
- [NAME] Имя
- [LAST_NAME] Фамилия
- [PERSONAL_PHONE] Телефон
После этого страница /auth/register.php содержит следующий код:
И имеет такой вид:
Теперь нам надо кастомизировать форму регистрации под наш дизайн. Для этого копируем шаблон компонента:
- откуда: bitrix/components/bitrix/main.register/templates/.default
- куда: local/templates/.default/components/bitrix/main.register/.default
После внесения изменений получилось так:
И вот что получилось в итоге:
Пользовательские поля
Хотя Битрикс предлагает большой набор предопределенных полей, их все-таки может не хватить. Тогда остается только создавать свои поля. Это можно сделать в панели управления: «Настройки • Настройки продукта • Пользовательские поля»:
Я добавил поле «Мое поле», тип «Строка», в настройках компонента указал, что это поле надо показывать:
Теперь форма регистрации имеет вид:
Порядок полей
Для настройки порядка следования полей в форме, создадим файл local/templates/.default/components/bitrix/main.register/.default/result_modifier.php :
В результате чего форма примет вид:
Авторизация по E-mail
Давайте уберем поле LOGIN , как отживший свое пережиток прошлого. Без этого поля регистрацию пользователь не пройдет, поэтому будем создавать LOGIN из EMAIL . Добавляем в init.php следующий код:
Чтобы форма регистрации не выдавала ошибок «Не заполнено обязательное поле логин», внесем изменение в шаблон компонента:
Еще раз изменим порядок следования полей в форме и сделаем поле LOGIN первым, чтобы можно было его скрыть, обратившись с помощью :first-of-type :
Теперь скроем поле LOGIN :
Но есть еще одна проблема — у нас теперь две формы регистрации с разным составом полей:
- первая формируется системным компонентом system.auth.registration и доступна по адресу /auth/?register=yes
- вторая формируется компонентом bitrix:main.register и доступна по адресу /auth/register.php
Давайте это исправим. Удалим весь код из шаблона компонента system.auth.registration , и поместим в него вызов компонента bitrix:main.register из файла /auth/register.php :
А файл /auth/register.php просто удалим. Можно еще удалить лишний код из шаблона компонента bitrix:main.register , который никогда не будет выполнен. Системный компонент system.auth.registration вызывается где-то глубоко в недрах Битрикс только в том случае, если пользователь не авторизован. И еще одна проверка в шаблоне «Пользователь авторизован?» просто не нужна.
Не забываем изменить другие системные компоненты:
Курс предназначен для базовой подготовки администраторов сайтов, созданных на "1С-Битрикс: Управление сайтом". Изучив курс, вы освоите основные методы администрирования системы, а также пополните знания по темам, изученным в курсе Контент-менеджер.
Если вы добросовестно изучите курс, то научитесь:
- управлять доступом к системе, сайтами, пользователями, группами пользователей;
- работать с инструментами системы;
- использовать возможности интерфейса по управлению системой;
- работать с модулями "1С-Битрикс: Управление сайтом", связанными с оптимизацией и безопасностью работы сайта;
- выполнять работу по конфигурированию веб-системы для оптимальной работы.
Если вам предстоит самостоятельная установка системы или перенос сайта на хостинг, то без курса Установка и настройка Курс Установка и настройка предназначен для специалистов устанавливающих "1С-Битрикс: Управление сайтом" или "Битрикс24 в коробке".
Начальные требования
Необходимый минимум знаний для изучения курса:
- базовые навыки компьютерной грамотности и навыков работы с ОС Windows;
- базовые знания о WWW и организации доступа к веб-серверу;
- знание системы в рамках курса Контент-менеджер Мы считаем, что вы этот курс уже прошли и знаете многое о Битриксе. Поэтому подсказок во всплывающих окнах будет намного меньше, чем в курсе Контент-менеджер. , чтобы банально не путаться в интерфейсе.
Неплохо было бы иметь базовые навыки установки и администрирования *nix-систем.
У нас часто спрашивают, сколько нужно заплатить
Курс полностью бесплатен. Изучение курса, прохождение итоговых тестов и получение сертификатов - ничего из этого оплачивать не нужно.
Ещё у нас есть Академия 1С-Битрикс, где можно обучиться на платной основе на курсах нашей компании либо наших партнёров.
Баллы опыта
В конце каждого урока есть кнопка Прочитано! . При клике на неё в Вашу итоговую таблицу опыта добавляется то количество баллов, которое указано в прочитанном После нажатия кнопки Прочитано! появится
окно подтверждения:
уроке.
Периодически мы заново оцениваем сложность уроков, увеличивая/уменьшая число баллов, поэтому итоговое количество набранных Вами баллов может отличаться от максимально возможного. Не переживайте! Отличный результат - это если общее число набранных Вами баллов отличается от максимального на 1-2%.
Тесты и сертификат
После изучения курса пройдите тесты на сертификацию. При успешной сдаче последовательности тестов на странице Моё обучение вы увидите результат обучения и там же - ваш сертификат в формате PDF.
Иконка успешно сданного вами курса отображается в вашем профиле на Freelance, если вы укажите ссылку на ваш профиль на сайте компании 1С-Битрикс.
Комментарии к урокам
Для преподавания оффлайн
Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 3 дня (24 академических часа).
Если нет интернета
iPhone:
FBReader
CoolReader
iBook
Bookmate
Windows:
Calibre
FBReader
Icecream Ebook Reader
Плагины для браузеров:
EpuBReader – для Firefox
Readium – для Google Chrome
iOS
Marvin for iOS
ShortBook
обновляются периодически, поэтому возможно некоторое отставание их от онлайновой версии курса. Версия файла - от 01.10.2021.
Как проходить учебный курс?
Достаточно часто требуется регистрировать пользователя в определенную группу, в зависимости от того какую форму регистрации прошел пользователь. Это достаточно легко проделать с помощью события OnAfterUserAddHandler.
Итак, пример реализации данного функционала на конкретном сайте:
Имеем сайт медицинского центра, на котором могут регистрироваться как врачи, для добавления себя в базу врачей России, так и обычные пользователи, которые регистрируются для просмотра и использования форума на сайте.
С врачами чуть сложнее:
Для начала создаем для них группу: "Врачи эндокринологи"
В итоге получаем группу с ID15 (в моем случае, у вас будет другой ID)
Затем создаем новое пользовательское свойство с настройками как на cкрине. Далее, благодаря этому полю, будем заносить пользователя в нужную группу
Самое важное здесь- это выставить значение по умолчанию, абсолютно любое, главное не пустое. так же не плохо сделать обязательным (на скрине я этот момент упустил)
Выводим стандартную форму регистрации:
Далее, создаем на сайте новый раздел или страницу, на которой будут регистрироваться врачи. например /docsauth/ и вытаскиваем на нее компонент "Настраиваемая регистрация" который лежит в папке Служебные - User - Настраиваемая регистрация
Переходим к ее настройкам и выставляем все как угодно, как того требует специфика вашего сайта, но самое главное: выбираем наше пользовательское поле, в моем случае UF_BAZA
Сохраняемся. Осталось только навесить обработчик, благодаря которому система будет знать, что пользователь зарегистрировавшийся именно через эту форму, будет автоматом добавляться в группу с ID-15
Для этого открываем файл /корень-сайта/bitrix/php_intarface/init.php если его нет, то просто создаете вручную. И в него добавляем следующее:
<?
AddEventHandler("main", "OnAfterUserAdd", "OnAfterUserAddHandler");
function OnAfterUserAddHandler(&$arFields)
<
if($arFields["ID"] > 0)
<
if(strlen($arFields["UF_BAZA"]) > 0) //Если поле UF_BAZA заполнено
<
$arGroups = CUser::GetUserGroup($arFields["ID"]);
$arGroups[] = 15; //То добаляем пользователя в группу c ID15
CUser::SetUserGroup($arFields["ID"], $arGroups);
>
else
<
$arGroups = CUser::GetUserGroup($arFields["ID"]);
$arGroups[] = 5; //Иначе в группу c ID5
CUser::SetUserGroup($arFields["ID"], $arGroups);
>
>
>
?>
В общем-то все, можно проверять в деле.
Все тоже самое можно проделать, если нужно регистрировать пользователя в определенную группу, в зависимости от сайта на котором он эту процедуру прошел. При этом пользовательские поля создавать не нужно, достаточно знать ID-сайта и в init.php вписать следующее:
<?
AddEventHandler("main", "OnBeforeUserRegister", "OnBeforeUserRegisterHandler");
// создаем обработчик события "OnBeforeUserRegister"
function OnBeforeUserRegisterHandler(&$arFields)
<
// если пользователь регистрируется на сайте s1
if(SITE_ID=="s1")
<
// добавляем его в группу с
$arFields["GROUP_ID"][] = 5;
>
elseif(SITE_ID=="s2")
<
// добавляем его в группу с
$arFields["GROUP_ID"][] = 6;
>
>
?>
Читайте также: