1
0
Fork 0
mirror of synced 2025-04-20 01:21:01 +00:00

add register component

This commit is contained in:
Sergey Chazov 2020-10-13 15:01:52 +03:00
parent 6f0f3723e3
commit 9fe54d2e52
22 changed files with 1084 additions and 0 deletions

View file

@ -0,0 +1,16 @@
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();
$arComponentDescription = array(
"NAME" => GetMessage("COMP_MAIN_USER_REGISTER_TITLE"),
"DESCRIPTION" => GetMessage("COMP_MAIN_USER_REGISTER_DESCR"),
"ICON" => "/images/user_register.gif",
"PATH" => array(
"ID" => "utility",
"CHILD" => array(
"ID" => "user",
"NAME" => GetMessage("MAIN_USER_GROUP_NAME")
),
),
);
?>

View file

@ -0,0 +1,123 @@
<?if(!defined("B_PROLOG_INCLUDED")||B_PROLOG_INCLUDED!==true)die();
$arFormFields = array(
"EMAIL"=>1,
);
if(COption::GetOptionString("main", "new_user_phone_auth", "N") == "Y")
{
$arFormFields["PHONE_NUMBER"] = 1;
}
$arFormFields = array_merge($arFormFields, array(
"TITLE"=>1,
"NAME"=>1,
"SECOND_NAME"=>1,
"LAST_NAME"=>1,
"AUTO_TIME_ZONE"=>1,
"PERSONAL_PROFESSION"=>1,
"PERSONAL_WWW"=>1,
"PERSONAL_ICQ"=>1,
"PERSONAL_GENDER"=>1,
"PERSONAL_BIRTHDAY"=>1,
"PERSONAL_PHOTO"=>1,
"PERSONAL_PHONE"=>1,
"PERSONAL_FAX"=>1,
"PERSONAL_MOBILE"=>1,
"PERSONAL_PAGER"=>1,
"PERSONAL_STREET"=>1,
"PERSONAL_MAILBOX"=>1,
"PERSONAL_CITY"=>1,
"PERSONAL_STATE"=>1,
"PERSONAL_ZIP"=>1,
"PERSONAL_COUNTRY"=>1,
"PERSONAL_NOTES"=>1,
"WORK_COMPANY"=>1,
"WORK_DEPARTMENT"=>1,
"WORK_POSITION"=>1,
"WORK_WWW"=>1,
"WORK_PHONE"=>1,
"WORK_FAX"=>1,
"WORK_PAGER"=>1,
"WORK_STREET"=>1,
"WORK_MAILBOX"=>1,
"WORK_CITY"=>1,
"WORK_STATE"=>1,
"WORK_ZIP"=>1,
"WORK_COUNTRY"=>1,
"WORK_PROFILE"=>1,
"WORK_LOGO"=>1,
"WORK_NOTES"=>1,
));
if(!CTimeZone::Enabled())
unset($arFormFields["AUTO_TIME_ZONE"]);
$arUserFields = array();
foreach ($arFormFields as $value=>$dummy)
{
$arUserFields[$value] = "[".$value."] ".GetMessage("REGISTER_FIELD_".$value);
}
$arRes = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("USER", 0, LANGUAGE_ID);
$userProp = array();
if (!empty($arRes))
{
foreach ($arRes as $key => $val)
$userProp[$val["FIELD_NAME"]] = (strLen($val["EDIT_FORM_LABEL"]) > 0 ? $val["EDIT_FORM_LABEL"] : $val["FIELD_NAME"]);
}
$arComponentParameters = array(
"PARAMETERS" => array(
"SHOW_FIELDS" => array(
"NAME" => GetMessage("REGISTER_SHOW_FIELDS"),
"TYPE" => "LIST",
"MULTIPLE" => "Y",
"ADDITIONAL_VALUES" => "N",
"VALUES" => $arUserFields,
"PARENT" => "BASE",
),
"REQUIRED_FIELDS" => array(
"NAME" => GetMessage("REGISTER_REQUIRED_FIELDS"),
"TYPE" => "LIST",
"MULTIPLE" => "Y",
"ADDITIONAL_VALUES" => "N",
"VALUES" => $arUserFields,
"PARENT" => "BASE",
),
"AUTH" => array(
"NAME" => GetMessage("REGISTER_AUTOMATED_AUTH"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
"PARENT" => "ADDITIONAL_SETTINGS",
),
"USE_BACKURL" => array(
"NAME" => GetMessage("REGISTER_USE_BACKURL"),
"TYPE" => "CHECKBOX",
"DEFAULT" => "Y",
"PARENT" => "ADDITIONAL_SETTINGS",
),
"SUCCESS_PAGE" => array(
"NAME" => GetMessage("REGISTER_SUCCESS_PAGE"),
"TYPE" => "STRING",
"DEFAULT" => "",
"PARENT" => "ADDITIONAL_SETTINGS",
),
"SET_TITLE" => array(),
"USER_PROPERTY"=>array(
"PARENT" => "ADDITIONAL_SETTINGS",
"NAME" => GetMessage("USER_PROPERTY"),
"TYPE" => "LIST",
"VALUES" => $userProp,
"MULTIPLE" => "Y",
"DEFAULT" => array(),
),
),
);
?>

View file

@ -0,0 +1,383 @@
<?
/**
* Bitrix Framework
* @package bitrix
* @subpackage main
* @copyright 2001-2014 Bitrix
*/
/**
* Bitrix vars
* @global CMain $APPLICATION
* @global CUser $USER
* @global CDatabase $DB
* @global CUserTypeManager $USER_FIELD_MANAGER
* @param array $arParams
* @param array $arResult
* @param CBitrixComponent $this
*/
if(!defined("B_PROLOG_INCLUDED")||B_PROLOG_INCLUDED!==true)
die();
global $USER_FIELD_MANAGER;
// apply default param values
$arDefaultValues = array(
"SHOW_FIELDS" => array(),
"REQUIRED_FIELDS" => array(),
"AUTH" => "Y",
"USE_BACKURL" => "Y",
"SUCCESS_PAGE" => "",
);
foreach ($arDefaultValues as $key => $value)
{
if (!is_set($arParams, $key))
$arParams[$key] = $value;
}
if(!is_array($arParams["SHOW_FIELDS"]))
$arParams["SHOW_FIELDS"] = array();
if(!is_array($arParams["REQUIRED_FIELDS"]))
$arParams["REQUIRED_FIELDS"] = array();
// if user registration blocked - return auth form
if (COption::GetOptionString("main", "new_user_registration", "N") == "N")
$APPLICATION->AuthForm(array());
$arResult["PHONE_REGISTRATION"] = (COption::GetOptionString("main", "new_user_phone_auth", "N") == "Y");
$arResult["PHONE_REQUIRED"] = ($arResult["PHONE_REGISTRATION"] && COption::GetOptionString("main", "new_user_phone_required", "N") == "Y");
$arResult["EMAIL_REGISTRATION"] = (COption::GetOptionString("main", "new_user_email_auth", "Y") <> "N");
$arResult["EMAIL_REQUIRED"] = ($arResult["EMAIL_REGISTRATION"] && COption::GetOptionString("main", "new_user_email_required", "Y") <> "N");
$arResult["USE_EMAIL_CONFIRMATION"] = (COption::GetOptionString("main", "new_user_registration_email_confirmation", "N") == "Y" && $arResult["EMAIL_REQUIRED"]? "Y" : "N");
$arResult["PHONE_CODE_RESEND_INTERVAL"] = CUser::PHONE_CODE_RESEND_INTERVAL;
// apply core fields to user defined
$arDefaultFields = array(
"LOGIN",
);
if($arResult["EMAIL_REQUIRED"])
{
$arDefaultFields[] = "EMAIL";
}
if($arResult["PHONE_REQUIRED"])
{
$arDefaultFields[] = "PHONE_NUMBER";
}
$arDefaultFields[] = "PASSWORD";
$arDefaultFields[] = "CONFIRM_PASSWORD";
$def_group = COption::GetOptionString("main", "new_user_registration_def_group", "");
if($def_group <> "")
$arResult["GROUP_POLICY"] = CUser::GetGroupPolicy(explode(",", $def_group));
else
$arResult["GROUP_POLICY"] = CUser::GetGroupPolicy(array());
$arResult["SHOW_FIELDS"] = array_unique(array_merge($arDefaultFields, $arParams["SHOW_FIELDS"]));
$arResult["REQUIRED_FIELDS"] = array_unique(array_merge($arDefaultFields, $arParams["REQUIRED_FIELDS"]));
// use captcha?
$arResult["USE_CAPTCHA"] = COption::GetOptionString("main", "captcha_registration", "N") == "Y" ? "Y" : "N";
// start values
$arResult["VALUES"] = array();
$arResult["ERRORS"] = array();
$arResult["SHOW_SMS_FIELD"] = false;
$register_done = false;
// register user
if ($_SERVER["REQUEST_METHOD"] == "POST" && $_REQUEST["register_submit_button"] <> '' && !$USER->IsAuthorized())
{
if(COption::GetOptionString('main', 'use_encrypted_auth', 'N') == 'Y')
{
//possible encrypted user password
$sec = new CRsaSecurity();
if(($arKeys = $sec->LoadKeys()))
{
$sec->SetKeys($arKeys);
$errno = $sec->AcceptFromForm(array('REGISTER'));
if($errno == CRsaSecurity::ERROR_SESS_CHECK)
$arResult["ERRORS"][] = GetMessage("main_register_sess_expired");
elseif($errno < 0)
$arResult["ERRORS"][] = GetMessage("main_register_decode_err", array("#ERRCODE#"=>$errno));
}
}
// check emptiness of required fields
foreach ($arResult["SHOW_FIELDS"] as $key)
{
if ($key != "PERSONAL_PHOTO" && $key != "WORK_LOGO")
{
$arResult["VALUES"][$key] = $_REQUEST["REGISTER"][$key];
if (in_array($key, $arResult["REQUIRED_FIELDS"]) && trim($arResult["VALUES"][$key]) == '')
$arResult["ERRORS"][$key] = GetMessage("REGISTER_FIELD_REQUIRED");
}
else
{
$_FILES["REGISTER_FILES_".$key]["MODULE_ID"] = "main";
$arResult["VALUES"][$key] = $_FILES["REGISTER_FILES_".$key];
if (in_array($key, $arResult["REQUIRED_FIELDS"]) && !is_uploaded_file($_FILES["REGISTER_FILES_".$key]["tmp_name"]))
$arResult["ERRORS"][$key] = GetMessage("REGISTER_FIELD_REQUIRED");
}
}
if(isset($_REQUEST["REGISTER"]["TIME_ZONE"]))
$arResult["VALUES"]["TIME_ZONE"] = $_REQUEST["REGISTER"]["TIME_ZONE"];
$USER_FIELD_MANAGER->EditFormAddFields("USER", $arResult["VALUES"]);
//this is a part of CheckFields() to show errors about user defined fields
if (!$USER_FIELD_MANAGER->CheckFields("USER", 0, $arResult["VALUES"]))
{
$e = $APPLICATION->GetException();
$arResult["ERRORS"][] = substr($e->GetString(), 0, -4); //cutting "<br>"
$APPLICATION->ResetException();
}
// check captcha
if ($arResult["USE_CAPTCHA"] == "Y")
{
if (!$APPLICATION->CaptchaCheckCode($_REQUEST["captcha_word"], $_REQUEST["captcha_sid"]))
$arResult["ERRORS"][] = GetMessage("REGISTER_WRONG_CAPTCHA");
}
if(count($arResult["ERRORS"]) > 0)
{
if(COption::GetOptionString("main", "event_log_register_fail", "N") === "Y")
{
$arError = $arResult["ERRORS"];
foreach($arError as $key => $error)
if(intval($key) == 0 && $key !== 0)
$arError[$key] = str_replace("#FIELD_NAME#", '"'.$key.'"', $error);
CEventLog::Log("SECURITY", "USER_REGISTER_FAIL", "main", false, implode("<br>", $arError));
}
}
else // if there's no any errors - create user
{
$arResult['VALUES']["GROUP_ID"] = array();
$def_group = COption::GetOptionString("main", "new_user_registration_def_group", "");
if($def_group != "")
$arResult['VALUES']["GROUP_ID"] = explode(",", $def_group);
$bConfirmReq = ($arResult["USE_EMAIL_CONFIRMATION"] === "Y");
$active = ($bConfirmReq || $arResult["PHONE_REQUIRED"]? "N": "Y");
$arResult['VALUES']["CHECKWORD"] = md5(CMain::GetServerUniqID().uniqid());
$arResult['VALUES']["~CHECKWORD_TIME"] = $DB->CurrentTimeFunction();
$arResult['VALUES']["ACTIVE"] = $active;
$arResult['VALUES']["CONFIRM_CODE"] = ($bConfirmReq? randString(8): "");
$arResult['VALUES']["LID"] = SITE_ID;
$arResult['VALUES']["LANGUAGE_ID"] = LANGUAGE_ID;
$arResult['VALUES']["USER_IP"] = $_SERVER["REMOTE_ADDR"];
$arResult['VALUES']["USER_HOST"] = @gethostbyaddr($_SERVER["REMOTE_ADDR"]);
if($arResult["VALUES"]["AUTO_TIME_ZONE"] <> "Y" && $arResult["VALUES"]["AUTO_TIME_ZONE"] <> "N")
$arResult["VALUES"]["AUTO_TIME_ZONE"] = "";
$bOk = true;
$events = GetModuleEvents("main", "OnBeforeUserRegister", true);
foreach($events as $arEvent)
{
if(ExecuteModuleEventEx($arEvent, array(&$arResult['VALUES'])) === false)
{
if($err = $APPLICATION->GetException())
$arResult['ERRORS'][] = $err->GetString();
$bOk = false;
break;
}
}
$ID = 0;
$user = new CUser();
if ($bOk)
{
$ID = $user->Add($arResult["VALUES"]);
}
if (intval($ID) > 0)
{
if($arResult["PHONE_REGISTRATION"] == true && $arResult['VALUES']["PHONE_NUMBER"] <> '')
{
//added the phone number for the user, now sending a confirmation SMS
list($code, $phoneNumber) = CUser::GeneratePhoneCode($ID);
$sms = new \Bitrix\Main\Sms\Event(
"SMS_USER_CONFIRM_NUMBER",
[
"USER_PHONE" => $phoneNumber,
"CODE" => $code,
]
);
$smsResult = $sms->send(true);
if(!$smsResult->isSuccess())
{
$arResult["ERRORS"] = array_merge($arResult["ERRORS"], $smsResult->getErrorMessages());
}
$arResult["SHOW_SMS_FIELD"] = true;
$arResult["SIGNED_DATA"] = \Bitrix\Main\Controller\PhoneAuth::signData(['phoneNumber' => $phoneNumber]);
}
else
{
$register_done = true;
// authorize user
if ($arParams["AUTH"] == "Y" && $arResult["VALUES"]["ACTIVE"] == "Y")
{
if (!$arAuthResult = $USER->Login($arResult["VALUES"]["LOGIN"], $arResult["VALUES"]["PASSWORD"]))
$arResult["ERRORS"][] = $arAuthResult;
}
}
$arResult['VALUES']["USER_ID"] = $ID;
$arEventFields = $arResult['VALUES'];
unset($arEventFields["PASSWORD"]);
unset($arEventFields["CONFIRM_PASSWORD"]);
$event = new CEvent;
$event->SendImmediate("NEW_USER", SITE_ID, $arEventFields);
if($bConfirmReq)
$event->SendImmediate("NEW_USER_CONFIRM", SITE_ID, $arEventFields);
}
else
{
$arResult["ERRORS"][] = $user->LAST_ERROR;
}
if(count($arResult["ERRORS"]) <= 0)
{
if(COption::GetOptionString("main", "event_log_register", "N") === "Y")
CEventLog::Log("SECURITY", "USER_REGISTER", "main", $ID);
}
else
{
if(COption::GetOptionString("main", "event_log_register_fail", "N") === "Y")
CEventLog::Log("SECURITY", "USER_REGISTER_FAIL", "main", $ID, implode("<br>", $arResult["ERRORS"]));
}
$events = GetModuleEvents("main", "OnAfterUserRegister", true);
foreach ($events as $arEvent)
ExecuteModuleEventEx($arEvent, array(&$arResult['VALUES']));
}
}
// verify phone code
if ($_SERVER["REQUEST_METHOD"] == "POST" && $_REQUEST["code_submit_button"] <> '' && !$USER->IsAuthorized())
{
if($_REQUEST["SIGNED_DATA"] <> '')
{
if(($params = \Bitrix\Main\Controller\PhoneAuth::extractData($_REQUEST["SIGNED_DATA"])) !== false)
{
if(($userId = CUser::VerifyPhoneCode($params['phoneNumber'], $_REQUEST["SMS_CODE"])))
{
$register_done = true;
if($arResult["PHONE_REQUIRED"])
{
//the user was added as inactive, now phone number is confirmed, activate them
$user = new CUser();
$user->Update($userId, ["ACTIVE" => "Y"]);
}
// authorize user
if ($arParams["AUTH"] == "Y")
{
//here should be login
$USER->Authorize($userId);
}
}
else
{
$arResult["ERRORS"][] = GetMessage("main_register_error_sms");
$arResult["SHOW_SMS_FIELD"] = true;
$arResult["SMS_CODE"] = $_REQUEST["SMS_CODE"];
$arResult["SIGNED_DATA"] = $_REQUEST["SIGNED_DATA"];
}
}
}
}
// if user is registered - redirect him to backurl or to success_page; currently added users too
if($register_done)
{
if($arParams["USE_BACKURL"] == "Y" && $_REQUEST["backurl"] <> '')
LocalRedirect($_REQUEST["backurl"]);
elseif($arParams["SUCCESS_PAGE"] <> '')
LocalRedirect($arParams["SUCCESS_PAGE"]);
}
$arResult["VALUES"] = htmlspecialcharsEx($arResult["VALUES"]);
// redefine required list - for better use in template
$arResult["REQUIRED_FIELDS_FLAGS"] = array();
foreach ($arResult["REQUIRED_FIELDS"] as $field)
$arResult["REQUIRED_FIELDS_FLAGS"][$field] = "Y";
// check backurl existance
$arResult["BACKURL"] = htmlspecialcharsbx($_REQUEST["backurl"]);
// get countries list
if (in_array("PERSONAL_COUNTRY", $arResult["SHOW_FIELDS"]) || in_array("WORK_COUNTRY", $arResult["SHOW_FIELDS"]))
$arResult["COUNTRIES"] = GetCountryArray();
// get date format
if (in_array("PERSONAL_BIRTHDAY", $arResult["SHOW_FIELDS"]))
$arResult["DATE_FORMAT"] = CLang::GetDateFormat("SHORT");
// ********************* User properties ***************************************************
$arResult["USER_PROPERTIES"] = array("SHOW" => "N");
$arUserFields = $USER_FIELD_MANAGER->GetUserFields("USER", 0, LANGUAGE_ID);
if (is_array($arUserFields) && count($arUserFields) > 0)
{
if (!is_array($arParams["USER_PROPERTY"]))
$arParams["USER_PROPERTY"] = array($arParams["USER_PROPERTY"]);
foreach ($arUserFields as $FIELD_NAME => $arUserField)
{
if (!in_array($FIELD_NAME, $arParams["USER_PROPERTY"]) && $arUserField["MANDATORY"] != "Y")
continue;
$arUserField["EDIT_FORM_LABEL"] = strLen($arUserField["EDIT_FORM_LABEL"]) > 0 ? $arUserField["EDIT_FORM_LABEL"] : $arUserField["FIELD_NAME"];
$arUserField["EDIT_FORM_LABEL"] = htmlspecialcharsEx($arUserField["EDIT_FORM_LABEL"]);
$arUserField["~EDIT_FORM_LABEL"] = $arUserField["EDIT_FORM_LABEL"];
$arResult["USER_PROPERTIES"]["DATA"][$FIELD_NAME] = $arUserField;
}
}
if (!empty($arResult["USER_PROPERTIES"]["DATA"]))
{
$arResult["USER_PROPERTIES"]["SHOW"] = "Y";
$arResult["bVarsFromForm"] = (count($arResult['ERRORS']) <= 0) ? false : true;
}
// ******************** /User properties ***************************************************
// initialize captcha
if ($arResult["USE_CAPTCHA"] == "Y")
$arResult["CAPTCHA_CODE"] = htmlspecialcharsbx($APPLICATION->CaptchaGetCode());
// set title
if ($arParams["SET_TITLE"] == "Y")
$APPLICATION->SetTitle(GetMessage("REGISTER_DEFAULT_TITLE"));
//time zones
$arResult["TIME_ZONE_ENABLED"] = CTimeZone::Enabled();
if($arResult["TIME_ZONE_ENABLED"])
$arResult["TIME_ZONE_LIST"] = CTimeZone::GetZones();
$arResult["SECURE_AUTH"] = false;
if(!CMain::IsHTTPS() && COption::GetOptionString('main', 'use_encrypted_auth', 'N') == 'Y')
{
$sec = new CRsaSecurity();
if(($arKeys = $sec->LoadKeys()))
{
$sec->SetKeys($arKeys);
$sec->AddToForm('regform', array('REGISTER[PASSWORD]', 'REGISTER[CONFIRM_PASSWORD]'));
$arResult["SECURE_AUTH"] = true;
}
}
// all done
$this->IncludeComponentTemplate();

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

View file

@ -0,0 +1,5 @@
<?
$MESS ['COMP_MAIN_USER_REGISTER_TITLE'] = "Customizable registration form";
$MESS ['COMP_MAIN_USER_REGISTER_DESCR'] = "Customizable registration form for a new user.";
$MESS ['MAIN_USER_GROUP_NAME'] = "User";
?>

View file

@ -0,0 +1,48 @@
<?
$MESS["REGISTER_AUTOMATED_AUTH"] = "Automatically authorize users";
$MESS["REGISTER_FIELD_AUTO_TIME_ZONE"] = "Time Zone";
$MESS["REGISTER_FIELD_EMAIL"] = "E-mail";
$MESS["REGISTER_FIELD_LAST_NAME"] = "Last Name";
$MESS["REGISTER_FIELD_NAME"] = "Name";
$MESS["REGISTER_FIELD_PERSONAL_BIRTHDAY"] = "Birthday";
$MESS["REGISTER_FIELD_PERSONAL_CITY"] = "City";
$MESS["REGISTER_FIELD_PERSONAL_COUNTRY"] = "Country";
$MESS["REGISTER_FIELD_PERSONAL_FAX"] = "Fax";
$MESS["REGISTER_FIELD_PERSONAL_GENDER"] = "Gender";
$MESS["REGISTER_FIELD_PERSONAL_ICQ"] = "ICQ";
$MESS["REGISTER_FIELD_PERSONAL_MAILBOX"] = "Mailbox";
$MESS["REGISTER_FIELD_PERSONAL_MOBILE"] = "Mobile";
$MESS["REGISTER_FIELD_PERSONAL_NOTES"] = "Notes";
$MESS["REGISTER_FIELD_PERSONAL_PAGER"] = "Pager";
$MESS["REGISTER_FIELD_PERSONAL_PHONE"] = "Phone";
$MESS["REGISTER_FIELD_PERSONAL_PHOTO"] = "Photo";
$MESS["REGISTER_FIELD_PERSONAL_PROFESSION"] = "Job Title";
$MESS["REGISTER_FIELD_PERSONAL_STATE"] = "State";
$MESS["REGISTER_FIELD_PERSONAL_STREET"] = "Address";
$MESS["REGISTER_FIELD_PERSONAL_WWW"] = "Web page";
$MESS["REGISTER_FIELD_PERSONAL_ZIP"] = "Zip code";
$MESS["REGISTER_FIELD_PHONE_NUMBER"] = "Registration phone number";
$MESS["REGISTER_FIELD_SECOND_NAME"] = "Middle Name";
$MESS["REGISTER_FIELD_TITLE"] = "Salutation";
$MESS["REGISTER_FIELD_WORK_CITY"] = "City";
$MESS["REGISTER_FIELD_WORK_COMPANY"] = "Company";
$MESS["REGISTER_FIELD_WORK_COUNTRY"] = "Country";
$MESS["REGISTER_FIELD_WORK_DEPARTMENT"] = "Department";
$MESS["REGISTER_FIELD_WORK_FAX"] = "Fax";
$MESS["REGISTER_FIELD_WORK_LOGO"] = "Company logo";
$MESS["REGISTER_FIELD_WORK_MAILBOX"] = "Mailbox";
$MESS["REGISTER_FIELD_WORK_NOTES"] = "Notes";
$MESS["REGISTER_FIELD_WORK_PAGER"] = "Pager";
$MESS["REGISTER_FIELD_WORK_PHONE"] = "Phone";
$MESS["REGISTER_FIELD_WORK_POSITION"] = "Position";
$MESS["REGISTER_FIELD_WORK_PROFILE"] = "Profile";
$MESS["REGISTER_FIELD_WORK_STATE"] = "State";
$MESS["REGISTER_FIELD_WORK_STREET"] = "Address";
$MESS["REGISTER_FIELD_WORK_WWW"] = "Web page";
$MESS["REGISTER_FIELD_WORK_ZIP"] = "Zip code";
$MESS["REGISTER_REQUIRED_FIELDS"] = "Required fields";
$MESS["REGISTER_SHOW_FIELDS"] = "Fields to be displayed in a form";
$MESS["REGISTER_SUCCESS_PAGE"] = "Final registration page";
$MESS["REGISTER_USE_BACKURL"] = "Send the user back to a return link (if it exists)";
$MESS["USER_PROPERTY"] = "Show additional properties";
?>

View file

@ -0,0 +1,9 @@
<?
$MESS['REGISTER_DEFAULT_TITLE'] = "New user registration";
$MESS['REGISTER_FIELD_REQUIRED'] = "Field #FIELD_NAME# is required";
$MESS['REGISTER_USER_WITH_EMAIL_EXIST'] = "A user with this e-mail address (#EMAIL#) already exists.";
$MESS['REGISTER_WRONG_CAPTCHA'] = "Wrong CAPTCHA code";
$MESS['main_register_decode_err'] = "Password decryption error (#ERRCODE#).";
$MESS['main_register_error_sms'] = "Incorrect SMS confirmation code.";
$MESS['main_register_sess_expired'] = "Your session has expired. Please try to register again.";
?>

View file

@ -0,0 +1,11 @@
<?
$MESS ['SEF_MODE_TIP'] = "Enables the SEF mode.";
$MESS ['SHOW_FIELDS_TIP'] = "Select here the additional fields that you want to display in the registration form.";
$MESS ['REQUIRED_FIELDS_TIP'] = "Specify the mandatory fileds here.";
$MESS ['AUTH_TIP'] = "Specifies that a user will be authorised automatically upon successful registration. Otherwise, the authorisation form will be displayed.";
$MESS ['USE_BACKURL_TIP'] = "If a page URL contains the <b>backurl</b> parameter, a user will be redirected to this page upon registration.";
$MESS ['SUCCESS_PAGE_TIP'] = "Specifies a final page to which a user will be redirected upon successful registration.";
$MESS ['SET_TITLE_TIP'] = "Checking this option will set the page title to <b>New User Registration</b>.";
$MESS ['SEF_FOLDER_TIP'] = "Specify here the folder name that will be shown in the address bar when the page is active.";
$MESS ['USER_PROPERTY_TIP'] = "Select additional properties to be displayed in user profile";
?>

View file

@ -0,0 +1,4 @@
<?php
$MESS ['COMP_MAIN_USER_REGISTER_TITLE'] = "Настраиваемая регистрация retailCRM";
$MESS ['COMP_MAIN_USER_REGISTER_DESCR'] = "Управляемая форма регистрации нового пользователя с функциями Программы лояльности";
$MESS ['MAIN_USER_GROUP_NAME'] = "Пользователь";

View file

@ -0,0 +1,48 @@
<?
$MESS ['REGISTER_SHOW_FIELDS'] = "Поля, которые показывать в форме";
$MESS ['REGISTER_REQUIRED_FIELDS'] = "Поля, обязательные для заполнения";
$MESS ['REGISTER_AUTOMATED_AUTH'] = "Автоматически авторизовать пользователей";
$MESS ['REGISTER_USE_BACKURL'] = "Отправлять пользователя по обратной ссылке, если она есть";
$MESS ['REGISTER_SUCCESS_PAGE'] = "Страница окончания регистрации";
$MESS ['REGISTER_FIELD_EMAIL'] = "Email";
$MESS ['REGISTER_FIELD_PHONE_NUMBER'] = "Номер телефона для регистрации";
$MESS ['REGISTER_FIELD_TITLE'] = "Обращение";
$MESS ['REGISTER_FIELD_NAME'] = "Имя";
$MESS ['REGISTER_FIELD_SECOND_NAME'] = "Отчество";
$MESS ['REGISTER_FIELD_LAST_NAME'] = "Фамилия";
$MESS ['REGISTER_FIELD_AUTO_TIME_ZONE'] = "Часовой пояс";
$MESS ['REGISTER_FIELD_PERSONAL_PROFESSION'] = "Профессия";
$MESS ['REGISTER_FIELD_PERSONAL_WWW'] = "WWW-страница";
$MESS ['REGISTER_FIELD_PERSONAL_ICQ'] = "ICQ";
$MESS ['REGISTER_FIELD_PERSONAL_GENDER'] = "Пол";
$MESS ['REGISTER_FIELD_PERSONAL_BIRTHDAY'] = "Дата рождения";
$MESS ['REGISTER_FIELD_PERSONAL_PHOTO'] = "Фотография";
$MESS ['REGISTER_FIELD_PERSONAL_PHONE'] = "Телефон";
$MESS ['REGISTER_FIELD_PERSONAL_FAX'] = "Факс";
$MESS ['REGISTER_FIELD_PERSONAL_MOBILE'] = "Мобильный";
$MESS ['REGISTER_FIELD_PERSONAL_PAGER'] = "Пейджер";
$MESS ['REGISTER_FIELD_PERSONAL_STREET'] = "Улица, дом";
$MESS ['REGISTER_FIELD_PERSONAL_MAILBOX'] = "Почтовый ящик";
$MESS ['REGISTER_FIELD_PERSONAL_CITY'] = "Город";
$MESS ['REGISTER_FIELD_PERSONAL_STATE'] = "Область / край";
$MESS ['REGISTER_FIELD_PERSONAL_ZIP'] = "Почтовый индекс";
$MESS ['REGISTER_FIELD_PERSONAL_COUNTRY'] = "Страна";
$MESS ['REGISTER_FIELD_PERSONAL_NOTES'] = "Дополнительные заметки";
$MESS ['REGISTER_FIELD_WORK_COMPANY'] = "Наименование компании";
$MESS ['REGISTER_FIELD_WORK_DEPARTMENT'] = "Департамент / Отдел";
$MESS ['REGISTER_FIELD_WORK_POSITION'] = "Должность";
$MESS ['REGISTER_FIELD_WORK_WWW'] = "WWW-страница";
$MESS ['REGISTER_FIELD_WORK_PHONE'] = "Телефон";
$MESS ['REGISTER_FIELD_WORK_FAX'] = "Факс";
$MESS ['REGISTER_FIELD_WORK_PAGER'] = "Пейджер";
$MESS ['REGISTER_FIELD_WORK_STREET'] = "Улица, дом";
$MESS ['REGISTER_FIELD_WORK_MAILBOX'] = "Почтовый ящик";
$MESS ['REGISTER_FIELD_WORK_CITY'] = "Город";
$MESS ['REGISTER_FIELD_WORK_STATE'] = "Область / край";
$MESS ['REGISTER_FIELD_WORK_ZIP'] = "Почтовый индекс";
$MESS ['REGISTER_FIELD_WORK_COUNTRY'] = "Страна";
$MESS ['REGISTER_FIELD_WORK_PROFILE'] = "Направления деятельности";
$MESS ['REGISTER_FIELD_WORK_LOGO'] = "Логотип компании";
$MESS ['REGISTER_FIELD_WORK_NOTES'] = "Дополнительные заметки";
$MESS ['USER_PROPERTY'] = "Показывать доп. свойства";
?>

View file

@ -0,0 +1,9 @@
<?
$MESS ['REGISTER_WRONG_CAPTCHA'] = "Неверно введено слово с картинки";
$MESS ['REGISTER_FIELD_REQUIRED'] = "Поле #FIELD_NAME# обязательно для заполнения";
$MESS ['REGISTER_DEFAULT_TITLE'] = "Регистрация нового пользователя";
$MESS ['REGISTER_USER_WITH_EMAIL_EXIST'] = "Пользователь с таким e-mail (#EMAIL#) уже существует.";
$MESS["main_register_sess_expired"]="Ваша сессия истекла, повторите попытку регистрации.";
$MESS["main_register_decode_err"]="Ошибка при дешифровании пароля (#ERRCODE#).";
$MESS["main_register_error_sms"] = "Неверный код подтверждения из СМС.";
?>

View file

@ -0,0 +1,11 @@
<?
$MESS ['SEF_MODE_TIP'] = "Опция включает поддержку ЧПУ.";
$MESS ['SHOW_FIELDS_TIP'] = "Настройка служит для выбора полей, которые будут выведены в форме регистрации в дополнение к стандартному набору(логину, паролю, e-mail). ";
$MESS ['REQUIRED_FIELDS_TIP'] = "Поля, выбранные в предыдущем пункте и отмеченные здесь, будут обязательными для заполнения в форме.";
$MESS ['AUTH_TIP'] = "При наличии установленной опции после регистрации пользователя он автоматически будет авторизован на сайте. В противном случае после регистрации пользователю будет предоставлена к заполнению форма авторизации.";
$MESS ['USE_BACKURL_TIP'] = "При наличии в адресной строке параметра <i>backurl</i> пользователь будет перенаправлен по указанной в этом параметре ссылке после заполнения формы регистрации. ";
$MESS ['SUCCESS_PAGE_TIP'] = "Можно указать ссылку на любую страницу на сайте, которая будет финальной страницей процедуры регистрации, и пользователь будет перенаправлен на нее в случае успешной регистрации. ";
$MESS ['SET_TITLE_TIP'] = "При отмеченной опции в качестве заголовка страницы будет установлено \"Регистрация нового пользователя\".";
$MESS ['SEF_FOLDER_TIP'] = "Указывается каталог, который будет отображаться в URL при переходе на создаваемую страницу.";
$MESS ['USER_PROPERTY_TIP'] = "Отметьте дополнительные свойства, которые необходимо отобразить в профиле пользователя.";
?>

View file

@ -0,0 +1,10 @@
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$arTemplateParameters = array(
"USER_PROPERTY_NAME"=>array(
"NAME" => GetMessage("USER_PROPERTY_NAME"),
"TYPE" => "STRING",
"DEFAULT" => "",
),
);
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

View file

@ -0,0 +1,3 @@
<?
$MESS ['USER_PROPERTY_NAME'] = "User properties section title";
?>

View file

@ -0,0 +1,63 @@
<?
$MESS['AUTH_NONSECURE_NOTE'] = "The password will be sent in open form. Enable JavaScript in your web browser to enable password encryption.";
$MESS['AUTH_REGISTER'] = "Registration";
$MESS['AUTH_REQ'] = "Required fields.";
$MESS['AUTH_SECURE_NOTE'] = "The password will be encrypted before it is sent. This will prevent the password from appearing in open form over data transmission channels.";
$MESS['MAIN_REGISTER_AUTH'] = "You have been registered and authorized successfully.";
$MESS['REGISTER_CAPTCHA_PROMT'] = "CAPTCHA image characters";
$MESS['REGISTER_CAPTCHA_TITLE'] = "Spam bot protection (CAPTCHA)";
$MESS['REGISTER_EMAIL_WILL_BE_SENT'] = "A registration confirmation request will be sent to the specified e-mail address.";
$MESS['REGISTER_FIELD_AUTO_TIME_ZONE'] = "Time Zone";
$MESS['REGISTER_FIELD_CONFIRM_PASSWORD'] = "Password confirmation";
$MESS['REGISTER_FIELD_EMAIL'] = "E-mail";
$MESS['REGISTER_FIELD_LAST_NAME'] = "Last Name";
$MESS['REGISTER_FIELD_LOGIN'] = "Login (min. 3 characters)";
$MESS['REGISTER_FIELD_NAME'] = "Name";
$MESS['REGISTER_FIELD_PASSWORD'] = "Password";
$MESS['REGISTER_FIELD_PERSONAL_BIRTHDAY'] = "Birthday";
$MESS['REGISTER_FIELD_PERSONAL_CITY'] = "City";
$MESS['REGISTER_FIELD_PERSONAL_COUNTRY'] = "Country";
$MESS['REGISTER_FIELD_PERSONAL_FAX'] = "Fax";
$MESS['REGISTER_FIELD_PERSONAL_GENDER'] = "Gender";
$MESS['REGISTER_FIELD_PERSONAL_ICQ'] = "ICQ";
$MESS['REGISTER_FIELD_PERSONAL_MAILBOX'] = "Mailbox";
$MESS['REGISTER_FIELD_PERSONAL_MOBILE'] = "Mobile";
$MESS['REGISTER_FIELD_PERSONAL_NOTES'] = "Notes";
$MESS['REGISTER_FIELD_PERSONAL_PAGER'] = "Pager";
$MESS['REGISTER_FIELD_PERSONAL_PHONE'] = "Phone";
$MESS['REGISTER_FIELD_PERSONAL_PHOTO'] = "Photo";
$MESS['REGISTER_FIELD_PERSONAL_PROFESSION'] = "Job Title";
$MESS['REGISTER_FIELD_PERSONAL_STATE'] = "State";
$MESS['REGISTER_FIELD_PERSONAL_STREET'] = "Address";
$MESS['REGISTER_FIELD_PERSONAL_WWW'] = "Web page";
$MESS['REGISTER_FIELD_PERSONAL_ZIP'] = "Zip code";
$MESS['REGISTER_FIELD_PHONE_NUMBER'] = "Phone number";
$MESS['REGISTER_FIELD_SECOND_NAME'] = "Middle Name";
$MESS['REGISTER_FIELD_TITLE'] = "Salutation";
$MESS['REGISTER_FIELD_WORK_CITY'] = "City";
$MESS['REGISTER_FIELD_WORK_COMPANY'] = "Company";
$MESS['REGISTER_FIELD_WORK_COUNTRY'] = "Country";
$MESS['REGISTER_FIELD_WORK_DEPARTMENT'] = "Department";
$MESS['REGISTER_FIELD_WORK_FAX'] = "Fax";
$MESS['REGISTER_FIELD_WORK_LOGO'] = "Company logo";
$MESS['REGISTER_FIELD_WORK_MAILBOX'] = "Mailbox";
$MESS['REGISTER_FIELD_WORK_NOTES'] = "Notes";
$MESS['REGISTER_FIELD_WORK_PAGER'] = "Pager";
$MESS['REGISTER_FIELD_WORK_PHONE'] = "Phone";
$MESS['REGISTER_FIELD_WORK_POSITION'] = "Position";
$MESS['REGISTER_FIELD_WORK_PROFILE'] = "Profile";
$MESS['REGISTER_FIELD_WORK_STATE'] = "State";
$MESS['REGISTER_FIELD_WORK_STREET'] = "Address";
$MESS['REGISTER_FIELD_WORK_WWW'] = "Web page";
$MESS['REGISTER_FIELD_WORK_ZIP'] = "Zip code";
$MESS['USER_DONT_KNOW'] = "(unknown)";
$MESS['USER_FEMALE'] = "Female";
$MESS['USER_MALE'] = "Male";
$MESS['main_profile_time_zones_auto'] = "Auto Time Zone:";
$MESS['main_profile_time_zones_auto_def'] = "(default)";
$MESS['main_profile_time_zones_auto_no'] = "No, select from list";
$MESS['main_profile_time_zones_auto_yes'] = "Yes, use browser settings";
$MESS['main_profile_time_zones_zones'] = "Time Zone:";
$MESS['main_register_sms'] = "SMS confirmation code:";
$MESS['main_register_sms_send'] = "Submit";
?>

View file

@ -0,0 +1,3 @@
<?
$MESS ['USER_PROPERTY_NAME'] = "Название блока пользовательских свойств";
?>

View file

@ -0,0 +1,63 @@
<?
$MESS["AUTH_REGISTER"] = "Регистрация";
$MESS["REGISTER_CAPTCHA_TITLE"] = "Защита от автоматической регистрации";
$MESS["REGISTER_CAPTCHA_PROMT"] = "Введите слово на картинке";
$MESS["AUTH_REQ"] = "Поля, обязательные для заполнения.";
$MESS["USER_DONT_KNOW"] = "(неизвестно)";
$MESS["USER_MALE"] = "Мужской";
$MESS["USER_FEMALE"] = "Женский";
$MESS["REGISTER_FIELD_LOGIN"] = "Логин (мин. 3 символа)";
$MESS["REGISTER_FIELD_EMAIL"] = "Email";
$MESS["REGISTER_FIELD_PASSWORD"] = "Пароль";
$MESS["REGISTER_FIELD_CONFIRM_PASSWORD"] = "Подтверждение пароля";
$MESS["REGISTER_FIELD_TITLE"] = "Обращение";
$MESS["REGISTER_FIELD_NAME"] = "Имя";
$MESS["REGISTER_FIELD_SECOND_NAME"] = "Отчество";
$MESS["REGISTER_FIELD_LAST_NAME"] = "Фамилия";
$MESS["REGISTER_FIELD_AUTO_TIME_ZONE"] = "Часовой пояс";
$MESS["REGISTER_FIELD_PERSONAL_PROFESSION"] = "Профессия";
$MESS["REGISTER_FIELD_PERSONAL_WWW"] = "WWW-страница";
$MESS["REGISTER_FIELD_PERSONAL_ICQ"] = "ICQ";
$MESS["REGISTER_FIELD_PERSONAL_GENDER"] = "Пол";
$MESS["REGISTER_FIELD_PERSONAL_BIRTHDAY"] = "Дата рождения";
$MESS["REGISTER_FIELD_PERSONAL_PHOTO"] = "Фотография";
$MESS["REGISTER_FIELD_PERSONAL_PHONE"] = "Телефон";
$MESS["REGISTER_FIELD_PERSONAL_FAX"] = "Факс";
$MESS["REGISTER_FIELD_PERSONAL_MOBILE"] = "Мобильный";
$MESS["REGISTER_FIELD_PERSONAL_PAGER"] = "Пейджер";
$MESS["REGISTER_FIELD_PERSONAL_STREET"] = "Улица, дом";
$MESS["REGISTER_FIELD_PERSONAL_MAILBOX"] = "Почтовый ящик";
$MESS["REGISTER_FIELD_PERSONAL_CITY"] = "Город";
$MESS["REGISTER_FIELD_PERSONAL_STATE"] = "Область / край";
$MESS["REGISTER_FIELD_PERSONAL_ZIP"] = "Почтовый индекс";
$MESS["REGISTER_FIELD_PERSONAL_COUNTRY"] = "Страна";
$MESS["REGISTER_FIELD_PERSONAL_NOTES"] = "Дополнительные заметки";
$MESS["REGISTER_FIELD_WORK_COMPANY"] = "Наименование компании";
$MESS["REGISTER_FIELD_WORK_DEPARTMENT"] = "Департамент / Отдел";
$MESS["REGISTER_FIELD_WORK_POSITION"] = "Должность";
$MESS["REGISTER_FIELD_WORK_WWW"] = "WWW-страница (работа)";
$MESS["REGISTER_FIELD_WORK_PHONE"] = "Телефон (работа)";
$MESS["REGISTER_FIELD_WORK_FAX"] = "Факс (работа)";
$MESS["REGISTER_FIELD_WORK_PAGER"] = "Пейджер (работа)";
$MESS["REGISTER_FIELD_WORK_STREET"] = "Улица, дом (работа)";
$MESS["REGISTER_FIELD_WORK_MAILBOX"] = "Почтовый ящик (работа)";
$MESS["REGISTER_FIELD_WORK_CITY"] = "Город (работа)";
$MESS["REGISTER_FIELD_WORK_STATE"] = "Область / край (работа)";
$MESS["REGISTER_FIELD_WORK_ZIP"] = "Почтовый индекс (работа)";
$MESS["REGISTER_FIELD_WORK_COUNTRY"] = "Страна (работа)";
$MESS["REGISTER_FIELD_WORK_PROFILE"] = "Направления деятельности";
$MESS["REGISTER_FIELD_WORK_LOGO"] = "Логотип компании";
$MESS["REGISTER_FIELD_WORK_NOTES"] = "Дополнительные заметки (работа)";
$MESS["REGISTER_FIELD_PHONE_NUMBER"] = "Номер телефона";
$MESS["REGISTER_EMAIL_WILL_BE_SENT"] = "На указанный в форме email придет запрос на подтверждение регистрации.";
$MESS["MAIN_REGISTER_AUTH"] = "Вы зарегистрированы на сервере и успешно авторизованы.";
$MESS["main_profile_time_zones_auto"] = "Автоматически определять часовой пояс:";
$MESS["main_profile_time_zones_auto_def"] = "(по умолчанию)";
$MESS["main_profile_time_zones_auto_yes"] = "Да, определить по браузеру";
$MESS["main_profile_time_zones_auto_no"] = "Нет, выбрать из списка";
$MESS["main_profile_time_zones_zones"] = "Часовой пояс:";
$MESS["AUTH_SECURE_NOTE"] = "Перед отправкой формы пароль будет зашифрован в браузере. Это позволит избежать передачи пароля в открытом виде.";
$MESS["AUTH_NONSECURE_NOTE"] = "Пароль будет отправлен в открытом виде. Включите JavaScript в браузере, чтобы зашифровать пароль перед отправкой.";
$MESS["main_register_sms"] = "Код подтверждения из СМС:";
$MESS["main_register_sms_send"] = "Отправить";
?>

View file

@ -0,0 +1,5 @@
div.bx-auth-reg input.bx-auth-input {vertical-align:middle;}
div.bx-auth-reg span.bx-auth-secure {background-color:#FFFAE3; border:1px solid #DEDBC8; padding:2px; display:inline-block; vertical-align:middle;}
div.bx-auth-reg div.bx-auth-secure-icon {background-image:url(images/sec.png); background-repeat:no-repeat; background-position:center; width:19px; height:18px;}
div.bx-auth-reg div.bx-auth-secure-unlock {background-image:url(images/sec-unlocked.png);}

View file

@ -0,0 +1 @@
div.bx-auth-reg input.bx-auth-input{vertical-align:middle}div.bx-auth-reg span.bx-auth-secure{background-color:#fffae3;border:1px solid #dedbc8;padding:2px;display:inline-block;vertical-align:middle}div.bx-auth-reg div.bx-auth-secure-icon{background-image:url(images/sec.png);background-repeat:no-repeat;background-position:center;width:19px;height:18px}div.bx-auth-reg div.bx-auth-secure-unlock{background-image:url(images/sec-unlocked.png)}

View file

@ -0,0 +1,269 @@
<?
/**
* Bitrix Framework
* @package bitrix
* @subpackage main
* @copyright 2001-2014 Bitrix
*/
/**
* Bitrix vars
* @global CMain $APPLICATION
* @global CUser $USER
* @param array $arParams
* @param array $arResult
* @param CBitrixComponentTemplate $this
*/
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)
die();
if($arResult["SHOW_SMS_FIELD"] == true)
{
CJSCore::Init('phone_auth');
}
?>
<div class="bx-auth-reg">
<?if($USER->IsAuthorized()):?>
<p><?echo GetMessage("MAIN_REGISTER_AUTH")?></p>
<?else:?>
<?
if (count($arResult["ERRORS"]) > 0):
foreach ($arResult["ERRORS"] as $key => $error)
if (intval($key) == 0 && $key !== 0)
$arResult["ERRORS"][$key] = str_replace("#FIELD_NAME#", "&quot;".GetMessage("REGISTER_FIELD_".$key)."&quot;", $error);
ShowError(implode("<br />", $arResult["ERRORS"]));
elseif($arResult["USE_EMAIL_CONFIRMATION"] === "Y"):
?>
<p><?echo GetMessage("REGISTER_EMAIL_WILL_BE_SENT")?></p>
<?endif?>
<?if($arResult["SHOW_SMS_FIELD"] == true):?>
<form method="post" action="<?=POST_FORM_ACTION_URI?>" name="regform">
<?
if($arResult["BACKURL"] <> ''):
?>
<input type="hidden" name="backurl" value="<?=$arResult["BACKURL"]?>" />
<?
endif;
?>
<input type="hidden" name="SIGNED_DATA" value="<?=htmlspecialcharsbx($arResult["SIGNED_DATA"])?>" />
<table>
<tbody>
<tr>
<td><?echo GetMessage("main_register_sms")?><span class="starrequired">*</span></td>
<td><input size="30" type="text" name="SMS_CODE" value="<?=htmlspecialcharsbx($arResult["SMS_CODE"])?>" autocomplete="off" /></td>
</tr>
</tbody>
<tfoot>
<tr>
<td></td>
<td><input type="submit" name="code_submit_button" value="<?echo GetMessage("main_register_sms_send")?>" /></td>
</tr>
</tfoot>
</table>
</form>
<script>
new BX.PhoneAuth({
containerId: 'bx_register_resend',
errorContainerId: 'bx_register_error',
interval: <?=$arResult["PHONE_CODE_RESEND_INTERVAL"]?>,
data:
<?=CUtil::PhpToJSObject([
'signedData' => $arResult["SIGNED_DATA"],
])?>,
onError:
function(response)
{
var errorDiv = BX('bx_register_error');
var errorNode = BX.findChildByClassName(errorDiv, 'errortext');
errorNode.innerHTML = '';
for(var i = 0; i < response.errors.length; i++)
{
errorNode.innerHTML = errorNode.innerHTML + BX.util.htmlspecialchars(response.errors[i].message) + '<br>';
}
errorDiv.style.display = '';
}
});
</script>
<div id="bx_register_error" style="display:none"><?ShowError("error")?></div>
<div id="bx_register_resend"></div>
<?else:?>
<form method="post" action="<?=POST_FORM_ACTION_URI?>" name="regform" enctype="multipart/form-data">
<?
if($arResult["BACKURL"] <> ''):
?>
<input type="hidden" name="backurl" value="<?=$arResult["BACKURL"]?>" />
<?
endif;
?>
<table>
<thead>
<tr>
<td colspan="2"><b><?=GetMessage("AUTH_REGISTER")?></b></td>
</tr>
</thead>
<tbody>
<?foreach ($arResult["SHOW_FIELDS"] as $FIELD):?>
<?if($FIELD == "AUTO_TIME_ZONE" && $arResult["TIME_ZONE_ENABLED"] == true):?>
<tr>
<td><?echo GetMessage("main_profile_time_zones_auto")?><?if ($arResult["REQUIRED_FIELDS_FLAGS"][$FIELD] == "Y"):?><span class="starrequired">*</span><?endif?></td>
<td>
<select name="REGISTER[AUTO_TIME_ZONE]" onchange="this.form.elements['REGISTER[TIME_ZONE]'].disabled=(this.value != 'N')">
<option value=""><?echo GetMessage("main_profile_time_zones_auto_def")?></option>
<option value="Y"<?=$arResult["VALUES"][$FIELD] == "Y" ? " selected=\"selected\"" : ""?>><?echo GetMessage("main_profile_time_zones_auto_yes")?></option>
<option value="N"<?=$arResult["VALUES"][$FIELD] == "N" ? " selected=\"selected\"" : ""?>><?echo GetMessage("main_profile_time_zones_auto_no")?></option>
</select>
</td>
</tr>
<tr>
<td><?echo GetMessage("main_profile_time_zones_zones")?></td>
<td>
<select name="REGISTER[TIME_ZONE]"<?if(!isset($_REQUEST["REGISTER"]["TIME_ZONE"])) echo 'disabled="disabled"'?>>
<?foreach($arResult["TIME_ZONE_LIST"] as $tz=>$tz_name):?>
<option value="<?=htmlspecialcharsbx($tz)?>"<?=$arResult["VALUES"]["TIME_ZONE"] == $tz ? " selected=\"selected\"" : ""?>><?=htmlspecialcharsbx($tz_name)?></option>
<?endforeach?>
</select>
</td>
</tr>
<?else:?>
<tr>
<td><?=GetMessage("REGISTER_FIELD_".$FIELD)?>:<?if ($arResult["REQUIRED_FIELDS_FLAGS"][$FIELD] == "Y"):?><span class="starrequired">*</span><?endif?></td>
<td><?
switch ($FIELD)
{
case "PASSWORD":
?><input size="30" type="password" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" autocomplete="off" class="bx-auth-input" />
<?if($arResult["SECURE_AUTH"]):?>
<span class="bx-auth-secure" id="bx_auth_secure" title="<?echo GetMessage("AUTH_SECURE_NOTE")?>" style="display:none">
<div class="bx-auth-secure-icon"></div>
</span>
<noscript>
<span class="bx-auth-secure" title="<?echo GetMessage("AUTH_NONSECURE_NOTE")?>">
<div class="bx-auth-secure-icon bx-auth-secure-unlock"></div>
</span>
</noscript>
<script type="text/javascript">
document.getElementById('bx_auth_secure').style.display = 'inline-block';
</script>
<?endif?>
<?
break;
case "CONFIRM_PASSWORD":
?><input size="30" type="password" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" autocomplete="off" /><?
break;
case "PERSONAL_GENDER":
?><select name="REGISTER[<?=$FIELD?>]">
<option value=""><?=GetMessage("USER_DONT_KNOW")?></option>
<option value="M"<?=$arResult["VALUES"][$FIELD] == "M" ? " selected=\"selected\"" : ""?>><?=GetMessage("USER_MALE")?></option>
<option value="F"<?=$arResult["VALUES"][$FIELD] == "F" ? " selected=\"selected\"" : ""?>><?=GetMessage("USER_FEMALE")?></option>
</select><?
break;
case "PERSONAL_COUNTRY":
case "WORK_COUNTRY":
?><select name="REGISTER[<?=$FIELD?>]"><?
foreach ($arResult["COUNTRIES"]["reference_id"] as $key => $value)
{
?><option value="<?=$value?>"<?if ($value == $arResult["VALUES"][$FIELD]):?> selected="selected"<?endif?>><?=$arResult["COUNTRIES"]["reference"][$key]?></option>
<?
}
?></select><?
break;
case "PERSONAL_PHOTO":
case "WORK_LOGO":
?><input size="30" type="file" name="REGISTER_FILES_<?=$FIELD?>" /><?
break;
case "PERSONAL_NOTES":
case "WORK_NOTES":
?><textarea cols="30" rows="5" name="REGISTER[<?=$FIELD?>]"><?=$arResult["VALUES"][$FIELD]?></textarea><?
break;
default:
if ($FIELD == "PERSONAL_BIRTHDAY"):?><small><?=$arResult["DATE_FORMAT"]?></small><br /><?endif;
?><input size="30" type="text" name="REGISTER[<?=$FIELD?>]" value="<?=$arResult["VALUES"][$FIELD]?>" /><?
if ($FIELD == "PERSONAL_BIRTHDAY")
$APPLICATION->IncludeComponent(
'bitrix:main.calendar',
'',
array(
'SHOW_INPUT' => 'N',
'FORM_NAME' => 'regform',
'INPUT_NAME' => 'REGISTER[PERSONAL_BIRTHDAY]',
'SHOW_TIME' => 'N'
),
null,
array("HIDE_ICONS"=>"Y")
);
?><?
}?></td>
</tr>
<?endif?>
<?endforeach?>
<?// ********************* User properties ***************************************************?>
<?if($arResult["USER_PROPERTIES"]["SHOW"] == "Y"):?>
<tr><td colspan="2"><?=strlen(trim($arParams["USER_PROPERTY_NAME"])) > 0 ? $arParams["USER_PROPERTY_NAME"] : GetMessage("USER_TYPE_EDIT_TAB")?></td></tr>
<?foreach ($arResult["USER_PROPERTIES"]["DATA"] as $FIELD_NAME => $arUserField):?>
<tr><td><?=$arUserField["EDIT_FORM_LABEL"]?>:<?if ($arUserField["MANDATORY"]=="Y"):?><span class="starrequired">*</span><?endif;?></td><td>
<?$APPLICATION->IncludeComponent(
"bitrix:system.field.edit",
$arUserField["USER_TYPE"]["USER_TYPE_ID"],
array("bVarsFromForm" => $arResult["bVarsFromForm"], "arUserField" => $arUserField, "form_name" => "regform"), null, array("HIDE_ICONS"=>"Y"));?></td></tr>
<?endforeach;?>
<?endif;?>
<?// ******************** /User properties ***************************************************?>
<?
/* CAPTCHA */
if ($arResult["USE_CAPTCHA"] == "Y")
{
?>
<tr>
<td colspan="2"><b><?=GetMessage("REGISTER_CAPTCHA_TITLE")?></b></td>
</tr>
<tr>
<td></td>
<td>
<input type="hidden" name="captcha_sid" value="<?=$arResult["CAPTCHA_CODE"]?>" />
<img src="/bitrix/tools/captcha.php?captcha_sid=<?=$arResult["CAPTCHA_CODE"]?>" width="180" height="40" alt="CAPTCHA" />
</td>
</tr>
<tr>
<td><?=GetMessage("REGISTER_CAPTCHA_PROMT")?>:<span class="starrequired">*</span></td>
<td><input type="text" name="captcha_word" maxlength="50" value="" autocomplete="off" /></td>
</tr>
<?
}
/* !CAPTCHA */
?>
</tbody>
<tfoot>
<tr>
<td></td>
<td><input type="submit" name="register_submit_button" value="<?=GetMessage("AUTH_REGISTER")?>" /></td>
</tr>
</tfoot>
</table>
</form>
<p><?echo $arResult["GROUP_POLICY"]["PASSWORD_REQUIREMENTS"];?></p>
<?endif //$arResult["SHOW_SMS_FIELD"] == true ?>
<p><span class="starrequired">*</span><?=GetMessage("AUTH_REQ")?></p>
<?endif?>
</div>