Профиль пользователя - main.profile
Компонент Профиль пользователя позволяет вывести в публичную часть сайта информацию о пользователе. Некоторые поля пользователь может отредактировать. В визуальном редакторе компонент расположен по пути: Служебные -> Пользователь -> Параметры пользователя
.
Пример вызова компонента 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
и разместим на ней вызов компонента «Профиль пользователя»:
<?
/*
* Файл /auth/profile.php
*/
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Профиль пользователя");
?>
<?
$APPLICATION->IncludeComponent(
"bitrix:main.profile",
"",
array(
"CHECK_RIGHTS" => "N", // Проверять права доступа
"SEND_INFO" => "N", // Генерировать почтовое событие
"SET_TITLE" => "N", // Устанавливать заголовок страницы
"USER_PROPERTY" => "", // Показывать доп. свойства
"USER_PROPERTY_NAME" => "", // Название закладки с доп. свойствами
),
false
);
?>
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>
Скопируем шаблон компонента:
- Откуда:
bitrix/components/bitrix/main.profile/templates/.default
- Куда:
local/templates/название_сайта/components/bitrix/main.profile/.default
Полей слишком много, поэтому часть из них я удалил. Кроме того, удалил профили для форума и блога. Переделал языковый файл и добавил стили. После разгребания табличной верстки от разработчиков Битрикс, получился такой шаблон:
<?
/*
* Файл local/templates/название_сайта/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>
<? ShowError($arResult["strProfileError"]); /* сообщения об ошибках */ ?>
<?
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 */ ?>
<? if ($arResult["EMAIL_REQUIRED"]): ?>
<i>*</i> <!-- поле обязательно для заполнения -->
<? 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>
<? 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>
<? if ($arResult["SECURE_AUTH"]): /* безопасная авторизация */ ?>
<!-- код удален -->
<? 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>
<? 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>
<?
$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"]; ?>
<?
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"]; ?>
<?
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>
<? 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"
<? 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"]; ?>
<?
if (strlen($arResult["arForumUser"]["AVATAR"]) > 0) {
echo $arResult["arForumUser"]["AVATAR_HTML"];
}
?>
</span>
</div>
</section>
<? endif; ?>
<? 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"]; ?>
<?
if (strlen($arResult["arBlogUser"]["AVATAR"]) > 0) {
echo $arResult["arBlogUser"]["AVATAR_HTML"];
}
?>
</span>
</div>
</section>
<? endif; ?>
<? 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"
<? 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>
<? endif; ?>
<? 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>
<? endif; ?>
<? /***** Пользовательские свойства *****/ ?>
<? 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>
<? foreach ($arResult["USER_PROPERTIES"]["DATA"] as $FIELD_NAME => $arUserField):?>
<div>
<span>
<? if ($arUserField["MANDATORY"]=="Y"): ?>
<i>*</i> <!-- поле обязательно для заполнения -->
<? endif; ?>
<?= $arUserField["EDIT_FORM_LABEL"]; ?>
</span>
<span>
<?
$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>
<? endforeach; ?>
</section>
<? endif; ?>
<? /***** /Пользовательские свойства *****/ ?>
<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>
<?
if ($arResult["SOCSERV_ENABLED"]) {
$APPLICATION->IncludeComponent( // связать этот профиль с профилями в социальных сетях
"bitrix:socserv.auth.split",
".default",
array(
"SHOW_PROFILES" => "Y",
"ALLOW_DELETE" => "Y"
),
false
);
}
?>
</div>
<?
/*
* Файл local/templates/название_сайта/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';
<?
/*
* Файл local/templates/название_сайта/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>
<? ShowError($arResult["strProfileError"]); /* сообщения об ошибках */ ?>
<?
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 */ ?>
<? if ($arResult["EMAIL_REQUIRED"]): ?>
<i>*</i> <!-- поле обязательно для заполнения -->
<? endif; ?>
</span>
<span><input type="text" name="EMAIL" maxlength="50" value="<?= $arResult["arUser"]["EMAIL"]; ?>" /></span>
</div>
<? 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>
<? if ($arResult["SECURE_AUTH"]): /* безопасная авторизация (зашифрованная передача пароля) */ ?>
<!-- код удален -->
<? 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>
<? 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>
<? 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>
<? endif; ?>
<? /***** Пользовательские свойства *****/ ?>
<? 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>
<? foreach ($arResult["USER_PROPERTIES"]["DATA"] as $FIELD_NAME => $arUserField):?>
<div>
<span>
<? if ($arUserField["MANDATORY"]=="Y"): ?>
<i>*</i> <!-- поле обязательно для заполнения -->
<? endif; ?>
<?= $arUserField["EDIT_FORM_LABEL"]; ?>
</span>
<span>
<?
$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>
<? endforeach; ?>
</section>
<? endif; ?>
<? /***** /Пользовательские свойства *****/ ?>
<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/имя_сайта/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
:
<?
// обратите внимание на эту константу
define("NEED_AUTH", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Авторизация и регистрация");
?>
<p>Вы зарегистрированы и успешно авторизовались.</p>
<p><a href="/auth/profile.php">Мой профиль</a></p>
<?
// ссылка для выхода из личного кабинета
$logout = $APPLICATION->GetCurPageParam(
"logout=yes&" . bitrix_sessid_get(),
array(
"login",
"logout",
"register",
"forgot_password",
"change_password"
)
);
?>
<p><a href="<?= $logout; ?>">Выйти</a></p>
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>