mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-26 03:30:48 +03:00
Настройки перенесены в компонент user
This commit is contained in:
parent
bd10e52632
commit
2787f4cccc
|
@ -61,7 +61,7 @@ class ActionSettings extends Action {
|
|||
/**
|
||||
* Устанавливаем title страницы
|
||||
*/
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('settings_menu'));
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('user.settings.title'));
|
||||
}
|
||||
/**
|
||||
* Регистрация евентов
|
||||
|
@ -157,7 +157,7 @@ class ActionSettings extends Action {
|
|||
$this->sMenuItemSelect='settings';
|
||||
$this->sMenuSubItemSelect='tuning';
|
||||
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('settings_menu_tuning'));
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('user.settings.nav.tuning'));
|
||||
$aTimezoneList=array('-12','-11','-10','-9.5','-9','-8','-7','-6','-5','-4.5','-4','-3.5','-3','-2','-1','0','1','2','3','3.5','4','4.5','5','5.5','5.75','6','6.5','7','8','8.75','9','9.5','10','10.5','11','11.5','12','12.75','13','14');
|
||||
$this->Viewer_Assign('aTimezoneList',$aTimezoneList);
|
||||
/**
|
||||
|
@ -181,7 +181,7 @@ class ActionSettings extends Action {
|
|||
*/
|
||||
$this->Hook_Run('settings_tuning_save_before', array('oUser'=>$this->oUserCurrent));
|
||||
if ($this->User_Update($this->oUserCurrent)) {
|
||||
$this->Message_AddNoticeSingle($this->Lang_Get('settings_tuning_submit_ok'));
|
||||
$this->Message_AddNoticeSingle($this->Lang_Get('common.success.save'));
|
||||
$this->Hook_Run('settings_tuning_save_after', array('oUser'=>$this->oUserCurrent));
|
||||
} else {
|
||||
$this->Message_AddErrorSingle($this->Lang_Get('system_error'));
|
||||
|
@ -208,7 +208,7 @@ class ActionSettings extends Action {
|
|||
|
||||
$this->sMenuItemSelect='invite';
|
||||
$this->sMenuSubItemSelect='';
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('settings_menu_invite'));
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('user.settings.nav.invites'));
|
||||
/**
|
||||
* Если отправили форму
|
||||
*/
|
||||
|
@ -220,14 +220,14 @@ class ActionSettings extends Action {
|
|||
* Есть права на отправку инфайтов?
|
||||
*/
|
||||
if (!$this->ACL_CanSendInvite($this->oUserCurrent) and !$this->oUserCurrent->isAdministrator()) {
|
||||
$this->Message_AddError($this->Lang_Get('settings_invite_available_no'),$this->Lang_Get('error'));
|
||||
$this->Message_AddError($this->Lang_Get('user.settings.invites.available_no'),$this->Lang_Get('error'));
|
||||
$bError=true;
|
||||
}
|
||||
/**
|
||||
* Емайл корректен?
|
||||
*/
|
||||
if (!func_check(getRequestStr('invite_mail'),'mail')) {
|
||||
$this->Message_AddError($this->Lang_Get('settings_invite_mail_error'),$this->Lang_Get('error'));
|
||||
$this->Message_AddError($this->Lang_Get('user.settings.invites.fields.email.notices.error'),$this->Lang_Get('error'));
|
||||
$bError=true;
|
||||
}
|
||||
/**
|
||||
|
@ -240,7 +240,7 @@ class ActionSettings extends Action {
|
|||
if (!$bError) {
|
||||
$oInvite=$this->User_GenerateInvite($this->oUserCurrent);
|
||||
$this->Notify_SendInvite($this->oUserCurrent,getRequestStr('invite_mail'),$oInvite);
|
||||
$this->Message_AddNoticeSingle($this->Lang_Get('settings_invite_submit_ok'));
|
||||
$this->Message_AddNoticeSingle($this->Lang_Get('user.settings.invites.notices.success'));
|
||||
$this->Hook_Run('settings_invate_send_after', array('oUser'=>$this->oUserCurrent));
|
||||
}
|
||||
}
|
||||
|
@ -255,7 +255,7 @@ class ActionSettings extends Action {
|
|||
/**
|
||||
* Устанавливаем title страницы
|
||||
*/
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('settings_menu_profile'));
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('user.settings.nav.account'));
|
||||
$this->sMenuSubItemSelect='account';
|
||||
/**
|
||||
* Если нажали кнопку "Сохранить"
|
||||
|
@ -310,7 +310,7 @@ class ActionSettings extends Action {
|
|||
*/
|
||||
if (!$bError) {
|
||||
if ($this->User_Update($this->oUserCurrent)) {
|
||||
$this->Message_AddNoticeSingle($this->Lang_Get('settings_account_submit_ok'));
|
||||
$this->Message_AddNoticeSingle($this->Lang_Get('common.success.save'));
|
||||
/**
|
||||
* Подтверждение смены емайла
|
||||
*/
|
||||
|
@ -339,7 +339,7 @@ class ActionSettings extends Action {
|
|||
/**
|
||||
* Устанавливаем title страницы
|
||||
*/
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('settings_menu_profile'));
|
||||
$this->Viewer_AddHtmlTitle($this->Lang_Get('user.settings.nav.profile'));
|
||||
$this->Viewer_Assign('aUserFields',$this->User_getUserFields(''));
|
||||
$this->Viewer_Assign('aUserFieldsContact',$this->User_getUserFields(array('contact','social')));
|
||||
/**
|
||||
|
@ -473,7 +473,7 @@ class ActionSettings extends Action {
|
|||
}
|
||||
}
|
||||
}
|
||||
$this->Message_AddNoticeSingle($this->Lang_Get('settings_profile_submit_ok'));
|
||||
$this->Message_AddNoticeSingle($this->Lang_Get('common.success.save'));
|
||||
$this->Hook_Run('settings_profile_save_after', array('oUser'=>$this->oUserCurrent));
|
||||
} else {
|
||||
$this->Message_AddErrorSingle($this->Lang_Get('system_error'));
|
||||
|
|
|
@ -1206,6 +1206,7 @@ return array(
|
|||
|
||||
/**
|
||||
* Пользователь
|
||||
* !user
|
||||
*/
|
||||
'user' => array(
|
||||
'user' => 'Пользователь',
|
||||
|
@ -1382,6 +1383,125 @@ return array(
|
|||
'none' => '___user.gender.none___'
|
||||
),
|
||||
|
||||
// Настройки
|
||||
'settings' => array(
|
||||
'title' => 'Настройки',
|
||||
|
||||
// Меню
|
||||
'nav' => array(
|
||||
'profile' => '___user.profile.title___',
|
||||
'account' => 'Аккаунт',
|
||||
'tuning' => 'Настройки сайта',
|
||||
'invites' => 'Инвайты',
|
||||
),
|
||||
|
||||
// Настройки профиля
|
||||
'profile' => array(
|
||||
'generic' => 'Основная информация',
|
||||
'contact' => '___user.profile.contact___',
|
||||
|
||||
'fields' => array(
|
||||
'name' => array(
|
||||
'label' => 'Имя',
|
||||
),
|
||||
'sex' => array(
|
||||
'label' => '___user.gender.gender___',
|
||||
),
|
||||
'birthday' => array(
|
||||
'label' => '___user.profile.personal.birthday___',
|
||||
),
|
||||
'place' => array(
|
||||
'label' => '___user.profile.personal.place___',
|
||||
),
|
||||
'about' => array(
|
||||
'label' => '___user.profile.about.title___',
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
// Настройки аккаунта
|
||||
'account' => array(
|
||||
'account' => 'Настройки аккаунта',
|
||||
'password' => 'Пароль',
|
||||
'password_note' => 'Оставьте поля пустыми если не хотите изменять пароль.',
|
||||
|
||||
'fields' => array(
|
||||
'email' => array(
|
||||
'label' => 'E-mail',
|
||||
'note' => 'Ваш реальный почтовый адрес, на него будут приходить уведомления',
|
||||
'notices' => array(
|
||||
'settings_profile_mail_error' => 'Неверный формат e-mail',
|
||||
'settings_profile_mail_error_used' => 'Этот емайл уже занят',
|
||||
'settings_profile_mail_change_from_notice' => 'На вашу старую почту отправлено подтверждение для смены емайла',
|
||||
'settings_profile_mail_change_to_notice' => 'Спасибо! <br/> На ваш новый емайл адрес отправлено подтверждение для смены старого емайла.',
|
||||
'settings_profile_mail_change_ok' => 'Ваш емайл изменен на <b>%%mail%%</b>',
|
||||
)
|
||||
),
|
||||
'password' => array(
|
||||
'label' => '___auth.labels.password___',
|
||||
'notices' => array(
|
||||
'settings_profile_password_current' => 'Текущий пароль',
|
||||
'settings_profile_password_current_error' => 'Неверный текущий пароль',
|
||||
'settings_profile_password_new' => 'Новый пароль',
|
||||
'settings_profile_password_new_error' => 'Неверный пароль, допустим от 5 символов',
|
||||
'settings_profile_password_confirm' => 'Еще раз новый пароль',
|
||||
'settings_profile_password_confirm_error' => 'Пароли не совпадают',
|
||||
)
|
||||
),
|
||||
'password_new' => array(
|
||||
'label' => 'Новый пароль',
|
||||
),
|
||||
'password_confirm' => array(
|
||||
'label' => '___auth.registration.form.fields.password_confirm.label___',
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
// Настройки сайта
|
||||
'tuning' => array(
|
||||
'email_notices' => 'Уведомления на e-mail',
|
||||
'general' => 'Общие настройки',
|
||||
|
||||
'fields' => array(
|
||||
'new_topic' => 'При новом топике в блоге',
|
||||
'new_comment' => 'При новом комментарии в топике',
|
||||
'new_talk' => 'При новом личном сообщении',
|
||||
'reply_comment' => 'При ответе на комментарий',
|
||||
'new_friend' => 'При добавлении вас в друзья',
|
||||
'timezone' => array(
|
||||
'label' => 'Часовой пояс'
|
||||
),
|
||||
)
|
||||
),
|
||||
|
||||
// Инвайты
|
||||
'invites' => array(
|
||||
'note' => 'Вы можете пригласить на сайт своих друзей и знакомых, для этого просто укажите их e-mail и нажмите кнопку',
|
||||
'available' => 'Доступно',
|
||||
'available_no' => 'У вас пока нет доступных инвайтов',
|
||||
'used' => 'Использовано',
|
||||
'many' => 'много',
|
||||
|
||||
'fields' => array(
|
||||
'email' => array(
|
||||
'label' => 'Пригласить по e-mail адресу',
|
||||
'note' => 'На этот e-mail будет выслано приглашение для регистрации',
|
||||
|
||||
'notices' => array(
|
||||
'error' => 'Неверный формат e-mail'
|
||||
)
|
||||
),
|
||||
'submit' => array(
|
||||
'text' => 'Отправить приглашение',
|
||||
),
|
||||
),
|
||||
|
||||
'notices' => array(
|
||||
'success' => 'Приглашение отправлено'
|
||||
)
|
||||
),
|
||||
),
|
||||
|
||||
// Сообщения
|
||||
'notices' => array(
|
||||
'empty' => '___common.empty___',
|
||||
|
@ -1393,36 +1513,6 @@ return array(
|
|||
/**
|
||||
* Настройки
|
||||
*/
|
||||
'settings_profile_edit' => 'Изменение профиля',
|
||||
'settings_profile_section_base' => 'Основная информация',
|
||||
'settings_profile_section_contacts' => 'Контакты',
|
||||
'settings_profile_name' => 'Имя',
|
||||
'settings_profile_name_notice' => 'Длина имени не может быть меньше 2 и больше 20 символов.',
|
||||
'settings_profile_mail' => 'E-mail',
|
||||
'settings_profile_mail_error' => 'Неверный формат e-mail',
|
||||
'settings_profile_mail_error_used' => 'Этот емайл уже занят',
|
||||
'settings_profile_mail_notice' => 'Ваш реальный почтовый адрес, на него будут приходить уведомления',
|
||||
'settings_profile_mail_change_from_notice' => 'На вашу старую почту отправлено подтверждение для смены емайла',
|
||||
'settings_profile_mail_change_to_notice' => 'Спасибо! <br/> На ваш новый емайл адрес отправлено подтверждение для смены старого емайла.',
|
||||
'settings_profile_mail_change_ok' => 'Ваш емайл изменен на <b>%%mail%%</b>',
|
||||
'settings_profile_sex' => 'Пол',
|
||||
'settings_profile_sex_man' => 'мужской',
|
||||
'settings_profile_sex_woman' => 'женский',
|
||||
'settings_profile_sex_other' => 'не скажу',
|
||||
'settings_profile_birthday' => 'Дата рождения',
|
||||
'settings_profile_country' => 'Страна',
|
||||
'settings_profile_city' => 'Город',
|
||||
'settings_profile_icq' => 'ICQ',
|
||||
'settings_profile_site' => 'Сайт',
|
||||
'settings_profile_site_url' => 'URL сайта',
|
||||
'settings_profile_site_name' => 'название сайта',
|
||||
'settings_profile_about' => 'О себе',
|
||||
'settings_profile_password_current' => 'Текущий пароль',
|
||||
'settings_profile_password_current_error' => 'Неверный текущий пароль',
|
||||
'settings_profile_password_new' => 'Новый пароль',
|
||||
'settings_profile_password_new_error' => 'Неверный пароль, допустим от 5 символов',
|
||||
'settings_profile_password_confirm' => 'Еще раз новый пароль',
|
||||
'settings_profile_password_confirm_error' => 'Пароли не совпадают',
|
||||
'settings_profile_avatar' => 'Аватар',
|
||||
'settings_profile_avatar_error' => 'Не удалось загрузить аватар',
|
||||
'settings_profile_avatar_delete' => 'Удалить',
|
||||
|
@ -1430,51 +1520,14 @@ return array(
|
|||
'settings_profile_avatar_upload' => 'Загрузить аватар',
|
||||
'settings_profile_avatar_resize_title' => 'Выбор области',
|
||||
'settings_profile_avatar_resize_apply' => 'Применить',
|
||||
|
||||
'settings_profile_foto' => 'Фото',
|
||||
'settings_profile_foto_error' => 'Не удалось загрузить фото',
|
||||
'settings_profile_foto_delete' => 'Удалить',
|
||||
'settings_profile_photo_change' => 'Изменить фотографию',
|
||||
'settings_profile_photo_upload' => 'Загрузить фотографию',
|
||||
|
||||
'settings_profile_field_error_max' => 'Нельзя добавить больше %%count%% одинаковых контактов',
|
||||
'settings_profile_submit' => 'Сохранить',
|
||||
'settings_profile_submit_ok' => 'Профиль успешно сохранён',
|
||||
|
||||
'settings_invite' => 'Управление приглашениями',
|
||||
'settings_invite_notice' => 'Вы можете пригласить на сайт своих друзей и знакомых, для этого просто укажите их e-mail и нажмите кнопку',
|
||||
'settings_invite_available' => 'Доступно',
|
||||
'settings_invite_available_no' => 'У вас пока нет доступных инвайтов',
|
||||
'settings_invite_used' => 'Использовано',
|
||||
'settings_invite_mail' => 'Пригласить по e-mail адресу',
|
||||
'settings_invite_mail_error' => 'Неверный формат e-mail',
|
||||
'settings_invite_mail_notice' => 'На этот e-mail будет выслано приглашение для регистрации',
|
||||
'settings_invite_many' => 'много',
|
||||
'settings_invite_submit' => 'отправить приглашение',
|
||||
'settings_invite_submit_ok' => 'Приглашение отправлено',
|
||||
|
||||
'settings_tuning' => 'Настройки сайта',
|
||||
'settings_tuning_notice' => 'Уведомления на e-mail',
|
||||
'settings_tuning_notice_new_topic' => 'При новом топике в блоге',
|
||||
'settings_tuning_notice_new_comment' => 'При новом комментарии в топике',
|
||||
'settings_tuning_notice_new_talk' => 'При новом личном сообщении',
|
||||
'settings_tuning_notice_reply_comment' => 'При ответе на комментарий',
|
||||
'settings_tuning_notice_new_friend' => 'При добавлении вас в друзья',
|
||||
'settings_tuning_general' => 'Общие настройки',
|
||||
'settings_tuning_general_timezone' => 'Часовой пояс',
|
||||
'settings_tuning_submit' => 'сохранить настройки',
|
||||
'settings_tuning_submit_ok' => 'Настройки успешно сохранены',
|
||||
|
||||
'settings_account' => 'Настройки акаунта',
|
||||
'settings_account_password' => 'Пароль',
|
||||
'settings_account_password_notice' => 'Оставьте поля пустыми если не хотите изменять пароль.',
|
||||
'settings_account_submit_ok' => 'Аккаунт сохранен',
|
||||
/**
|
||||
* Меню настроек
|
||||
*/
|
||||
'settings_menu' => 'Настройки',
|
||||
'settings_menu_profile' => 'Профиль',
|
||||
'settings_menu_tuning' => 'Настройки сайта',
|
||||
'settings_menu_invite' => 'Инвайты',
|
||||
'settings_menu_account' => 'Аккаунт',
|
||||
|
||||
/**
|
||||
* Избранные теги
|
||||
|
|
|
@ -5,62 +5,5 @@
|
|||
{extends 'layouts/layout.user.settings.tpl'}
|
||||
|
||||
{block 'layout_content' append}
|
||||
{hook run='settings_account_begin'}
|
||||
|
||||
<form method="post" enctype="multipart/form-data" class="js-form-validate">
|
||||
{hook run='form_settings_account_begin'}
|
||||
|
||||
<fieldset>
|
||||
<legend>{$aLang.settings_account}</legend>
|
||||
|
||||
{* E-mail *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'mail'
|
||||
aRules = [ 'required' => true, 'type'=> 'email' ]
|
||||
sValue = $oUserCurrent->getMail()|escape
|
||||
sNote = $aLang.settings_profile_mail_notice
|
||||
sLabel = $aLang.settings_profile_mail}
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>{$aLang.settings_account_password}</legend>
|
||||
|
||||
<small class="note mb-20">{$aLang.settings_account_password_notice}</small>
|
||||
|
||||
{* Текущий пароль *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'password_now'
|
||||
sType = 'password'
|
||||
sInputClasses = 'width-200'
|
||||
sLabel = $aLang.settings_profile_password_current}
|
||||
|
||||
{* Новый пароль *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'password'
|
||||
aRules = [ 'rangelength' => '[5,20]' ]
|
||||
sType = 'password'
|
||||
sInputClasses = 'width-200'
|
||||
sLabel = $aLang.settings_profile_password_new}
|
||||
|
||||
{* Повторить овый пароль *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'password_confirm'
|
||||
aRules = [ 'rangelength' => '[5,20]', 'equalto' => '.js-input-password' ]
|
||||
sType = 'password'
|
||||
sInputClasses = 'width-200'
|
||||
sLabel = $aLang.settings_profile_password_confirm}
|
||||
</fieldset>
|
||||
|
||||
|
||||
{hook run='form_settings_account_end'}
|
||||
|
||||
{* Скрытые поля *}
|
||||
{include 'components/field/field.hidden.security_key.tpl'}
|
||||
|
||||
{* Кнопки *}
|
||||
{include 'components/button/button.tpl' sName='submit_account_edit' sMods='primary' sText=$aLang.settings_profile_submit}
|
||||
</form>
|
||||
|
||||
{hook run='settings_account_end'}
|
||||
{include 'components/user/settings/account.tpl' user=$oUserCurrent}
|
||||
{/block}
|
|
@ -5,32 +5,5 @@
|
|||
{extends 'layouts/layout.user.settings.tpl'}
|
||||
|
||||
{block 'layout_content' append}
|
||||
<small class="note mb-20">{$aLang.settings_invite_notice} "{$aLang.settings_invite_submit}"</small>
|
||||
|
||||
{hook run='settings_invite_begin'}
|
||||
|
||||
<form action="" method="POST" enctype="multipart/form-data">
|
||||
{hook run='form_settings_invite_begin'}
|
||||
|
||||
<p>
|
||||
{$aLang.settings_invite_available}: <strong>{if $oUserCurrent->isAdministrator()}{$aLang.settings_invite_many}{else}{$iCountInviteAvailable}{/if}</strong><br />
|
||||
{$aLang.settings_invite_used}: <strong>{$iCountInviteUsed}</strong>
|
||||
</p>
|
||||
|
||||
{* E-mail *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'invite_mail'
|
||||
sNote = $aLang.settings_invite_mail_notice
|
||||
sLabel = $aLang.settings_invite_mail}
|
||||
|
||||
{hook run='form_settings_invite_end'}
|
||||
|
||||
{* Скрытые поля *}
|
||||
{include 'components/field/field.hidden.security_key.tpl'}
|
||||
|
||||
{* Кнопки *}
|
||||
{include 'components/button/button.tpl' sName='submit_invite' sMods='primary' sText=$aLang.settings_invite_submit}
|
||||
</form>
|
||||
|
||||
{hook run='settings_invite_end'}
|
||||
{include 'components/user/settings/invite.tpl' user=$oUserCurrent}
|
||||
{/block}
|
|
@ -7,130 +7,5 @@
|
|||
{extends 'layouts/layout.user.settings.tpl'}
|
||||
|
||||
{block 'layout_content' append}
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function($){
|
||||
ls.geo.initSelect();
|
||||
ls.userfield.iCountMax='{cfg name="module.user.userfield_max_identical"}';
|
||||
});
|
||||
</script>
|
||||
|
||||
{* Шаблон пользовательского поля (userfield) *}
|
||||
{function name=userfield}
|
||||
<div class="form-field js-user-field-item" {if ! $oField}id="profile_user_field_template" style="display:none;"{/if}>
|
||||
<select name="profile_user_field_type[]" onchange="ls.userfield.changeFormField(this);">
|
||||
{foreach $aUserFieldsContact as $oFieldAll}
|
||||
<option value="{$oFieldAll->getId()}" {if $oField && $oFieldAll->getId() == $oField->getId()}selected{/if}>{$oFieldAll->getTitle()|escape:'html'}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
<input type="text" name="profile_user_field_value[]" value="{if $oField}{$oField->getValue()|escape}{/if}" class="width-200">
|
||||
<a class="icon-remove" title="{$aLang.user_field_delete}" href="#" onclick="return ls.userfield.removeFormField(this);"></a>
|
||||
</div>
|
||||
{/function}
|
||||
|
||||
{* Скрытое пользовательское поле для вставки через js *}
|
||||
{call userfield oField=false}
|
||||
|
||||
|
||||
{hook run='settings_profile_begin'}
|
||||
|
||||
<form method="post" enctype="multipart/form-data" class="js-form-validate">
|
||||
{hook run='form_settings_profile_begin'}
|
||||
|
||||
{* Основная информация *}
|
||||
<fieldset>
|
||||
<legend>{$aLang.settings_profile_section_base}</legend>
|
||||
|
||||
{* Имя *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'profile_name'
|
||||
aRules = [ 'rangelength' => "[2,{Config::Get('module.user.name_max')}]" ]
|
||||
bInline = true
|
||||
sValue = $oUserCurrent->getProfileName()|escape
|
||||
sNote = $aLang.settings_profile_name_notice
|
||||
sLabel = $aLang.settings_profile_name}
|
||||
|
||||
|
||||
{* Пол *}
|
||||
{$aSex = [
|
||||
[ 'value' => 'man', 'text' => $aLang.settings_profile_sex_man ],
|
||||
[ 'value' => 'woman', 'text' => $aLang.settings_profile_sex_woman ],
|
||||
[ 'value' => 'other', 'text' => $aLang.settings_profile_sex_other ]
|
||||
]}
|
||||
|
||||
{include 'components/field/field.select.tpl'
|
||||
sName = 'profile_sex'
|
||||
bInline = true
|
||||
sLabel = $aLang.settings_profile_sex
|
||||
aItems = $aSex
|
||||
sSelectedValue = $oUserCurrent->getProfileSex()}
|
||||
|
||||
|
||||
{* Дата рождения *}
|
||||
{include 'components/field/field.date.tpl'
|
||||
sName = 'profile_birthday'
|
||||
aItems = $oUserCurrent->getProfileBirthday()
|
||||
bInline = true
|
||||
sLabel = $aLang.settings_profile_birthday}
|
||||
|
||||
|
||||
{* Местоположение *}
|
||||
{include 'components/field/field.geo.tpl'
|
||||
sName = 'geo'
|
||||
bInline = true
|
||||
sLabel = $aLang.profile_place
|
||||
oFieldGeoTarget = $oGeoTarget}
|
||||
|
||||
|
||||
{* О себе *}
|
||||
{include 'components/field/field.textarea.tpl'
|
||||
sName = 'profile_about'
|
||||
aRules = [ 'rangelength' => '[1,3000]' ]
|
||||
bInline = true
|
||||
iRows = 5
|
||||
sValue = $oUserCurrent->getProfileAbout()|escape
|
||||
sLabel = $aLang.settings_profile_about}
|
||||
|
||||
|
||||
{* Пользовательские поля *}
|
||||
{$aUserFieldValues = $oUserCurrent->getUserFieldValues(false, '')}
|
||||
|
||||
{foreach $aUserFieldValues as $oField}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = "profile_user_field_`$oField->getId()`"
|
||||
bInline = true
|
||||
sValue = $oField->getValue()|escape
|
||||
sLabel = $oField->getTitle()|escape}
|
||||
{/foreach}
|
||||
</fieldset>
|
||||
|
||||
|
||||
{* Контакты *}
|
||||
<fieldset>
|
||||
<legend>{$aLang.settings_profile_section_contacts}</legend>
|
||||
|
||||
{$aUserFieldContactValues = $oUserCurrent->getUserFieldValues(true,array('contact','social'))}
|
||||
|
||||
{* Список пользовательских полей, шаблон определен в начале файла *}
|
||||
<div id="user-field-contact-contener">
|
||||
{foreach $aUserFieldContactValues as $oField}
|
||||
{call userfield oField=$oField}
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
{if $aUserFieldsContact}
|
||||
<button type="button" class="button" onclick="return ls.userfield.addFormField();">{$aLang.user_field_add}</button>
|
||||
{/if}
|
||||
</fieldset>
|
||||
|
||||
{hook run='form_settings_profile_end'}
|
||||
|
||||
{* Скрытые поля *}
|
||||
{include 'components/field/field.hidden.security_key.tpl'}
|
||||
|
||||
{* Кнопки *}
|
||||
{include 'components/button/button.tpl' sName='submit_profile_edit' sMods='primary' sText=$aLang.settings_profile_submit}
|
||||
</form>
|
||||
|
||||
{hook run='settings_profile_end'}
|
||||
{include 'components/user/settings/profile.tpl' user=$oUserCurrent}
|
||||
{/block}
|
|
@ -5,69 +5,5 @@
|
|||
{extends 'layouts/layout.user.settings.tpl'}
|
||||
|
||||
{block 'layout_content' append}
|
||||
{hook run='settings_tuning_begin'}
|
||||
|
||||
<form action="{router page='settings'}tuning/" method="POST" enctype="multipart/form-data">
|
||||
{hook run='form_settings_tuning_begin'}
|
||||
|
||||
{include 'components/field/field.hidden.security_key.tpl'}
|
||||
|
||||
<fieldset>
|
||||
<legend>{$aLang.settings_tuning_notice}</legend>
|
||||
|
||||
{include 'components/field/field.checkbox.tpl'
|
||||
sName = 'settings_notice_new_topic'
|
||||
bChecked = $oUserCurrent->getSettingsNoticeNewTopic() != 0
|
||||
bNoMargin = true
|
||||
sLabel = $aLang.settings_tuning_notice_new_topic}
|
||||
|
||||
{include 'components/field/field.checkbox.tpl'
|
||||
sName = 'settings_notice_new_comment'
|
||||
bChecked = $oUserCurrent->getSettingsNoticeNewComment() != 0
|
||||
bNoMargin = true
|
||||
sLabel = $aLang.settings_tuning_notice_new_comment}
|
||||
|
||||
{include 'components/field/field.checkbox.tpl'
|
||||
sName = 'settings_notice_new_talk'
|
||||
bChecked = $oUserCurrent->getSettingsNoticeNewTalk() != 0
|
||||
bNoMargin = true
|
||||
sLabel = $aLang.settings_tuning_notice_new_talk}
|
||||
|
||||
{include 'components/field/field.checkbox.tpl'
|
||||
sName = 'settings_notice_reply_comment'
|
||||
bChecked = $oUserCurrent->getSettingsNoticeReplyComment() != 0
|
||||
bNoMargin = true
|
||||
sLabel = $aLang.settings_tuning_notice_reply_comment}
|
||||
|
||||
{include 'components/field/field.checkbox.tpl'
|
||||
sName = 'settings_notice_new_friend'
|
||||
bChecked = $oUserCurrent->getSettingsNoticeNewFriend() != 0
|
||||
bNoMargin = true
|
||||
sLabel = $aLang.settings_tuning_notice_new_friend}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{$aLang.settings_tuning_general}</legend>
|
||||
|
||||
{foreach $aTimezoneList as $sTimezone}
|
||||
{$aTimezones[] = [
|
||||
'value' => $sTimezone,
|
||||
'text' => $aLang.timezone_list[$sTimezone]
|
||||
]}
|
||||
{/foreach}
|
||||
|
||||
{include 'components/field/field.select.tpl'
|
||||
sName = 'settings_general_timezone'
|
||||
sLabel = $aLang.settings_tuning_general_timezone
|
||||
sClasses = 'width-500 js-topic-add-title'
|
||||
aItems = $aTimezones
|
||||
sSelectedValue = $_aRequest.settings_general_timezone}
|
||||
</fieldset>
|
||||
|
||||
{hook run='form_settings_tuning_end'}
|
||||
|
||||
{include 'components/button/button.tpl' sName='submit_settings_tuning' sText=$aLang.settings_profile_submit sMods='primary'}
|
||||
</form>
|
||||
|
||||
{hook run='settings_tuning_end'}
|
||||
{include 'components/user/settings/tuning.tpl' user=$oUserCurrent}
|
||||
{/block}
|
|
@ -0,0 +1,64 @@
|
|||
{**
|
||||
* Настройки аккаунта (емэйл, пароль)
|
||||
*}
|
||||
|
||||
{$user = $smarty.local.user}
|
||||
|
||||
{hook run='settings_account_begin'}
|
||||
|
||||
<form method="post" enctype="multipart/form-data" class="js-form-validate">
|
||||
{hook run='form_settings_account_begin'}
|
||||
|
||||
<fieldset>
|
||||
<legend>{lang name='user.settings.account.account'}</legend>
|
||||
|
||||
{* E-mail *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'mail'
|
||||
aRules = [ 'required' => true, 'type'=> 'email' ]
|
||||
sValue = $user->getMail()|escape
|
||||
sNote = {lang name='user.settings.account.fields.email.note'}
|
||||
sLabel = {lang name='user.settings.account.fields.email.label'}}
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset>
|
||||
<legend>{lang name='user.settings.account.password'}</legend>
|
||||
|
||||
<small class="note mb-20">{lang name='user.settings.account.password_note'}</small>
|
||||
|
||||
{* Текущий пароль *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'password_now'
|
||||
sType = 'password'
|
||||
sInputClasses = 'width-200'
|
||||
sLabel = {lang name='user.settings.account.fields.password.label'}}
|
||||
|
||||
{* Новый пароль *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'password'
|
||||
aRules = [ 'rangelength' => '[5,20]' ]
|
||||
sType = 'password'
|
||||
sInputClasses = 'width-200'
|
||||
sLabel = {lang name='user.settings.account.fields.password_new.label'}}
|
||||
|
||||
{* Повторить овый пароль *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'password_confirm'
|
||||
aRules = [ 'rangelength' => '[5,20]', 'equalto' => '.js-input-password' ]
|
||||
sType = 'password'
|
||||
sInputClasses = 'width-200'
|
||||
sLabel = {lang name='user.settings.account.fields.password_confirm.label'}}
|
||||
</fieldset>
|
||||
|
||||
|
||||
{hook run='form_settings_account_end'}
|
||||
|
||||
{* Скрытые поля *}
|
||||
{include 'components/field/field.hidden.security_key.tpl'}
|
||||
|
||||
{* Кнопки *}
|
||||
{include 'components/button/button.tpl' sName='submit_account_edit' sMods='primary' sText=$aLang.common.save}
|
||||
</form>
|
||||
|
||||
{hook run='settings_account_end'}
|
|
@ -0,0 +1,42 @@
|
|||
{**
|
||||
* Управление инвайтами
|
||||
*}
|
||||
|
||||
<small class="note mb-20">
|
||||
{lang name='user.settings.invites.note'}
|
||||
</small>
|
||||
|
||||
{hook run='settings_invite_begin'}
|
||||
|
||||
<form action="" method="POST" enctype="multipart/form-data">
|
||||
{hook run='form_settings_invite_begin'}
|
||||
|
||||
<p>
|
||||
{lang name='user.settings.invites.available'}:
|
||||
<strong>
|
||||
{if $oUserCurrent->isAdministrator()}
|
||||
{lang name='user.settings.invites.many'}
|
||||
{else}
|
||||
{$iCountInviteAvailable}
|
||||
{/if}
|
||||
</strong><br />
|
||||
|
||||
{lang name='user.settings.invites.used'}: <strong>{$iCountInviteUsed}</strong>
|
||||
</p>
|
||||
|
||||
{* E-mail *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'invite_mail'
|
||||
sNote = {lang name='user.settings.invites.fields.email.note'}
|
||||
sLabel = {lang name='user.settings.invites.fields.email.label'}}
|
||||
|
||||
{hook run='form_settings_invite_end'}
|
||||
|
||||
{* Скрытые поля *}
|
||||
{include 'components/field/field.hidden.security_key.tpl'}
|
||||
|
||||
{* Кнопки *}
|
||||
{include 'components/button/button.tpl' sName='submit_invite' sMods='primary' sText={lang name='user.settings.invites.fields.submit.text'}}
|
||||
</form>
|
||||
|
||||
{hook run='settings_invite_end'}
|
|
@ -0,0 +1,131 @@
|
|||
{**
|
||||
* Настройки профиля
|
||||
*}
|
||||
|
||||
{$user = $smarty.local.user}
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function($){
|
||||
ls.geo.initSelect();
|
||||
ls.userfield.iCountMax='{cfg name="module.user.userfield_max_identical"}';
|
||||
});
|
||||
</script>
|
||||
|
||||
{* Шаблон пользовательского поля (userfield) *}
|
||||
{function name=userfield}
|
||||
<div class="form-field js-user-field-item" {if ! $field}id="profile_user_field_template" style="display:none;"{/if}>
|
||||
<select name="profile_user_field_type[]" onchange="ls.userfield.changeFormField(this);">
|
||||
{foreach $aUserFieldsContact as $fieldAll}
|
||||
<option value="{$fieldAll->getId()}" {if $field && $fieldAll->getId() == $field->getId()}selected{/if}>{$fieldAll->getTitle()|escape}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
<input type="text" name="profile_user_field_value[]" value="{if $field}{$field->getValue()|escape}{/if}" class="width-200">
|
||||
<a class="icon-remove" title="{$aLang.user_field_delete}" href="#" onclick="return ls.userfield.removeFormField(this);"></a>
|
||||
</div>
|
||||
{/function}
|
||||
|
||||
{* Скрытое пользовательское поле для вставки через js *}
|
||||
{call userfield field=false}
|
||||
|
||||
|
||||
{hook run='settings_profile_begin'}
|
||||
|
||||
<form method="post" enctype="multipart/form-data" class="js-form-validate">
|
||||
{hook run='form_settings_profile_begin'}
|
||||
|
||||
{* Основная информация *}
|
||||
<fieldset>
|
||||
<legend>{lang name='user.settings.profile.generic'}</legend>
|
||||
|
||||
{* Имя *}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = 'profile_name'
|
||||
aRules = [ 'rangelength' => "[2,{Config::Get('module.user.name_max')}]" ]
|
||||
bInline = true
|
||||
sValue = $user->getProfileName()|escape
|
||||
sLabel = {lang name='user.settings.profile.fields.name.label'}}
|
||||
|
||||
|
||||
{* Пол *}
|
||||
{$aSex = [
|
||||
[ 'value' => 'man', 'text' => {lang name='user.gender.male'} ],
|
||||
[ 'value' => 'woman', 'text' => {lang name='user.gender.female'} ],
|
||||
[ 'value' => 'other', 'text' => {lang name='user.gender.none'} ]
|
||||
]}
|
||||
|
||||
{include 'components/field/field.select.tpl'
|
||||
sName = 'profile_sex'
|
||||
bInline = true
|
||||
sLabel = {lang name='user.settings.profile.fields.sex.label'}
|
||||
aItems = $aSex
|
||||
sSelectedValue = $user->getProfileSex()}
|
||||
|
||||
|
||||
{* Дата рождения *}
|
||||
{include 'components/field/field.date.tpl'
|
||||
sName = 'profile_birthday'
|
||||
aItems = $user->getProfileBirthday()
|
||||
bInline = true
|
||||
sLabel = {lang name='user.settings.profile.fields.birthday.label'}}
|
||||
|
||||
|
||||
{* Местоположение *}
|
||||
{include 'components/field/field.geo.tpl'
|
||||
sName = 'geo'
|
||||
bInline = true
|
||||
sLabel = {lang name='user.settings.profile.fields.place.label'}
|
||||
fieldGeoTarget = $oGeoTarget}
|
||||
|
||||
|
||||
{* О себе *}
|
||||
{include 'components/field/field.textarea.tpl'
|
||||
sName = 'profile_about'
|
||||
aRules = [ 'rangelength' => '[1,3000]' ]
|
||||
bInline = true
|
||||
iRows = 5
|
||||
sValue = $user->getProfileAbout()|escape
|
||||
sLabel = {lang name='user.settings.profile.fields.about.label'}}
|
||||
|
||||
|
||||
{* Пользовательские поля *}
|
||||
{$userfields = $user->getUserFieldValues(false, '')}
|
||||
|
||||
{foreach $userfields as $field}
|
||||
{include 'components/field/field.text.tpl'
|
||||
sName = "profile_user_field_`$field->getId()`"
|
||||
bInline = true
|
||||
sValue = $field->getValue()|escape
|
||||
sLabel = $field->getTitle()|escape}
|
||||
{/foreach}
|
||||
</fieldset>
|
||||
|
||||
|
||||
{* Контакты *}
|
||||
<fieldset>
|
||||
<legend>{lang name='user.settings.profile.contact'}</legend>
|
||||
|
||||
{$contacts = $user->getUserFieldValues( true, array('contact', 'social') )}
|
||||
|
||||
{* Список пользовательских полей, шаблон определен в начале файла *}
|
||||
<div id="user-field-contact-contener">
|
||||
{foreach $contacts as $contact}
|
||||
{call userfield field=$contact}
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
{if $aUserFieldsContact}
|
||||
<button type="button" class="button" onclick="return ls.userfield.addFormField();">{$aLang.user_field_add}</button>
|
||||
{/if}
|
||||
</fieldset>
|
||||
|
||||
{hook run='form_settings_profile_end'}
|
||||
|
||||
{* Скрытые поля *}
|
||||
{include 'components/field/field.hidden.security_key.tpl'}
|
||||
|
||||
{* Кнопки *}
|
||||
{include 'components/button/button.tpl' sName='submit_profile_edit' sMods='primary' sText=$aLang.common.save}
|
||||
</form>
|
||||
|
||||
{hook run='settings_profile_end'}
|
|
@ -0,0 +1,69 @@
|
|||
{**
|
||||
* Настройка уведомлений
|
||||
*}
|
||||
|
||||
{hook run='settings_tuning_begin'}
|
||||
|
||||
<form action="{router page='settings'}tuning/" method="POST" enctype="multipart/form-data">
|
||||
{hook run='form_settings_tuning_begin'}
|
||||
|
||||
{include 'components/field/field.hidden.security_key.tpl'}
|
||||
|
||||
<fieldset>
|
||||
<legend>{lang name='user.settings.tuning.email_notices'}</legend>
|
||||
|
||||
{include 'components/field/field.checkbox.tpl'
|
||||
sName = 'settings_notice_new_topic'
|
||||
bChecked = $oUserCurrent->getSettingsNoticeNewTopic() != 0
|
||||
bNoMargin = true
|
||||
sLabel = {lang name='user.settings.tuning.fields.new_topic'}}
|
||||
|
||||
{include 'components/field/field.checkbox.tpl'
|
||||
sName = 'settings_notice_new_comment'
|
||||
bChecked = $oUserCurrent->getSettingsNoticeNewComment() != 0
|
||||
bNoMargin = true
|
||||
sLabel = {lang name='user.settings.tuning.fields.new_comment'}}
|
||||
|
||||
{include 'components/field/field.checkbox.tpl'
|
||||
sName = 'settings_notice_new_talk'
|
||||
bChecked = $oUserCurrent->getSettingsNoticeNewTalk() != 0
|
||||
bNoMargin = true
|
||||
sLabel = {lang name='user.settings.tuning.fields.new_talk'}}
|
||||
|
||||
{include 'components/field/field.checkbox.tpl'
|
||||
sName = 'settings_notice_reply_comment'
|
||||
bChecked = $oUserCurrent->getSettingsNoticeReplyComment() != 0
|
||||
bNoMargin = true
|
||||
sLabel = {lang name='user.settings.tuning.fields.reply_comment'}}
|
||||
|
||||
{include 'components/field/field.checkbox.tpl'
|
||||
sName = 'settings_notice_new_friend'
|
||||
bChecked = $oUserCurrent->getSettingsNoticeNewFriend() != 0
|
||||
bNoMargin = true
|
||||
sLabel = {lang name='user.settings.tuning.fields.new_friend'}}
|
||||
</fieldset>
|
||||
|
||||
<fieldset>
|
||||
<legend>{lang name='user.settings.tuning.general'}</legend>
|
||||
|
||||
{foreach $aTimezoneList as $sTimezone}
|
||||
{$aTimezones[] = [
|
||||
'value' => $sTimezone,
|
||||
'text' => $aLang.timezone_list[$sTimezone]
|
||||
]}
|
||||
{/foreach}
|
||||
|
||||
{include 'components/field/field.select.tpl'
|
||||
sName = 'settings_general_timezone'
|
||||
sLabel = {lang name='user.settings.tuning.fields.timezone.label'}
|
||||
sClasses = 'width-500 js-topic-add-title'
|
||||
aItems = $aTimezones
|
||||
sSelectedValue = $_aRequest.settings_general_timezone}
|
||||
</fieldset>
|
||||
|
||||
{hook run='form_settings_tuning_end'}
|
||||
|
||||
{include 'components/button/button.tpl' sName='submit_settings_tuning' sText=$aLang.common.save sMods='primary'}
|
||||
</form>
|
||||
|
||||
{hook run='settings_tuning_end'}
|
|
@ -25,6 +25,4 @@
|
|||
|
||||
{else}
|
||||
{include 'components/alert/alert.tpl' mAlerts=$sUserListEmpty|default:{lang name='user.notices.empty'} sMods='empty'}
|
||||
{/if}
|
||||
|
||||
|
||||
{/if}
|
|
@ -7,8 +7,8 @@
|
|||
sActiveItem = $sMenuSubItemSelect
|
||||
sMods = 'pills'
|
||||
aItems = [
|
||||
[ 'url' => "{router page='settings'}profile/", 'text' => $aLang.settings_menu_profile, 'name' => 'profile' ],
|
||||
[ 'url' => "{router page='settings'}account/", 'text' => $aLang.settings_menu_account, 'name' => 'account' ],
|
||||
[ 'url' => "{router page='settings'}tuning/", 'text' => $aLang.settings_menu_tuning, 'name' => 'tuning' ],
|
||||
[ 'url' => "{router page='settings'}invite/", 'text' => $aLang.settings_menu_invite, 'name' => 'invite', 'is_enabled' => Config::Get('general.reg.invite') ]
|
||||
[ 'url' => "{router page='settings'}profile/", 'text' => {lang name='user.settings.nav.profile'}, 'name' => 'profile' ],
|
||||
[ 'url' => "{router page='settings'}account/", 'text' => {lang name='user.settings.nav.account'}, 'name' => 'account' ],
|
||||
[ 'url' => "{router page='settings'}tuning/", 'text' => {lang name='user.settings.nav.tuning'}, 'name' => 'tuning' ],
|
||||
[ 'url' => "{router page='settings'}invite/", 'text' => {lang name='user.settings.nav.invites'}, 'name' => 'invite', 'is_enabled' => Config::Get('general.reg.invite') ]
|
||||
]}
|
Loading…
Reference in a new issue