Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Согласие с договором при регистрации

00 голосов
4
Хочу, чтобы при регистрации была возможность согласится с договором. Алгоритм обычный: стоит галочка - резрешаем регистрацию, не стоит — не разрешаем.

Создал обязательное пользовательское поле типа «Да/нет», кастомизировал компонент регистрации, добавив созданное поле в регистрационную форму.

Код
$APPLICATION->IncludeComponent( 
   "bitrix:main.register", 
   "", 
   Array( 
      "USER_PROPERTY_NAME" => "Лицензионное соглашение", 
      "SEF_MODE" => "N", 
      "SHOW_FIELDS" => "", 
      "REQUIRED_FIELDS" => "", 
      "AUTH" => "Y", 
      "USE_BACKURL" => "Y", 
      "SUCCESS_PAGE" => $APPLICATION->GetCurPageParam('',array('backurl')), 
      "SET_TITLE" => "N", 
      "USER_PROPERTY" => Array("UF_AGREEMENT") 
   ) 
); 

Но почему-то при регистрации не выходит ошибки, если галочка не отмечена, будто пользовательское поле не обязательно и в итоге регистрация проходит.

Помогите устранить проблему.
спросил 18 Март, 14 от Asteria (1,840 баллов)

4 Ответы

00 голосов
Если Вы привели точный вызов компонента, у Вас не указаны обязательные поля в настройках компонента. Попробуйте добавить свое поле туда. Если не поможет - проверьте, а не регистрируются ли у Вас пользователи через дефолтную регистрационную форму. Если в настройках Главного модуля стоит галочка "Позволять регистрироваться самостоятельно" - скорее всего, вторая причина.
ответил 10 Сен, 14 от Pomnep (13,960 баллов)
00 голосов
У вас получилось решить эту проблему?
ответил 16 Дек, 14 от аноним
00 голосов
Цитата
Евгений Жуков пишет:
Если Вы привели точный вызов компонента, у Вас не указаны обязательные поля в настройках компонента.

Такой вызов также не работает корректно:
Код
$APPLICATION->IncludeComponent( 
   "bitrix:main.register", 
   "", 
   Array( 
      "USER_PROPERTY_NAME" => "", 
      "SEF_MODE" => "N", 
      "SHOW_FIELDS" => "", 
      "REQUIRED_FIELDS" => Array("UF_AGREEMENT"), 
      "AUTH" => "Y", 
      "USE_BACKURL" => "Y", 
      "SUCCESS_PAGE" => $APPLICATION->GetCurPageParam('',array('backurl')), 
      "SET_TITLE" => "N", 
      "USER_PROPERTY" => Array("UF_AGREEMENT") 
   ) 
); 

Цитата
Евгений Жуков пишет:
Если не поможет - проверьте, а не регистрируются ли у Вас пользователи через дефолтную регистрационную форму. Если в настройках Главного модуля стоит галочка "Позволять регистрироваться самостоятельно" - скорее всего, вторая причина.

А как связана регистрация через дефолтную форму и разрешением регистрироваться самостоятельно? Если настройку убрать, то регистрироваться вовсе нельзя будет самому.

У меня подозрение, что пользовательское поле типа «Да/Нет» с флажком «Обязательное» при всех значениях считается заполненным, и, если это так, то я даже не знаю как поступить. :|

P.S. Если править созданное поле у конкретного юзера, то также никаких предупреждений не появляется при сохранении.
ответил 16 Янв, 15 от Asteria (1,840 баллов)
00 голосов
Цитата
Юрий Шубин пишет:
А как связана регистрация через дефолтную форму и разрешением регистрироваться самостоятельно? Если настройку убрать, то регистрироваться вовсе нельзя будет самому.

Человек может в этом случае зарегистриться через дефолтную форму и Ваше поле он попросту не видит.
ответил 01 Май, 15 от Pomnep (13,960 баллов)

Похожие вопросы