Битрикс. Регистрация и авторизация. Часть 1 из 3
15.07.2018
Теги: CMS • Web-разработка • Авторизация • Битрикс • Компонент • Регистрация • Форма • ШаблонКомпонента
Самый простой вариант создания страницы регистрации, авторизации, восстановления пароля — создать раздел auth
и в самом начале файла /auth/index.php
определить константу NEED_AUTH
.
<?php // обратите внимание на эту константу define("NEED_AUTH", true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Авторизация и регистрация"); ?> <p>Вы зарегистрированы и успешно авторизовались.</p> <?php // ссылка для выхода из личного кабинета $logout = $APPLICATION->GetCurPageParam( "logout=yes", array( "login", "logout", "register", "forgot_password", "change_password" ) ); ?> <p><a href="<?= $logout; ?>">Выйти</a></p> <?php require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>
После этого регистрация и авторизация уже работает:
Теперь нам надо кастомизоровать шаблоны системных компонентов:
system.auth.registration
system.auth.authorize
system.auth.forgotpasswd
system.auth.changepasswd
Для этого копируем:
bitrix/components/bitrix/system.auth.registration/templates/.default
вlocal/templates/.default/components/bitrix/system.auth.registration/.default
bitrix/components/bitrix/system.auth.authorize/templates/.default
вlocal/templates/.default/components/bitrix/system.auth.authorize/.default
bitrix/components/bitrix/system.auth.forgotpasswd/templates/.default
вlocal/templates/.default/components/bitrix/system.auth.forgotpasswd/.default
bitrix/components/bitrix/system.auth.changepasswd/templates/.default
вlocal/templates/.default/components/bitrix/system.auth.changepasswd/.default
Шаблон компонента system.auth.registration
<?php /* * Файл local/templates/.default/components/bitrix/system.auth.registration/.default/template.php */ if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); ?> <div class="system-auth-registration"> <h2><?= GetMessage('SYS_AUTH_REGISTRATION_TITLE'); /* заголовок формы */ ?></h2> <?php // сообщение о том, как закончилась операция регистрации ShowMessage($arParams["~AUTH_RESULT"]); ?> <?php if ($arResult["USE_EMAIL_CONFIRMATION"] === "Y" && is_array($arParams["AUTH_RESULT"]) && $arParams["AUTH_RESULT"]["TYPE"] === "OK"): ?> <p><?= GetMessage('SYS_AUTH_REGISTRATION_EMAIL_SENT'); /* отправлено письмо для подтверждения */ ?></p> </div> <?php return; ?> <?php endif; ?> <?php if ($arResult["USE_EMAIL_CONFIRMATION"] === "Y"): ?> <p><?= GetMessage('SYS_AUTH_REGISTRATION_EMAIL_HELP'); /* будет отправлено письмо для подтверждения */ ?></p> <?php endif; ?> <form method="post" action="<?= $arResult["AUTH_URL"]; ?>" name="bform" enctype="multipart/form-data"> <?php if (strlen($arResult["BACKURL"]) > 0): ?> <input type="hidden" name="backurl" value="<?= $arResult["BACKURL"]; ?>" /> <?php endif; ?> <input type="hidden" name="AUTH_FORM" value="Y" /> <input type="hidden" name="TYPE" value="REGISTRATION" /> <div> <span> <?= GetMessage('SYS_AUTH_REGISTRATION_FNAME'); /* имя пользователя */ ?> </span> <span> <input type="text" name="USER_NAME" maxlength="50" value="<?= $arResult["USER_NAME"]; ?>" /> </span> </div> <div> <span> <?= GetMessage('SYS_AUTH_REGISTRATION_LNAME'); /* фамилия пользователя */ ?> </span> <span> <input type="text" name="USER_LAST_NAME" maxlength="50" value="<?= $arResult["USER_LAST_NAME"]; ?>" /> </span> </div> <div> <span> <?= GetMessage('SYS_AUTH_REGISTRATION_LOGIN'); /* логин пользователя */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="text" name="USER_LOGIN" maxlength="50" value="<?= $arResult["USER_LOGIN"]; ?>" /> </span> </div> <div> <span> <?= GetMessage('SYS_AUTH_REGISTRATION_EMAIL'); /* e-mail пользователя */ ?> <?php if ($arResult["EMAIL_REQUIRED"]): ?> <i>*</i> <!-- поле обязательно для заполнения --> <?php endif; ?> </span> <span> <input type="text" name="USER_EMAIL" maxlength="255" value="<?= $arResult["USER_EMAIL"]; ?>" /> </span> </div> <div> <span> <?= GetMessage('SYS_AUTH_REGISTRATION_PASSWORD'); /* пароль пользователя */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="password" name="USER_PASSWORD" maxlength="50" value="<?= $arResult["USER_PASSWORD"]; ?>" autocomplete="off" /> </span> </div> <?php if ($arResult["SECURE_AUTH"]): /* безопасная авторизация (зашифрованная передача пароля) */ ?> <!-- код удален --> <?php endif; ?> <div> <span> <?= GetMessage('SYS_AUTH_REGISTRATION_CONFIRM'); /* подтверждение пароля */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="password" name="USER_CONFIRM_PASSWORD" maxlength="50" value="<?= $arResult["USER_CONFIRM_PASSWORD"]; ?>" autocomplete="off" /> </span> </div> <?php if ($arResult["USER_PROPERTIES"]["SHOW"] == "Y"): /* User properties */ ?> <?php echo strlen(trim($arParams["USER_PROPERTY_NAME"])) > 0 ? $arParams["USER_PROPERTY_NAME"] : GetMessage("USER_TYPE_EDIT_TAB"); ?> <?php foreach ($arResult["USER_PROPERTIES"]["DATA"] as $FIELD_NAME => $arUserField): ?> <?php if ($arUserField["MANDATORY"]=="Y"):?> <i>*</i> <!-- поле обязательно для заполнения --> <?php endif; ?> <?= $arUserField["EDIT_FORM_LABEL"]?>: <?php $APPLICATION->IncludeComponent( "bitrix:system.field.edit", $arUserField["USER_TYPE"]["USER_TYPE_ID"], array( "bVarsFromForm" => $arResult["bVarsFromForm"], "arUserField" => $arUserField, "form_name" => "bform" ), null, array("HIDE_ICONS"=>"Y") ); ?> <?php endforeach; ?> <?php endif; ?> <?php if ($arResult["USE_CAPTCHA"] == "Y"): /* использовать CAPTCHA? */ ?> <div class="captcha"> <h3><?= GetMessage('SYS_AUTH_REGISTRATION_CAPTCHA_TITLE'); /* Защита от роботов */ ?></h3> <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="" /> <span> <?= GetMessage('SYS_AUTH_REGISTRATION_CAPTCHA_TEXT'); /* введите код с картинки */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="text" name="captcha_word" maxlength="50" value="" /> </span> </div> <?php endif; ?> <?php $APPLICATION->IncludeComponent( /* запрос согласия пользователя */ "bitrix:main.userconsent.request", "", array( "ID" => COption::getOptionString("main", "new_user_agreement", ""), "IS_CHECKED" => "Y", "AUTO_SAVE" => "N", "IS_LOADED" => "Y", "ORIGINATOR_ID" => $arResult["AGREEMENT_ORIGINATOR_ID"], "ORIGIN_ID" => $arResult["AGREEMENT_ORIGIN_ID"], "INPUT_NAME" => $arResult["AGREEMENT_INPUT_NAME"], "REPLACE" => array( "button_caption" => GetMessage("AUTH_REGISTER"), "fields" => array( rtrim(GetMessage("AUTH_NAME"), ":"), rtrim(GetMessage("AUTH_LAST_NAME"), ":"), rtrim(GetMessage("AUTH_LOGIN_MIN"), ":"), rtrim(GetMessage("AUTH_PASSWORD_REQ"), ":"), rtrim(GetMessage("AUTH_EMAIL"), ":"), ) ), ) ); ?> <div class="submit"> <input type="submit" name="Register" value="<?= GetMessage('SYS_AUTH_REGISTRATION_SUBMIT'); /* кнопка отправки формы */ ?>" /> </div> </form> <p><?= GetMessage('SYS_AUTH_REGISTRATION_LOGIN_LEN'); /* предупреждение о min длине логина */ ?></p> <p><?= $arResult["GROUP_POLICY"]["PASSWORD_REQUIREMENTS"]; /* предупреждение о min длине пароля */ ?></p> <p> <i>*</i> <?= GetMessage('SYS_AUTH_REGISTRATION_REQUIRED'); /* Эти поля обязательны для заполнения */ ?> </p> <p> <a href="<?= $arResult["AUTH_AUTH_URL"]; ?>" rel="nofollow"> <?= GetMessage('SYS_AUTH_REGISTRATION_AUTH'); /* ссылка на страницу авторизации */ ?> </a> </p> <script type="text/javascript"> document.bform.USER_NAME.focus(); </script> </div>
<?php /* * Файл local/templates/.default/components/bitrix/system.auth.registration/.default/lang/ru/template.php */ $MESS['SYS_AUTH_REGISTRATION_TITLE'] = 'Регистрация'; $MESS['SYS_AUTH_REGISTRATION_EMAIL_HELP'] = 'На указанный в форме e-mail придет запрос на подтверждение регистрации.'; $MESS['SYS_AUTH_REGISTRATION_EMAIL_SENT'] = 'На указанный в форме e-mail было выслано письмо с информацией о подтверждении регистрации.'; $MESS['SYS_AUTH_REGISTRATION_FNAME'] = 'Имя'; $MESS['SYS_AUTH_REGISTRATION_LNAME'] = 'Фамилия'; $MESS['SYS_AUTH_REGISTRATION_LOGIN'] = 'Логин'; $MESS['SYS_AUTH_REGISTRATION_PASSWORD'] = 'Пароль'; $MESS['SYS_AUTH_REGISTRATION_CONFIRM'] = 'Подтверждение пароля'; $MESS['SYS_AUTH_REGISTRATION_EMAIL'] = 'E-mail'; $MESS['SYS_AUTH_REGISTRATION_CAPTCHA_TITLE'] = 'Защита от автоматической регистрации'; $MESS['SYS_AUTH_REGISTRATION_CAPTCHA_TEXT'] = 'Введите символы с картинки'; $MESS['SYS_AUTH_REGISTRATION_SUBMIT'] = 'Регистрация'; $MESS['SYS_AUTH_REGISTRATION_LOGIN_LEN'] = 'Логин должен быть не менее 3 символов длиной.'; $MESS['SYS_AUTH_REGISTRATION_REQUIRED'] = 'Эти поля обязательны для заполнения'; $MESS['SYS_AUTH_REGISTRATION_AUTH'] = 'Авторизация';
/*
* Файл local/templates/.default/components/bitrix/system.auth.registration/.default/style.css
*/
.system-auth-registration {
}
.system-auth-registration > p {
margin: 1em 0;
}
.system-auth-registration > p > a {
text-decoration: underline;
}
.system-auth-registration > form {
overflow: hidden;
}
.system-auth-registration > form > div {
width: 50%;
margin-bottom: 15px;
float: left;
box-sizing: border-box;
}
.system-auth-registration > form > div.captcha {
border: 1px solid #ccc;
padding: 20px 15px 15px 15px;
position: relative;
margin-top: 15px;
width: 49%;
clear: both;
}
.system-auth-registration > form > div.captcha > h3 {
position: absolute;
top: -10px;
font-weight: normal;
font-size: 16px;
background: #eee;
padding: 0 10px;
color: #999;
}
.system-auth-registration > form > div.captcha > span:first-of-type {
margin-top: 10px;
}
.system-auth-registration > form > div:nth-of-type(even) {
padding-left: 1%;
}
.system-auth-registration > form > div:nth-of-type(odd) {
padding-right: 1%;
}
.system-auth-registration > form > div > span {
display: block;
}
.system-auth-registration > form > div > span:first-child {
margin-bottom: 5px;
}
.system-auth-registration > form > div > span > input[type="text"],
.system-auth-registration > form > div > span > input[type="password"] {
width: 100%;
padding: 5px;
border:1px solid #ccc;
}
.system-auth-registration > form > div.submit {
float: none;
padding-left: 0;
}
.system-auth-registration > form > div.submit > input[type="submit"] {
width: 30%;
padding: 5px;
background: #333;
color: #fff;
border: none;
margin-top: 10px;
}
.system-auth-registration i {
font-style: normal;
font-weight: bold;
color: #f00;
}
Шаблон компонента system.auth.authorize
<?php /* * Файл local/templates/.default/components/bitrix/system.auth.authorize/.default/template.php */ if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); ?> <div class="system-auth-authorize"> <h2><?= GetMessage('SYS_AUTH_AUTHORIZE_TITLE'); /* заголовок формы */ ?></h2> <?php // сообщение, как прошла операция авторизации ShowMessage($arParams["~AUTH_RESULT"]); // сообщение об ошибке при авторизации ShowMessage($arResult['ERROR_MESSAGE']); ?> <form name="form_auth" method="post" target="_top" action="<?= $arResult["AUTH_URL"]; ?>"> <input type="hidden" name="AUTH_FORM" value="Y" /> <input type="hidden" name="TYPE" value="AUTH" /> <?php if (strlen($arResult["BACKURL"]) > 0): ?> <input type="hidden" name="backurl" value="<?= $arResult["BACKURL"]; ?>" /> <?php endif; ?> <?php foreach ($arResult["POST"] as $key => $value): /* передача полученных POST-параметров */ ?> <input type="hidden" name="<?= $key; ?>" value="<?= $value; ?>" /> <?php endforeach; ?> <div> <span> <?= GetMessage('SYS_AUTH_AUTHORIZE_LOGIN'); /* поле логин */ ?> </span> <span> <input type="text" name="USER_LOGIN" maxlength="255" value="<?= $arResult["LAST_LOGIN"]; ?>"/> </span> </div> <div> <span> <?= GetMessage('SYS_AUTH_AUTHORIZE_PASSWORD'); /* поле пароль */ ?> </span> <span> <input type="password" name="USER_PASSWORD" maxlength="255" autocomplete="off" /> </span> </div> <?php if ($arResult["SECURE_AUTH"]): /* безопасная авторизация (зашифрованная передача пароля) */ ?> <!-- код удален --> <?php endif; ?> <?php if ($arResult["CAPTCHA_CODE"]): /* если используется CAPTCHA */ ?> <div class="captcha"> <h3><?= GetMessage('SYS_AUTH_AUTHORIZE_CAPTCHA_TITLE'); /* Защита от роботов */ ?></h3> <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="" /> <span> <?= GetMessage('SYS_AUTH_AUTHORIZE_CAPTCHA_TEXT'); /* введите код с картинки */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="text" name="captcha_word" maxlength="50" value="" size="15" /> </span> </div> <?php endif; ?> <?php if ($arResult["STORE_PASSWORD"] == "Y"): /* checkbox «Запомнить меня» */ ?> <div class="remember"> <input type="checkbox" id="USER_REMEMBER" name="USER_REMEMBER" value="Y" /> <label for="USER_REMEMBER"><?= GetMessage('SYS_AUTH_AUTHORIZE_REMEMBER'); ?></label> </div> <?php endif; ?> <div class="submit"> <input type="submit" name="Login" value="<?= GetMessage('SYS_AUTH_AUTHORIZE_SUBMIT'); /* кнопка отправки формы */ ?>" /> </div> </form> <?php if ($arParams["NOT_SHOW_LINKS"] != "Y"): /* ссылка для восстановления пароля */ ?> <p> <a href="<?= $arResult["AUTH_FORGOT_PASSWORD_URL"]; ?>" rel="nofollow"> <?= GetMessage('SYS_AUTH_AUTHORIZE_FORGOT'); ?> </a> </p> <?php endif; ?> <?php // ссылка на страницу регистрации if ($arParams["NOT_SHOW_LINKS"] != "Y" && $arResult["NEW_USER_REGISTRATION"] == "Y" && $arParams["AUTHORIZE_REGISTRATION"] != "Y"): ?> <p> <a href="<?= $arResult["AUTH_REGISTER_URL"]; ?>" rel="nofollow"> <?= GetMessage('SYS_AUTH_AUTHORIZE_REG_USER'); ?> </a> </p> <?php endif; ?> <script type="text/javascript"> <?php if (strlen($arResult["LAST_LOGIN"]) > 0): ?> try{document.form_auth.USER_PASSWORD.focus();} catch(e){} <?php else: ?> try{document.form_auth.USER_LOGIN.focus();} catch(e){} <?php endif; ?> </script> </div>
<?php /* * Файл local/templates/.default/components/bitrix/system.auth.authorize/.default/lang/ru/template.php */ $MESS['SYS_AUTH_AUTHORIZE_TITLE'] = 'Авторизация'; $MESS['SYS_AUTH_AUTHORIZE_LOGIN'] = 'Логин'; $MESS['SYS_AUTH_AUTHORIZE_PASSWORD'] = 'Пароль'; $MESS['SYS_AUTH_AUTHORIZE_REMEMBER'] = 'Запомнить меня'; $MESS['SYS_AUTH_AUTHORIZE_CAPTCHA_TITLE'] = 'Защита от автоматической регистрации'; $MESS['SYS_AUTH_AUTHORIZE_CAPTCHA_TEXT'] = 'Введите символы с картинки'; $MESS['SYS_AUTH_AUTHORIZE_SUBMIT'] = 'Войти'; $MESS['SYS_AUTH_AUTHORIZE_REG_USER'] = 'Зарегистрироваться'; $MESS['SYS_AUTH_AUTHORIZE_FORGOT'] = 'Забыли пароль?';
/*
* Файл local/templates/.default/components/bitrix/system.auth.authorize/.default/style.css
*/
.system-auth-authorize {
}
.system-auth-authorize > p {
margin: 1em 0;
}
.system-auth-authorize > p > a {
text-decoration: underline;
}
.system-auth-authorize > form > div {
width: 50%;
margin-bottom: 15px;
}
.system-auth-authorize > form > div > span {
display: block;
}
.system-auth-authorize > form > div > span:first-child {
margin-bottom: 5px;
}
.system-auth-authorize > form > div > span > input[type="text"],
.system-auth-authorize > form > div > span > input[type="password"] {
width: 100%;
padding: 5px;
border:1px solid #ccc;
}
.system-auth-authorize > form > div.captcha {
border: 1px solid #ccc;
padding: 20px 15px 15px 15px;
position: relative;
margin-top: 15px;
width: 49%;
clear: both;
}
.system-auth-authorize > form > div.captcha > h3 {
position: absolute;
top: -10px;
font-weight: normal;
font-size: 16px;
background: #eee;
padding: 0 10px;
color: #999;
}
.system-auth-authorize > form > div.captcha > span:first-of-type {
margin-top: 10px;
}
.system-auth-authorize > form > div.remember label {
font-weight: normal;
cursor: pointer;
border-bottom: 1px dashed #333;
position: relative;
top: -3px;
margin-left: 5px;
}
.system-auth-authorize > form > div.submit > input[type="submit"] {
width: 30%;
padding: 5px;
background: #333;
color: #fff;
border: none;
}
.system-auth-authorize i {
font-style: normal;
font-weight: bold;
color: #f00;
}
Шаблон компонента system.auth.forgotpasswd
<?php /* * Файл local/templates/.default/components/bitrix/system.auth.forgotpasswd/.default/template.php */ if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); ?> <div class="system-auth-forgotpasswd"> <h2><?= GetMessage('SYS_AUTH_FORGOT_TITLE'); /* заголовок формы */?></h2> <?php // сообщение о результате операции смены пароля ShowMessage($arParams["~AUTH_RESULT"]); // после отправки письма и вывода сообщания об этом, не нужно больше показывать форму if (isset($arParams["~AUTH_RESULT"]['TYPE']) && $arParams["~AUTH_RESULT"]['TYPE'] == 'OK') { echo '</div>'; return; } ?> <p><?= GetMessage('SYS_AUTH_FORGOT_HELP'); /* сообщение о том, как происходит восстановление пароля */?></p> <form name="bform" method="post" target="_top" action="<?= $arResult["AUTH_URL"]; ?>"> <?php if (strlen($arResult["BACKURL"]) > 0): ?> <input type="hidden" name="backurl" value="<?= $arResult["BACKURL"]; ?>" /> <?php endif; ?> <input type="hidden" name="AUTH_FORM" value="Y"> <input type="hidden" name="TYPE" value="SEND_PWD"> <div> <span> <?= GetMessage('SYS_AUTH_FORGOT_LOGIN'); /* логин пользователя */ ?> </span> <span> <input type="text" name="USER_LOGIN" maxlength="50" value="<?= $arResult["LAST_LOGIN"]; ?>" /> </span> </div> <div> <span> <?= GetMessage('SYS_AUTH_FORGOT_EMAIL'); /* e-mail пользователя */ ?> </span> <span> <input type="text" name="USER_EMAIL" maxlength="255" value="" /> </span> </div> <?php if ($arResult["USE_CAPTCHA"]): /* использовать CAPTCHA? */ ?> <div class="captcha"> <h3><?= GetMessage('SYS_AUTH_FORGOT_CAPTCHA_TITLE'); /* Защита от роботов */ ?></h3> <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" /> <span> <?= GetMessage('SYS_AUTH_FORGOT_CAPTCHA_TEXT'); /* введите код с картинки */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="text" name="captcha_word" maxlength="50" value="" /> </span> </div> <?php endif; ?> <div class="submit"> <input type="submit" name="send_account_info" value="<?= GetMessage('SYS_AUTH_FORGOT_SUBMIT'); /* кнопка отправки */ ?>" /> </div> </form> <p> <a href="<?= $arResult["AUTH_AUTH_URL"]; ?>"> <?= GetMessage('SYS_AUTH_FORGOT_AUTH'); /* ссылка на страницу авторизации */ ?> </a> </p> <script type="text/javascript"> document.bform.USER_LOGIN.focus(); </script> </div>
<?php /* * Файл local/templates/.default/components/bitrix/system.auth.forgotpasswd/.default/lang/ru/template.php */ $MESS['SYS_AUTH_FORGOT_TITLE'] = 'Восстановление пароля'; $MESS['SYS_AUTH_FORGOT_HELP'] = 'Введите логин или E-mail: инструкция по смене пароля будет отправлена на Ваш почтовый адрес.'; $MESS['SYS_AUTH_FORGOT_LOGIN'] = 'Логин'; $MESS['SYS_AUTH_FORGOT_EMAIL'] = 'E-mail'; $MESS['SYS_AUTH_FORGOT_CAPTCHA_TITLE'] = 'Защита от автоматической регистрации'; $MESS['SYS_AUTH_FORGOT_CAPTCHA_TEXT'] = 'Введите символы с картинки'; $MESS['SYS_AUTH_FORGOT_SUBMIT'] = 'Отправить'; $MESS['SYS_AUTH_FORGOT_AUTH'] = 'Авторизация';
/*
* Файл local/templates/.default/components/bitrix/system.auth.forgotpasswd/.default/style.css
*/
.system-auth-forgotpasswd {
}
.system-auth-forgotpasswd > p {
margin: 1em 0;
}
.system-auth-forgotpasswd > p > a {
text-decoration: underline;
}
.system-auth-forgotpasswd > form > div {
width: 50%;
margin-bottom: 15px;
}
.system-auth-forgotpasswd > form > div.captcha {
border: 1px solid #ccc;
padding: 20px 15px 15px 15px;
position: relative;
margin-top: 25px;
}
.system-auth-forgotpasswd > form > div.captcha > h3 {
position: absolute;
top: -10px;
font-weight: normal;
font-size: 16px;
background: #eee;
padding: 0 10px;
color: #999;
}
.system-auth-forgotpasswd > form > div.captcha > span:first-of-type {
margin-top: 10px;
}
.system-auth-forgotpasswd > form > div > span {
display: block;
}
.system-auth-forgotpasswd > form > div > span:first-child {
margin-bottom: 5px;
}
.system-auth-forgotpasswd > form > div > span > input[type="text"],
.system-auth-forgotpasswd > form > div > span > input[type="password"] {
width: 100%;
padding: 5px;
border: 1px solid #ccc;
}
.system-auth-forgotpasswd > form > div.submit {
margin-top: 25px;
}
.system-auth-forgotpasswd > form > div.submit > input[type="submit"] {
width: 30%;
padding: 5px;
background: #333;
color: #fff;
border: none;
}
.system-auth-forgotpasswd i {
font-style: normal;
font-weight: bold;
color: #f00;
}
Шаблон компонента system.auth.changepasswd
<?php /* * Файл local/templates/.default/components/bitrix/system.auth.changepasswd/.default/template.php */ if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); ?> <div class="system-auth-changepasswd"> <h2><?= GetMessage('SYS_AUTH_CHANGE_TITLE'); /* заголовок формы */ ?></h2> <p><?php ShowMessage($arParams["~AUTH_RESULT"]); /* сообщение о результате смены пароля */ ?></p> <?php // после успешной смены пароля и вывода сообщания об этом, не нужно больше показывать форму if (isset($arParams["~AUTH_RESULT"]['TYPE']) && $arParams["~AUTH_RESULT"]['TYPE'] == 'OK') { echo '</div>'; return; } ?> <form name="bform" method="post" action="<?= $arResult["AUTH_FORM"]; ?>"> <?php if (strlen($arResult["BACKURL"]) > 0): ?> <input type="hidden" name="backurl" value="<?= $arResult["BACKURL"]; ?>" /> <?php endif; ?> <input type="hidden" name="AUTH_FORM" value="Y"> <input type="hidden" name="TYPE" value="CHANGE_PWD"> <div> <span> <?= GetMessage('SYS_AUTH_CHANGE_LOGIN'); /* логин пользователя */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="text" name="USER_LOGIN" maxlength="50" value="<?= $arResult["LAST_LOGIN"]; ?>" /> </span> </div> <div class="checkword"> <span> <?= GetMessage('SYS_AUTH_CHANGE_CHECK'); /* контрольная строка */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="text" name="USER_CHECKWORD" maxlength="50" value="<?= $arResult["USER_CHECKWORD"]; ?>" /> </span> </div> <div> <span> <?= GetMessage('SYS_AUTH_CHANGE_PASSWORD'); /* новый пароль */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="password" name="USER_PASSWORD" maxlength="50" value="<?= $arResult["USER_PASSWORD"]; ?>" autocomplete="off" /> </span> </div> <?php if ($arResult["SECURE_AUTH"]): /* безопасная авторизация (зашифрованная передача пароля) */?> <!-- код удален --> <?php endif; ?> <div> <span> <?= GetMessage('SYS_AUTH_CHANGE_CONFIRM'); /* подтверждение пароля */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="password" name="USER_CONFIRM_PASSWORD" maxlength="50" value="<?= $arResult["USER_CONFIRM_PASSWORD"]; ?>" autocomplete="off" /> </span> </div> <?php if ($arResult["USE_CAPTCHA"]): /* использовать CAPTCHA? */?> <div class="captcha"> <h3><?= GetMessage('SYS_AUTH_CHANGE_CAPTCHA_TITLE'); /* Защита от роботов */ ?></h3> <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" /> <span> <?= GetMessage('SYS_AUTH_CHANGE_CAPTCHA_TEXT'); /* введите код с картинки */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="text" name="captcha_word" maxlength="50" value="" /> </span> </div> <?php endif; ?> <div class="submit"> <input type="submit" name="change_pwd" value="<?= GetMessage('SYS_AUTH_CHANGE_SUBMIT'); /* кнопка отправки формы */ ?>" /> </div> </form> <p><?= $arResult["GROUP_POLICY"]["PASSWORD_REQUIREMENTS"]; /* сообщение о min длине пароля */ ?></p> <p><i>*</i> <?= GetMessage('SYS_AUTH_CHANGE_REQUIRED') /* Эти поля обязательны для заполнения */ ?></p> <p> <a href="<?= $arResult["AUTH_AUTH_URL"]; ?>"> <?= GetMessage('SYS_AUTH_CHANGE_AUTH'); /* ссылка на страницу авторизации */ ?> </a> </p> <script type="text/javascript"> document.bform.USER_LOGIN.focus(); </script> </div>
<?php /* * Файл local/templates/.default/components/bitrix/system.auth.changepasswd/.default/lang/ru/template.php */ $MESS['SYS_AUTH_CHANGE_TITLE'] = 'Смена пароля'; $MESS['SYS_AUTH_CHANGE_LOGIN'] = 'Логин'; $MESS['SYS_AUTH_CHANGE_CHECK'] = 'Контрольная строка'; $MESS['SYS_AUTH_CHANGE_PASSWORD'] = 'Новый пароль'; $MESS['SYS_AUTH_CHANGE_CONFIRM'] = 'Подтверждение пароля'; $MESS['SYS_AUTH_CHANGE_CAPTCHA_TITLE'] = 'Защита от автоматической регистрации'; $MESS['SYS_AUTH_CHANGE_CAPTCHA_TEXT'] = 'Введите символы с картинки'; $MESS['SYS_AUTH_CHANGE_SUBMIT'] = 'Изменить пароль'; $MESS['SYS_AUTH_CHANGE_AUTH'] = 'Авторизация'; $MESS['SYS_AUTH_CHANGE_REQUIRED'] = 'Эти поля обязательны для заполнения';
/*
* Файл local/templates/.default/components/bitrix/system.auth.changepasswd/.default/style.css
*/
.system-auth-changepasswd {
}
.system-auth-changepasswd > p {
margin: 1em 0;
}
.system-auth-changepasswd > p > a {
text-decoration: underline;
}
.system-auth-changepasswd > form > div {
width: 50%;
margin-bottom: 15px;
}
.system-auth-changepasswd > form > div.checkword {
display: none;
}
.system-auth-changepasswd > form > div > span {
display: block;
}
.system-auth-changepasswd > form > div > span:first-child {
margin-bottom: 5px;
}
.system-auth-changepasswd > form > div > span > input[type="text"],
.system-auth-changepasswd > form > div > span > input[type="password"] {
width: 100%;
padding: 5px;
border:1px solid #ccc;
}
.system-auth-changepasswd > form > div.submit {
margin-top: 25px;
}
.system-auth-changepasswd > form > div.submit > input[type="submit"] {
width: 30%;
padding: 5px;
background: #333;
color: #fff;
border: none;
}
.system-auth-changepasswd i {
font-style: normal;
font-weight: bold;
color: #f00;
}
- Битрикс. Регистрация и авторизация. Часть 3 из 3
- Битрикс. Регистрация и авторизация. Часть 2 из 3
- Битрикс. Форма обратной связи
- Битрикс. Поиск на сайте
- Битрикс. Создание комплексного компонента. Часть 4 из 4
- Битрикс. Создание комплексного компонента. Часть 3 из 4
- Битрикс. Создание комплексного компонента. Часть 2 из 4
Поиск: CMS • Web-разработка • Авторизация • Битрикс • Компонент • Регистрация • Форма • Шаблон компонента