Битрикс. Регистрация и авторизация. Часть 3 из 3
22.07.2018
Теги: CMS • Web-разработка • Авторизация • Битрикс • Компонент • Регистрация • Форма • ШаблонКомпонента • ШаблонСайта
Компонент «Профиль пользователя» позволяет вывести в публичную часть сайта информацию о пользователе. Некоторые поля пользователь может отредактировать. В визуальном редакторе компонент расположен по пути: «Служебные • Пользователь • Параметры пользователя».
Пример вызова компонента bitrix:main.profile
:
$APPLICATION->IncludeComponent( "bitrix:main.profile", "", array( "USER_PROPERTY_NAME" => "", "SET_TITLE" => "Y", "AJAX_MODE" => "N", "USER_PROPERTY" => array(), "SEND_INFO" => "Y", "CHECK_RIGHTS" => "Y", "AJAX_OPTION_JUMP" => "N", "AJAX_OPTION_STYLE" => "Y", "AJAX_OPTION_HISTORY" => "N" ) );
Давайте создадим страницу /auth/profile.php
и разместим на ней вызов компонента «Профиль пользователя»:
<?php /* * Файл /auth/profile.php */ require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Профиль пользователя"); ?> <?php $APPLICATION->IncludeComponent( "bitrix:main.profile", "", array( "CHECK_RIGHTS" => "N", // Проверять права доступа "SEND_INFO" => "N", // Генерировать почтовое событие "SET_TITLE" => "N", // Устанавливать заголовок страницы "USER_PROPERTY" => "", // Показывать доп. свойства "USER_PROPERTY_NAME" => "", // Название закладки с доп. свойствами ), false ); ?> <?php require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>
Страница /auth/profile.php
теперь выглядит так:
Скопируем шаблон компонента:
- откуда:
bitrix/components/bitrix/main.profile/templates/.default
- куда:
local/templates/.default/components/bitrix/main.profile/.default
После разгребания табличной верстки от разработчиков Битрикс, получился такой шаблон:
<?php /* * Файл local/templates/.default/components/bitrix/main.profile/.default/template.php */ if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); ?> <div class="bitrix-main-profile"> <h2><?= GetMessage('MAIN_PROFILE_FORM_TITLE'); /* Заголовок формы */ ?></h2> <?php ShowError($arResult["strProfileError"]); /* сообщения об ошибках */ ?> <?php if ($arResult['DATA_SAVED'] == 'Y') { // сообщение об успешном сохранении данных ShowNote(GetMessage('PROFILE_DATA_SAVED')); } ?> <form method="post" name="form1" action="<?= $arResult["FORM_TARGET"]; ?>" enctype="multipart/form-data"> <?= $arResult["BX_SESSION_CHECK"]; ?> <input type="hidden" name="lang" value="<?= LANG; ?>" /> <input type="hidden" name="ID" value=<?= $arResult["ID"]; ?> /> <section> <h3><?= GetMessage('MAIN_PROFILE_REGISTER_TITLE'); /* Регистрационные данные */ ?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_REG_TITLE'); /* обращение */ ?></span> <span> <input type="text" name="TITLE" value="<?= $arResult["arUser"]["TITLE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_REG_FNAME'); /* имя */ ?></span> <span> <input type="text" name="NAME" maxlength="50" value="<?= $arResult["arUser"]["NAME"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_REG_LNAME'); /* фамилия */ ?></span> <span> <input type="text" name="LAST_NAME" maxlength="50" value="<?= $arResult["arUser"]["LAST_NAME"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_REG_SNAME'); /* отчество */ ?></span> <span> <input type="text" name="SECOND_NAME" maxlength="50" value="<?= $arResult["arUser"]["SECOND_NAME"];?>" /> </span> </div> <div> <span> <?= GetMessage('MAIN_PROFILE_REG_EMAIL'); /* e-mail */ ?> <?php if ($arResult["EMAIL_REQUIRED"]): ?> <i>*</i> <!-- поле обязательно для заполнения --> <?php endif; ?> </span> <span> <input type="text" name="EMAIL" maxlength="50" value="<?= $arResult["arUser"]["EMAIL"]?>" /> </span> </div> <div> <span> <?= GetMessage('MAIN_PROFILE_REG_LOGIN'); /* логин */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="text" name="LOGIN" maxlength="50" value="<?= $arResult["arUser"]["LOGIN"]?>" /> </span> </div> <?php if ($arResult["arUser"]["EXTERNAL_AUTH_ID"] == ''): /* авторизация не через внешние сервисы */ ?> <div> <span><?= GetMessage('MAIN_PROFILE_REG_PASSWORD'); /* новый пароль */ ?></span> <span> <input type="password" name="NEW_PASSWORD" maxlength="50" value="" autocomplete="off" /> </span> <?php if ($arResult["SECURE_AUTH"]): /* безопасная авторизация */ ?> <!-- код удален --> <?php endif; ?> </div> <div> <span><?= GetMessage('MAIN_PROFILE_REG_CONFIRM'); /* подтверждение пароля */ ?></span> <span> <input type="password" name="NEW_PASSWORD_CONFIRM" maxlength="50" value="" autocomplete="off" /> </span> </div> <?php endif; ?> </section> <section> <h3><?= GetMessage('MAIN_PROFILE_PERSONAL_TITLE'); /* Личные данные */ ?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_USER_PROFESSION'); /* профессия */ ?></span> <span> <input type="text" name="PERSONAL_PROFESSION" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_PROFESSION"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_WWW'); /* сайт */ ?></span> <span> <input type="text" name="PERSONAL_WWW" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_WWW"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_ICQ'); /* ICQ */ ?></span> <span> <input type="text" name="PERSONAL_ICQ" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_ICQ"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_GENDER'); /* пол */ ?></span> <span> <select name="PERSONAL_GENDER"> <option value=""> <?= GetMessage('MAIN_PROFILE_DONT_KNOW'); ?> </option> <option value="M"<?=$arResult["arUser"]["PERSONAL_GENDER"]=="M" ? ' selected="selected"':''?>> <?= GetMessage("USER_MALE"); ?> </option> <option value="F"<?=$arResult["arUser"]["PERSONAL_GENDER"]=="F" ? ' selected="selected"':''?>> <?= GetMessage("USER_FEMALE"); ?> </option> </select> </span> </div> <div> <span> <?= GetMessage('MAIN_PROFILE_USER_BIRTHDAY'); /* день рождения */ ?> (<?= $arResult["DATE_FORMAT"]; ?>) </span> <span> <?php $APPLICATION->IncludeComponent( 'bitrix:main.calendar', '', array( 'SHOW_INPUT' => 'Y', 'FORM_NAME' => 'form1', 'INPUT_NAME' => 'PERSONAL_BIRTHDAY', 'INPUT_VALUE' => $arResult["arUser"]["PERSONAL_BIRTHDAY"], 'SHOW_TIME' => 'N' ), null, array('HIDE_ICONS' => 'Y') ); ?> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_PHOTO'); /* фотография */ ?></span> <span> <?= $arResult["arUser"]["PERSONAL_PHOTO_INPUT"]; ?> <?php if (strlen($arResult["arUser"]["PERSONAL_PHOTO"]) > 0) { echo $arResult["arUser"]["PERSONAL_PHOTO_HTML"]; } ?> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_PHONE'); /* телефон */ ?></span> <span> <input type="text" name="PERSONAL_PHONE" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_PHONE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_FAX'); /* факс */ ?></span> <span> <input type="text" name="PERSONAL_FAX" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_FAX"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_MOBILE'); /* мобильный */ ?></span> <span> <input type="text" name="PERSONAL_MOBILE" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_MOBILE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_PAGER'); /* пейджер */ ?></span> <span> <input type="text" name="PERSONAL_PAGER" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_PAGER"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_COUNTRY'); /* страна */ ?></span> <span><?= $arResult["COUNTRY_SELECT"]; ?></span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_STATE'); /* область */ ?></span> <span> <input type="text" name="PERSONAL_STATE" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_STATE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_CITY'); /* город */ ?></span> <span> <input type="text" name="PERSONAL_CITY" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_CITY"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_ZIP'); /* почтовый индекс */ ?></span> <span> <input type="text" name="PERSONAL_ZIP" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_ZIP"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_STREET'); /* улица */ ?></span> <span> <textarea name="PERSONAL_STREET"><?= $arResult["arUser"]["PERSONAL_STREET"]; ?></textarea> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_MAILBOX'); /* почтовый ящик */ ?></span> <span> <input type="text" name="PERSONAL_MAILBOX" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_MAILBOX"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_NOTES'); /* дополнительные заметки */ ?></span> <span> <textarea name="PERSONAL_NOTES"><?=$arResult["arUser"]["PERSONAL_NOTES"]?></textarea> </span> </div> </section> <section> <h3><?= GetMessage('MAIN_PROFILE_WORK_TITLE'); /* Информация о работе */ ?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_COMPANY'); /* компания */ ?></span> <span> <input type="text" name="WORK_COMPANY" maxlength="255" value="<?= $arResult["arUser"]["WORK_COMPANY"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_WWW'); /* сайт */ ?></span> <span> <input type="text" name="WORK_WWW" maxlength="255" value="<?= $arResult["arUser"]["WORK_WWW"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_DEPARTMENT'); /* отдел */ ?></span> <span> <input type="text" name="WORK_DEPARTMENT" maxlength="255" value="<?= $arResult["arUser"]["WORK_DEPARTMENT"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_POSITION'); /* должность */ ?></span> <span> <input type="text" name="WORK_POSITION" maxlength="255" value="<?= $arResult["arUser"]["WORK_POSITION"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_PROFILE'); /* направление деятельности */ ?></span> <span> <textarea name="WORK_PROFILE"><?= $arResult["arUser"]["WORK_PROFILE"]; ?></textarea> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_LOGO'); /* логотип компании */ ?></span> <span> <?= $arResult["arUser"]["WORK_LOGO_INPUT"]; ?> <?php if (strlen($arResult["arUser"]["WORK_LOGO"]) > 0) { echo $arResult["arUser"]["WORK_LOGO_HTML"]; } ?> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_PHONE'); /* телефон */ ?></span> <span> <input type="text" name="WORK_PHONE" maxlength="255" value="<?= $arResult["arUser"]["WORK_PHONE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_FAX'); /* факс */ ?></span> <span> <input type="text" name="WORK_FAX" maxlength="255" value="<?= $arResult["arUser"]["WORK_FAX"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_PAGER'); /* пейджер */ ?></span> <span> <input type="text" name="WORK_PAGER" maxlength="255" value="<?= $arResult["arUser"]["WORK_PAGER"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_COUNTRY'); /* страна */ ?></span> <span><?= $arResult["COUNTRY_SELECT_WORK"]?></span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_STATE'); /* область */ ?></span> <span> <input type="text" name="WORK_STATE" maxlength="255" value="<?= $arResult["arUser"]["WORK_STATE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_CITY'); /* город */ ?></span> <span> <input type="text" name="WORK_CITY" maxlength="255" value="<?= $arResult["arUser"]["WORK_CITY"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_ZIP'); /* почтовый индекс */ ?></span> <span> <input type="text" name="WORK_ZIP" maxlength="255" value="<?= $arResult["arUser"]["WORK_ZIP"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_STREET'); /* улица */ ?></span> <span> <textarea name="WORK_STREET"><?= $arResult["arUser"]["WORK_STREET"]; ?></textarea> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_MAILBOX'); /* почтовый ящик */ ?></span> <span> <input type="text" name="WORK_MAILBOX" maxlength="255" value="<?= $arResult["arUser"]["WORK_MAILBOX"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_NOTES'); /* дополнительные заметки */ ?></span> <span> <textarea name="WORK_NOTES"><?= $arResult["arUser"]["WORK_NOTES"]; ?></textarea> </span> </div> </section> <?php if ($arResult["INCLUDE_FORUM"] == "Y"): /* если на сайте есть форум */ ?> <section> <h3><?= GetMessage('MAIN_PROFILE_FORUM_TITLE'); ?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_FORUM_SHOW_NAME'); ?></span> <span> <input type="hidden" name="forum_SHOW_NAME" value="N" /> <input type="checkbox" name="forum_SHOW_NAME" value="Y" <?php if ($arResult["arForumUser"]["SHOW_NAME"]=="Y") echo 'checked="checked"';?> /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_FORUM_DESCRIPTION'); ?></span> <span> <input type="text" name="forum_DESCRIPTION" maxlength="255" value="<?= $arResult["arForumUser"]["DESCRIPTION"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_FORUM_INTERESTS'); ?></span> <span> <textarea name="forum_INTERESTS"><?= $arResult["arForumUser"]["INTERESTS"]; ?></textarea> </span> </div> <div> <span><?= GetMessage($MESS['MAIN_PROFILE_FORUM_SIGNATURE']); ?></span> <span> <textarea name="forum_SIGNATURE"><?= $arResult["arForumUser"]["SIGNATURE"]; ?></textarea> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_FORUM_AVATAR'); ?></span> <span> <?= $arResult["arForumUser"]["AVATAR_INPUT"]; ?> <?php if (strlen($arResult["arForumUser"]["AVATAR"]) > 0) { echo $arResult["arForumUser"]["AVATAR_HTML"]; } ?> </span> </div> </section> <?php endif; ?> <?php if ($arResult["INCLUDE_BLOG"] == "Y"): /* если на сайте есть блог */ ?> <section> <h3><?= GetMessage('MAIN_PROFILE_BLOG_TITLE'); ?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_BLOG_ALIAS')?></span> <span> <input type="text" name="blog_ALIAS" maxlength="255" value="<?= $arResult["arBlogUser"]["ALIAS"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_BLOG_DESCRIPTION'); ?></span> <span> <input type="text" name="blog_DESCRIPTION" maxlength="255" value="<?= $arResult["arBlogUser"]["DESCRIPTION"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_BLOG_INTERESTS')?></span> <span> <textarea name="blog_INTERESTS"><?= $arResult["arBlogUser"]["INTERESTS"]; ?></textarea> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_BLOG_AVATAR')?></span> <span> <?= $arResult["arBlogUser"]["AVATAR_INPUT"]; ?> <?php if (strlen($arResult["arBlogUser"]["AVATAR"]) > 0) { echo $arResult["arBlogUser"]["AVATAR_HTML"]; } ?> </span> </div> </section> <?php endif; ?> <?php if ($arResult["INCLUDE_LEARNING"] == "Y"): /* профиль студента */ ?> <section> <h3><?= GetMessage('MAIN_PROFILE_STUDENT_TITLE')?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_STUDENT_PUBLIC');?>:</span> <span> <input type="hidden" name="student_PUBLIC_PROFILE" value="N" /> <input type="checkbox" name="student_PUBLIC_PROFILE" value="Y" <?php if ($arResult["arStudent"]["PUBLIC_PROFILE"]=="Y") echo 'checked="checked"'; ?> /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_STUDENT_RESUME'); ?></span> <span> <textarea name="student_RESUME"><?= $arResult["arStudent"]["RESUME"]; ?></textarea> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_STUDENT_TRANSCRIPT'); ?></span> <span><?= $arResult["arStudent"]["TRANSCRIPT"]; ?>-<?= $arResult["ID"]; ?></span> </div> </section> <?php endif; ?> <?php if ($arResult["IS_ADMIN"]): /* если это администратор */ ?> <section> <h3><?= GetMessage('MAIN_PROFILE_ADMIN_NOTES'); ?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_ADMIN_NOTES'); ?></span> <span> <textarea name="ADMIN_NOTES"><?= $arResult["arUser"]["ADMIN_NOTES"]; ?></textarea> </span> </div> </section> <?php endif; ?> <?php /***** Пользовательские свойства *****/ ?> <?php if ($arResult["USER_PROPERTIES"]["SHOW"] == "Y"): ?> <section> <h3> <?= strlen(trim($arParams["USER_PROPERTY_NAME"])) > 0 ? $arParams["USER_PROPERTY_NAME"] : GetMessage("USER_TYPE_EDIT_TAB"); ?> </h3> <?php foreach ($arResult["USER_PROPERTIES"]["DATA"] as $FIELD_NAME => $arUserField):?> <div> <span> <?php if ($arUserField["MANDATORY"]=="Y"): ?> <i>*</i> <!-- поле обязательно для заполнения --> <?php endif; ?> <?= $arUserField["EDIT_FORM_LABEL"]; ?> </span> <span> <?php $APPLICATION->IncludeComponent( "bitrix:system.field.edit", $arUserField["USER_TYPE"]["USER_TYPE_ID"], array( "bVarsFromForm" => $arResult["bVarsFromForm"], "arUserField" => $arUserField ), null, array("HIDE_ICONS"=>"Y") ); ?> </span> </div> <?php endforeach; ?> </section> <?php endif; ?> <?php /***** /Пользовательские свойства *****/ ?> <div class="submit"> <input type="submit" name="save" value="<?= GetMessage('MAIN_PROFILE_FORM_SUBMIT'); ?>"> <input type="reset" value="<?= GetMessage('MAIN_PROFILE_FORM_RESET'); ?>"> </p> </form> <p><?= $arResult["GROUP_POLICY"]["PASSWORD_REQUIREMENTS"]; /* сообщение о min длине пароля */ ?></p> <p><i>*</i> <?= GetMessage('MAIN_PROFILE_FORM_REQUIRED'); /* Эти поля обязательны для заполнения */ ?></p> <?php if ($arResult["SOCSERV_ENABLED"]) { $APPLICATION->IncludeComponent( // связать этот профиль с профилями в социальных сетях "bitrix:socserv.auth.split", ".default", array( "SHOW_PROFILES" => "Y", "ALLOW_DELETE" => "Y" ), false ); } ?> </div>
Полей слишком много, поэтому часть из них я удалил. Кроме того, удалил профили для форума и блога. Переделал языковый файл и добавил стили.
<?php /* * Файл local/templates/.default/components/bitrix/main.profile/.default/lang/ru/template.php */ $MESS['MAIN_PROFILE_FORM_TITLE'] = 'Профиль пользователя'; $MESS['MAIN_PROFILE_DATA_SAVED'] = 'Изменения сохранены'; $MESS['MAIN_PROFILE_FORM_SUBMIT'] = 'Сохранить'; $MESS['MAIN_PROFILE_FORM_RESET'] = 'Сбросить'; $MESS['MAIN_PROFILE_FORM_REQUIRED'] = 'Эти поля обязательны для заполнения'; $MESS['MAIN_PROFILE_LAST_UPDATE'] = 'Дата обновления'; $MESS['MAIN_PROFILE_LAST_LOGIN'] = 'Последняя авторизация'; $MESS['MAIN_PROFILE_DONT_KNOW'] = 'Нет данных'; // заголовки разделов профиля пользователя $MESS['MAIN_PROFILE_REGISTER_TITLE'] = 'Регистрационные данные'; $MESS['MAIN_PROFILE_PERSONAL_TITLE'] = 'Личные данные'; $MESS['MAIN_PROFILE_WORK_TITLE'] = 'Информация о работе'; $MESS['MAIN_PROFILE_FORUM_TITLE'] = 'Профиль на форуме'; $MESS['MAIN_PROFILE_BLOG_TITLE'] = 'Профиль в блоге'; $MESS['MAIN_PROFILE_STUDENT_TITLE'] = 'Профиль студента'; $MESS['MAIN_PROFILE_ADMIN_NOTES'] = 'Заметки администратора'; // раздел: Профиль пользователя $MESS['MAIN_PROFILE_REG_TITLE'] = 'Обращение'; $MESS['MAIN_PROFILE_REG_FNAME'] = 'Имя'; $MESS['MAIN_PROFILE_REG_LNAME'] = 'Фамилия'; $MESS['MAIN_PROFILE_REG_SNAME'] = 'Отчество'; $MESS['MAIN_PROFILE_REG_EMAIL'] = 'E-mail'; $MESS['MAIN_PROFILE_REG_LOGIN'] = 'Логин'; $MESS['MAIN_PROFILE_REG_PASSWORD'] = 'Новый пароль'; $MESS['MAIN_PROFILE_REG_CONFIRM'] = 'Подтверждение пароля'; // раздел: Личные данные $MESS['MAIN_PROFILE_USER_PROFESSION'] = 'Профессия'; $MESS['MAIN_PROFILE_USER_WWW'] = 'Сайт'; $MESS['MAIN_PROFILE_USER_ICQ'] = 'ICQ'; $MESS['MAIN_PROFILE_USER_GENDER'] = 'Пол'; $MESS['MAIN_PROFILE_USER_MALE'] = 'Мужской'; $MESS['MAIN_PROFILE_USER_FEMALE'] = 'Женский'; $MESS['MAIN_PROFILE_USER_BIRTHDAY'] = 'Дата рождения'; $MESS['MAIN_PROFILE_USER_PHOTO'] = 'Фотография'; $MESS['MAIN_PROFILE_USER_PHONE'] = 'Телефон'; $MESS['MAIN_PROFILE_USER_FAX'] = 'Факс'; $MESS['MAIN_PROFILE_USER_MOBILE'] = 'Мобильный'; $MESS['MAIN_PROFILE_USER_PAGER'] = 'Пейджер'; $MESS['MAIN_PROFILE_USER_PHONES'] = 'Телефоны'; $MESS['MAIN_PROFILE_USER_ADDRESS'] = 'Почтовый адрес'; $MESS['MAIN_PROFILE_USER_COUNTRY'] = 'Страна'; $MESS['MAIN_PROFILE_USER_CITY'] = 'Город'; $MESS['MAIN_PROFILE_USER_ZIP'] = 'Почтовый индекс'; $MESS['MAIN_PROFILE_USER_STREET'] = 'Улица, дом'; $MESS['MAIN_PROFILE_USER_STATE'] = 'Область / край'; $MESS['MAIN_PROFILE_USER_MAILBOX'] = 'Почтовый ящик'; $MESS['MAIN_PROFILE_USER_NOTES'] = 'Дополнительные заметки'; // раздел: Информация о работе $MESS['MAIN_PROFILE_WORK_COMPANY'] = 'Наименование компании'; $MESS['MAIN_PROFILE_WORK_WWW'] = 'Сайт компании'; $MESS['MAIN_PROFILE_WORK_DEPARTMENT'] = 'Департамент / Отдел'; $MESS['MAIN_PROFILE_WORK_POSITION'] = 'Должность'; $MESS['MAIN_PROFILE_WORK_PROFILE'] = 'Направление деятельности'; $MESS['MAIN_PROFILE_WORK_LOGO'] = 'Логотип компании'; $MESS['MAIN_PROFILE_WORK_PHONE'] = 'Телефон'; $MESS['MAIN_PROFILE_WORK_FAX'] = 'Факс'; $MESS['MAIN_PROFILE_WORK_MOBILE'] = 'Мобильный'; $MESS['MAIN_PROFILE_WORK_PAGER'] = 'Пейджер'; $MESS['MAIN_PROFILE_WORK_PHONES'] = 'Телефоны'; $MESS['MAIN_PROFILE_WORK_ADDRESS'] = 'Почтовый адрес'; $MESS['MAIN_PROFILE_WORK_COUNTRY'] = 'Страна'; $MESS['MAIN_PROFILE_WORK_CITY'] = 'Город'; $MESS['MAIN_PROFILE_WORK_ZIP'] = 'Почтовый индекс'; $MESS['MAIN_PROFILE_WORK_STREET'] = 'Улица, дом'; $MESS['MAIN_PROFILE_WORK_STATE'] = 'Область / край'; $MESS['MAIN_PROFILE_WORK_MAILBOX'] = 'Почтовый ящик'; $MESS['MAIN_PROFILE_WORK_NOTES'] = 'Дополнительные заметки'; // раздел: Профиль на форуме $MESS['MAIN_PROFILE_FORUM_SHOW_NAME'] = 'Показывать имя'; $MESS['MAIN_PROFILE_FORUM_DESCRIPTION'] = 'Пояснение'; $MESS['MAIN_PROFILE_FORUM_INTERESTS'] = 'Интересы'; $MESS['MAIN_PROFILE_FORUM_SIGNATURE'] = 'Подпись'; $MESS['MAIN_PROFILE_FORUM_AVATAR'] = 'Аватар'; // раздел: Профиль в блоге $MESS['MAIN_PROFILE_BLOG_ALIAS'] = 'Псевдоним'; $MESS['MAIN_PROFILE_BLOG_DESCRIPTION'] = 'Пояснение'; $MESS['MAIN_PROFILE_BLOG_INTERESTS'] = 'Интересы'; $MESS['MAIN_PROFILE_BLOG_AVATAR'] = 'Аватар'; // раздел: Профиль студента $MESS['MAIN_PROFILE_STUDENT_PUBLIC'] = 'Разрешить публичный доступ'; $MESS['MAIN_PROFILE_STUDENT_RESUME'] = 'Резюме'; $MESS['MAIN_PROFILE_STUDENT_TRANSCRIPT'] = 'Transcript';
<?php /* * Файл local/templates/.default/components/bitrix/main.profile/.default/template.php */ if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die(); ?> <div class="bitrix-main-profile"> <h2><?= GetMessage('MAIN_PROFILE_FORM_TITLE'); /* Заголовок формы */ ?></h2> <?php ShowError($arResult["strProfileError"]); /* сообщения об ошибках */ ?> <?php if ($arResult['DATA_SAVED'] == 'Y') { // сообщение об успешном сохранении данных ShowNote(GetMessage('PROFILE_DATA_SAVED')); } ?> <form method="post" name="form1" action="<?= $arResult["FORM_TARGET"]; ?>" enctype="multipart/form-data"> <?= $arResult["BX_SESSION_CHECK"]; ?> <input type="hidden" name="lang" value="<?= LANG; ?>" /> <input type="hidden" name="ID" value=<?= $arResult["ID"]; ?> /> <!-- в качестве логина используется e-mail --> <input type="hidden" name="LOGIN" maxlength="50" value="<?= $arResult["arUser"]["EMAIL"]; ?>" /> <section class="clearfix"> <h3><?= GetMessage('MAIN_PROFILE_REGISTER_TITLE'); /* Регистрационные данные */ ?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_REG_FNAME'); /* имя */ ?></span> <span> <input type="text" name="NAME" maxlength="50" value="<?= $arResult["arUser"]["NAME"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_REG_LNAME'); /* фамилия */ ?></span> <span> <input type="text" name="LAST_NAME" maxlength="50" value="<?= $arResult["arUser"]["LAST_NAME"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_REG_SNAME'); /* отчество */ ?></span> <span> <input type="text" name="SECOND_NAME" maxlength="50" value="<?= $arResult["arUser"]["SECOND_NAME"]; ?>" /> </span> </div> <div> <span> <?= GetMessage('MAIN_PROFILE_REG_EMAIL'); /* e-mail */ ?> <?php if ($arResult["EMAIL_REQUIRED"]): ?> <i>*</i> <!-- поле обязательно для заполнения --> <?php endif; ?> </span> <span> <input type="text" name="EMAIL" maxlength="50" value="<?= $arResult["arUser"]["EMAIL"]; ?>" /> </span> </div> <?php if ($arResult["arUser"]["EXTERNAL_AUTH_ID"] == ''): /* если авторизация не через внешние сервисы */ ?> <div> <span><?= GetMessage('MAIN_PROFILE_REG_PASSWORD'); /* новый пароль */ ?></span> <span><input type="password" name="NEW_PASSWORD" maxlength="50" value="" autocomplete="off" /></span> <?php if ($arResult["SECURE_AUTH"]): /* безопасная авторизация (зашифрованная передача пароля) */ ?> <!-- код удален --> <?php endif; ?> </div> <div> <span><?= GetMessage('MAIN_PROFILE_REG_CONFIRM'); /* подтверждение пароля */ ?></span> <span> <input type="password" name="NEW_PASSWORD_CONFIRM" maxlength="50" value="" autocomplete="off" /> </span> </div> <?php endif; ?> </section> <section class="clearfix"> <h3><?= GetMessage('MAIN_PROFILE_PERSONAL_TITLE'); /* Личные данные */ ?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_USER_PROFESSION'); /* профессия */ ?></span> <span> <input type="text" name="PERSONAL_PROFESSION" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_PROFESSION"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_WWW'); /* сайт */ ?></span> <span> <input type="text" name="PERSONAL_WWW" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_WWW"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_ICQ'); /* ICQ */ ?></span> <span> <input type="text" name="PERSONAL_ICQ" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_ICQ"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_GENDER'); /* пол */ ?></span> <span> <select name="PERSONAL_GENDER"> <option value=""> <?= GetMessage('MAIN_PROFILE_DONT_KNOW'); ?> </option> <option value="M"<?=$arResult["arUser"]["PERSONAL_GENDER"]=="M" ? ' selected="selected"':''?>> <?= GetMessage('MAIN_PROFILE_USER_MALE'); ?> </option> <option value="F"<?=$arResult["arUser"]["PERSONAL_GENDER"]=="F" ? ' selected="selected"':''?>> <?= GetMessage('MAIN_PROFILE_USER_FEMALE'); ?> </option> </select> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_PHONE'); /* телефон */ ?></span> <span> <input type="text" name="PERSONAL_PHONE" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_PHONE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_MOBILE'); /* мобильный */ ?></span> <span> <input type="text" name="PERSONAL_MOBILE" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_MOBILE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_COUNTRY'); /* страна */ ?></span> <span><?= $arResult["COUNTRY_SELECT"]; ?></span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_STATE'); /* область */ ?></span> <span> <input type="text" name="PERSONAL_STATE" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_STATE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_CITY'); /* город */ ?></span> <span> <input type="text" name="PERSONAL_CITY" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_CITY"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_ZIP'); /* почтовый индекс */ ?></span> <span> <input type="text" name="PERSONAL_ZIP" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_ZIP"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_STREET'); /* улица */ ?></span> <span> <input type="text" name="PERSONAL_STREET" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_STREET"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_USER_NOTES'); /* дополнительные заметки */ ?></span> <span> <input type="text" name="PERSONAL_NOTES" maxlength="255" value="<?= $arResult["arUser"]["PERSONAL_NOTES"];?>" /> </span> </div> </section> <section class="clearfix"> <h3><?= GetMessage('MAIN_PROFILE_WORK_TITLE'); /* Информация о работе */ ?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_COMPANY'); /* компания */ ?></span> <span> <input type="text" name="WORK_COMPANY" maxlength="255" value="<?= $arResult["arUser"]["WORK_COMPANY"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_WWW'); /* сайт */ ?></span> <span> <input type="text" name="WORK_WWW" maxlength="255" value="<?= $arResult["arUser"]["WORK_WWW"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_DEPARTMENT'); /* отдел */ ?></span> <span> <input type="text" name="WORK_DEPARTMENT" maxlength="255" value="<?= $arResult["arUser"]["WORK_DEPARTMENT"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_POSITION'); /* должность */ ?></span> <span> <input type="text" name="WORK_POSITION" maxlength="255" value="<?= $arResult["arUser"]["WORK_POSITION"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_PROFILE'); /* направление деятельности */ ?></span> <span> <input type="text" name="WORK_PROFILE" maxlength="255" value="<?= $arResult["arUser"]["WORK_PROFILE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_PHONE'); /* телефон */ ?></span> <span> <input type="text" name="WORK_PHONE" maxlength="255" value="<?= $arResult["arUser"]["WORK_PHONE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_COUNTRY'); /* страна */ ?></span> <span><?= $arResult["COUNTRY_SELECT_WORK"]?></span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_STATE'); /* область */ ?></span> <span> <input type="text" name="WORK_STATE" maxlength="255" value="<?= $arResult["arUser"]["WORK_STATE"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_CITY'); /* город */ ?></span> <span> <input type="text" name="WORK_CITY" maxlength="255" value="<?= $arResult["arUser"]["WORK_CITY"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_ZIP'); /* почтовый индекс */ ?></span> <span> <input type="text" name="WORK_ZIP" maxlength="255" value="<?= $arResult["arUser"]["WORK_ZIP"]; ?>" /> </span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_STREET'); /* улица */ ?></span> <span><input type="text" name="WORK_STREET" maxlength="255" value="<?= $arResult["arUser"]["WORK_STREET"]; ?>" /></span> </div> <div> <span><?= GetMessage('MAIN_PROFILE_WORK_NOTES'); /* дополнительные заметки */ ?></span> <span> <input type="text" name="WORK_NOTES" maxlength="255" value="<?= $arResult["arUser"]["WORK_NOTES"]; ?>" /> </span> </div> </section> <?php if ($arResult["IS_ADMIN"]): /* если это администратор */ ?> <section class="admin-notes clearfix"> <h3><?= GetMessage('MAIN_PROFILE_ADMIN_NOTES'); ?></h3> <div> <span><?= GetMessage('MAIN_PROFILE_ADMIN_NOTES'); ?></span> <span><textarea name="ADMIN_NOTES"><?= $arResult["arUser"]["ADMIN_NOTES"]; ?></textarea></span> </div> </section> <?php endif; ?> <?php /***** Пользовательские свойства *****/ ?> <?php if ($arResult["USER_PROPERTIES"]["SHOW"] == "Y"): ?> <section class="clearfix"> <h3> <?= strlen(trim($arParams["USER_PROPERTY_NAME"])) > 0 ? $arParams["USER_PROPERTY_NAME"] : GetMessage("USER_TYPE_EDIT_TAB"); ?> </h3> <?php foreach ($arResult["USER_PROPERTIES"]["DATA"] as $FIELD_NAME => $arUserField):?> <div> <span> <?php if ($arUserField["MANDATORY"]=="Y"): ?> <i>*</i> <!-- поле обязательно для заполнения --> <?php endif; ?> <?= $arUserField["EDIT_FORM_LABEL"]; ?> </span> <span> <?php $APPLICATION->IncludeComponent( "bitrix:system.field.edit", $arUserField["USER_TYPE"]["USER_TYPE_ID"], array( "bVarsFromForm" => $arResult["bVarsFromForm"], "arUserField" => $arUserField ), null, array("HIDE_ICONS"=>"Y") ); ?> </span> </div> <?php endforeach; ?> </section> <?php endif; ?> <?php /***** /Пользовательские свойства *****/ ?> <div> <input type="submit" name="save" value="<?= GetMessage('MAIN_PROFILE_FORM_SUBMIT'); ?>"> <input type="reset" value="<?= GetMessage('MAIN_PROFILE_FORM_RESET'); ?>"> </div> </form> <p><?= $arResult["GROUP_POLICY"]["PASSWORD_REQUIREMENTS"]; /* сообщение о min длине пароля */ ?></p> <p><i>*</i> <?= GetMessage('MAIN_PROFILE_FORM_REQUIRED'); /* Эти поля обязательны для заполнения */ ?></p> </div>
/*
* Файл local/templates/.default/components/bitrix/main.profile/.default/style.css
*/
.bitrix-main-profile {
}
.bitrix-main-profile > p {
margin: 1em 0;
}
.bitrix-main-profile > h2 {
margin-bottom: 30px;
}
.bitrix-main-profile > p > a {
text-decoration: underline;
}
.bitrix-main-profile > form {
}
.bitrix-main-profile > form > section {
border: 1px solid #ccc;
padding: 15px 10px 0 10px;
margin-bottom: 40px;
position: relative;
}
.bitrix-main-profile > form > section > h3 {
font-size: 18px;
position: absolute;
top: -13px;
background: #eee;
padding: 0 10px;
color: #999;
}
.bitrix-main-profile > form > section > div {
width: 50%;
margin-bottom: 15px;
float: left;
box-sizing: border-box;
}
.bitrix-main-profile > form > section > div:nth-of-type(even) {
padding-left: 1%;
}
.bitrix-main-profile > form > section > div:nth-of-type(odd) {
padding-right: 1%;
}
.bitrix-main-profile > form > section > div > span {
display: block;
}
.bitrix-main-profile > form > section > div > span:first-child {
margin-bottom: 5px;
}
.bitrix-main-profile > form > section > div > span input[type="text"],
.bitrix-main-profile > form > section > div > span input[type="password"],
.bitrix-main-profile > form > section > div > span select {
width: 100%;
padding: 5px;
border: 1px solid #ccc;
height: 30px;
}
.bitrix-main-profile > form > section:last-of-type {
margin-bottom: 20px;
}
.bitrix-main-profile > form > section.admin-notes > div {
width: 100%;
}
.bitrix-main-profile > form > section.admin-notes > div > span > textarea {
width: 100%;
}
.bitrix-main-profile > form > div > input[type="submit"],
.bitrix-main-profile > form > div > input[type="reset"] {
width: 15%;
padding: 5px;
background: #333;
color: #fff;
border: none;
margin-top: 10px;
}
.bitrix-main-profile i {
font-style: normal;
font-weight: bold;
color: #f00;
}
И вот что получилось в результате:
Добавим ссылку на профиль пользователя в файл /auth/index.php
:
<?php // обратите внимание на эту константу define("NEED_AUTH", true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Авторизация и регистрация"); ?> <p>Вы зарегистрированы и успешно авторизовались.</p> <p><a href="/auth/profile.php">Мой профиль</a></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.form
Этот компонент предназначен для размещения формы авторизации в любом месте шаблона сайта: в шапке сайта, в левой или правой колонке. Чтобы пользователю не надо было переходить на страницу авторизации, а он мог авторизоваться на любой странице сайта. Пример вызова компонента
$APPLICATION->IncludeComponent( "bitrix:system.auth.form", "", array( "FORGOT_PASSWORD_URL" => "/auth/", // Страница забытого пароля "PROFILE_URL" => "/auth/profile.php", // Страница профиля "REGISTER_URL" => "/auth/", // Страница регистрации "SHOW_ERRORS" => "Y", // Показывать ошибки ) );
Я размещу вызов компонента в шаблоне главной страницы, в правой колонке, после формы поиска:
Теперь скопируем шаблон компонента и оформим под наш дизайн:
- откуда:
bitrix/components/bitrix/system.auth.form/templates/.default
- куда:
local/templates/.default/components/bitrix/system.auth.form/.default
После внесения изменений шаблон имеет вид:
<?php /* * Файл local/templates/.default/components/bitrix/system.auth.form/.default/template.php */ if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); CJSCore::Init(); ?> <div class="system-auth-form"> <h3><?= GetMessage('SYS_AUTH_FORM_TITLE'); /* заголовок формы */ ?></h3> <?php // сообщения об ошибках при заполнении формы if ($arResult['SHOW_ERRORS'] == 'Y' && $arResult['ERROR']) { ShowMessage($arResult['ERROR_MESSAGE']); } ?> <?php if ($arResult["FORM_TYPE"] == "login"): /* пользователь не авторизован, показываем форму авторизации */ ?> <form name="system_auth_form<?= $arResult["RND"]; ?>" method="post" target="_top" action="<?= $arResult["AUTH_URL"]; ?>"> <?php if ($arResult["BACKURL"] <> ''): ?> <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; ?> <input type="hidden" name="AUTH_FORM" value="Y" /> <input type="hidden" name="TYPE" value="AUTH" /> <div> <span> <?= GetMessage('SYS_AUTH_FORM_LOGIN'); /* поле логин */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="text" name="USER_LOGIN" maxlength="50" value="" /> </span> </div> <script> BX.ready(function() { var loginCookie = BX.getCookie("<?= CUtil::JSEscape($arResult["~LOGIN_COOKIE_NAME"]); ?>"); if (loginCookie) { var form = document.forms["system_auth_form<?= $arResult["RND"]; ?>"]; var loginInput = form.elements["USER_LOGIN"]; loginInput.value = loginCookie; } }); </script> <div> <span> <?= GetMessage('SYS_AUTH_FORM_PASSWORD'); /* поле пароль */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="password" name="USER_PASSWORD" maxlength="50" autocomplete="off" /> </span> </div> <?php if ($arResult["SECURE_AUTH"]): /* безопасная авторизация (зашифрованная передача пароля пользователя) */ ?> <!-- код удален --> <?php endif?> <?php if ($arResult["CAPTCHA_CODE"]): /* если используется CAPTCHA */ ?> <div class="captcha"> <h4><?php echo GetMessage('SYS_AUTH_FORM_CAPTCHA_TITLE'); /* Защита от роботов */ ?></h4> <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_FORM_CAPTCHA_TEXT'); /* введите код с картинки */ ?> <i>*</i> <!-- поле обязательно для заполнения --> </span> <span> <input type="text" name="captcha_word" maxlength="50" value="" /> </span> </div> <?php endif; ?> <?php if ($arResult["STORE_PASSWORD"] == "Y"): /* checkbox «Запомнить меня» */ ?> <div class="remember"> <input type="checkbox" id="USER_REMEMBER_frm" name="USER_REMEMBER" value="Y" /> <label for="USER_REMEMBER_frm"><?= GetMessage('SYS_AUTH_FORM_REMEMBER'); ?></label> </div> <?php endif; ?> <div class="submit"> <input type="submit" name="Login" value="<?= GetMessage('SYS_AUTH_FORM_SUBMIT_LOGIN'); /* кнопка отправки формы */ ?>" /> </div> </form> <?php if ($arResult["NEW_USER_REGISTRATION"] == "Y"): /* ссылка на страницу регистрации */ ?> <p> <a href="<?= $arResult["AUTH_REGISTER_URL"]; ?>" rel="nofollow"> <?= GetMessage('SYS_AUTH_FORM_REG_USER'); ?> </a> </p> <?php endif?> <p> <a href="<?= $arResult["AUTH_FORGOT_PASSWORD_URL"]; ?>" rel="nofollow"> <?= GetMessage('SYS_AUTH_FORM_FORGOT'); /* ссылка на страницу восстановления пароля */ ?> </a> </p> <?php else: /* пользователь авторизован, показываем имя и логин пользователя, ссылку на профиль и кнопку выхода */ ?> <p><?= $arResult["USER_NAME"]; /* имя пользователя */ ?></p> <p><?= $arResult["USER_LOGIN"]; /* логин пользователя */ ?></p> <p> <a href="<?= $arResult["PROFILE_URL"]; ?>"> <?= GetMessage('SYS_AUTH_FORM_PROFILE'); /* ссылка на профиль */ ?> </a> </p> <form action="<?= $arResult["AUTH_URL"]; ?>"> <?php foreach ($arResult["GET"] as $key => $value): /* передача полученных GET-параметров */ ?> <input type="hidden" name="<?= $key; ?>" value="<?= $value; ?>" /> <?php endforeach; ?> <input type="hidden" name="logout" value="yes" /> <div class="submit"> <input type="submit" name="logout_butt" value="<?= GetMessage('SYS_AUTH_FORM_SUBMIT_LOGOUT'); /* кнопка отправки формы */ ?>" /> </div> </form> <?php endif; ?> </div>
<?php /* * Файл local/templates/.default/components/bitrix/system.auth.form/.default/lang/ru/template.php */ $MESS['SYS_AUTH_FORM_TITLE'] = 'Личный кабинет'; // авторизация теперь по e-mail $MESS['SYS_AUTH_FORM_LOGIN'] = 'E-mail'; $MESS['SYS_AUTH_FORM_PASSWORD'] = 'Пароль'; $MESS['SYS_AUTH_FORM_REMEMBER'] = 'Запомнить меня'; $MESS['SYS_AUTH_FORM_CAPTCHA_TITLE'] = 'Защита от роботов'; $MESS['SYS_AUTH_FORM_CAPTCHA_TEXT'] = 'Введите символы с картинки'; $MESS['SYS_AUTH_FORM_SUBMIT_LOGIN'] = 'Войти'; $MESS['SYS_AUTH_FORM_SUBMIT_LOGOUT'] = 'Выйти'; $MESS['SYS_AUTH_FORM_REG_USER'] = 'Зарегистрироваться'; $MESS['SYS_AUTH_FORM_FORGOT'] = 'Забыли пароль?'; $MESS['SYS_AUTH_FORM_PROFILE'] = 'Мой профиль';
/*
* Файл local/templates/.default/components/bitrix/system.auth.form/.default/style.css
*/
.system-auth-form {
margin-top: 15px;
}
.system-auth-form > p {
margin: 5px 0;
}
.system-auth-form > h3 {
margin-bottom: 10px;
}
.system-auth-form > p > a {
text-decoration: underline;
}
.system-auth-form > form > div {
margin-bottom: 5px;
}
.system-auth-form > form > div > span {
display: block;
}
.system-auth-form > form > div > span:first-child {
margin-bottom: 2px;
}
.system-auth-form > form > div > span > input[type="text"],
.system-auth-form > form > div > span > input[type="password"] {
width: 100%;
padding: 3px;
border: 1px solid #ccc;
}
.system-auth-form > form > div.captcha {
border: 1px solid #ccc;
padding: 15px 10px 10px 10px;
position: relative;
margin-top: 15px;
}
.system-auth-form > form > div.captcha > h4 {
position: absolute;
top: -10px;
font-weight: normal;
font-size: 16px;
background: #eee;
padding: 0 10px;
color: #999;
}
.system-auth-form > form > div.captcha > span:first-of-type {
margin-top: 10px;
}
.system-auth-form > form > div.remember label {
font-weight: normal;
cursor: pointer;
border-bottom: 1px dashed #333;
position: relative;
top: -3px;
margin-left: 5px;
}
.system-auth-form > form > div.submit > input[type="submit"] {
width: 50%;
padding: 5px;
background: #333;
color: #fff;
border: none;
margin-top: 10px;
}
.system-auth-form i {
font-style: normal;
font-weight: bold;
color: #f00;
}
- Битрикс. Регистрация и авторизация. Часть 2 из 3
- Битрикс. Регистрация и авторизация. Часть 1 из 3
- Битрикс. Как переместить фильтр в шаблоне
- Битрикс. Форма обратной связи
- Битрикс. Поиск на сайте
- Битрикс. Создание комплексного компонента. Часть 4 из 4
- Битрикс. Создание комплексного компонента. Часть 3 из 4
Поиск: CMS • Web-разработка • Авторизация • Битрикс • Компонент • Регистрация • Форма • Шаблон компонента • Шаблон сайта