====== Модуль "Пользователи": данные доступные в шаблонах ====== ===== Cтраница авторизации ([раздел]_main.tpl) ===== Этим типом шаблона представляется главная страница раздела. Не содержит своих специальных данных и обычно используется для вывода формы авторизации, если пользователь не авторизирован, либо приветствия. ==== Пример шаблона ====

Авторизация

{if !$auth->isLogin()} {* Если пользователь не авторизирован. *}
Логин:
Пароль:

Входить автоматически
{submit caption="Войти"}
  • Забыли пароль?
  • Регистрация
  • {hidden name="action" value="login"}
    {else} {* Если авторизирован, то приветствие и меню личного кабинета. *}
    Добро пожаловать, {$auth.data.name}
  • Личные данные
  • {if $options.usebalance}
  • Личный счет
  • {/if}
    {submit caption="Выйти"} {hidden name="action" value="logout"}
    {/if}
    ===== Cтраница регистрации ([раздел]_register.tpl) ===== Этот тип шаблона используется для страницы регистрации пользователя. Есть набор обязательных полей, а так же набор дополнительных анкетных данных, которые настраиваются в соответствующем редакторе. Поля для ввода дополнительных полей можно формировать путем обхода специального массива, либо непосредственно в шаблоне. ==== $fields ==== Ассоциированный массив записей с данными о дополнительном наборе полей у формы. Ключом каждой записи является идентификатор поля, а сами записи представляют собой массив с ключами: * **field** - строковой идентификатор поля (он же является ключом для всей записи). * **name** - описание поля. * **type** - тип поля, принимает одно из значений, [[:build:fields#Типы полей|доступных в редакторе полей]]. * **property** - сопутствующее свойство для типа поля, например допустимое количество символов для типа string. * **value** - начальное значение для элемента ввода в форме. * **fill** - значение свойства "Обязательно для заполнения", принимает значения Y/N. ==== $form ==== Массив данных для начальных значений формы (аналог **value** в записях **$fields**). По сути является копией $_POST, поэтому при выводе важно защищать значения с помощью [[:smarty:smarty3#escape|escape]]. ==== $captcha ==== Содержит значение, которое может быть использовано в скрытом поле captcha, если форму регистрации необходимо сделать без ввода контрольных цифр на рисунке. ==== $errors.captcha ==== Принимает значение истина, если пользователь ошибся при вводе контрольных цифр на рисунке. ==== Пример шаблона ====

    Регистрация

    {* Возможные ошибки при регистрации. *} {if $errors.captcha}
    Неверно введены контрольные цифры, попробуйте еще раз.
    {/if} {if $errors.emptyemail}
    Не указан email.
    {/if} {if $errors.doublelogin}
    Пользователь с таким логином уже существует, попробуйте другой.
    {/if} {* Скрипт валидации формы. *} {literal} {/literal}
    Ваше имя:*
    {editbox name="name" max=50 width="50%" text=$form.name}
    Логин:*
    {editbox name="login" max=20 width="20%" text=$form.login}
    Пароль:*

    Пароль еще раз:*

    Ваш e-mail:*
    {editbox name="email" max=50 width="20%" text=$form.email}
    {if $options.useavatara} Аватара:

    {/if} {foreach from=$fields item=field} {if $field.type=="string"} {$field.name}:{if $field.fill=="Y"}*{/if}
    {editbox name=$field.field max=$field.length text=$field.value width="40%"}
    {elseif $field.type=="int" || $field.type=="float"} {$field.name}:{if $field.fill=="Y"}*{/if}
    {editbox name=$field.field max=10 width=60 text=$field.value}
    {elseif $field.type=="bool"}
     {$field.name}
    {elseif $field.type=="text"} {$field.name}:{if $field.fill=="Y"}*{/if}
    {textarea name=$field.field rows=$field.property text=$field.value}
    {elseif $field.type=="select"} {$field.name}:{if $field.fill=="Y"}*{/if}

    {elseif $field.type=="file" || $field.type=="image"} {$field.name}:

    {/if} {/foreach}
    {captcha style="float:right"} Введите код на рисунке: {editbox name="captcha" max=4 width="50"}

    {submit caption="Регистрация"} {hidden name="action" value="register"}
    ===== Страница изменения личных данных ([раздел]_anketa.tpl) ===== Этот тип шаблона используется для страницы личных данных пользователя, которые он может изменить. Есть набор обязательных полей, а так же набор дополнительных анкетных данных, которые настраиваются в соответствующем редакторе. Поля для ввода дополнительных полей можно формировать путем обхода специального массива, либо непосредственно в шаблоне. ==== $fields ==== Ассоциированный массив записей с данными о дополнительном наборе полей у формы. Формат аналогичен [[#fields|описанному выше]]. ==== $form ==== Массив данных для начальных значений формы (аналог **value** в записях **$fields**). ==== Пример шаблона ====

    Личные данные

    {* Скрипт валидации формы. *} {literal} {/literal}
    Ваше имя:*
    {editbox name="name" max=50 width="50%" text=$form.name}
    Ваш логин: {$form.login}
    Пароль (если хотите сменить):

    Пароль еще раз:

    Ваш e-mail:*
    {editbox name="email" max=50 width="20%" text=$form.email}
    {if $options.useavatara} Автара:
    {if $form.idimg>0}{image id=$form.idimg}
    Заменить:
    {/if}
    {/if} {foreach from=$fields item=field} {if $field.type=="string"} {$field.name}:{if $field.fill=="Y"}*{/if}
    {editbox name=$field.field max=$field.length text=$field.value width="40%"}
    {elseif $field.type=="int" || $field.type=="float"} {$field.name}:{if $field.fill=="Y"}*{/if}
    {editbox name=$field.field max=10 width=60 text=$field.value}
    {elseif $field.type=="bool"}
     {$field.name}
    {elseif $field.type=="text"} {$field.name}:{if $field.fill=="Y"}*{/if}
    {textarea name=$field.field rows=$field.property text=$field.value}
    {elseif $field.type=="select"} {$field.name}:{if $field.fill=="Y"}*{/if}

    {elseif $field.type=="image"} {$field.name}:
    {if $field.value>0} {image id=$field.value height=80 popup=true}
    Удалить
    Заменить:
    {/if}
    {elseif $field.type=="file"} {$field.name}:
    {if $field.value>0} {download id=$field.value}
    Удалить
    Заменить:
    {/if}
    {/if} {/foreach}
    {submit caption="Сохранить"} {hidden name="action" value="save"}
    ===== Страница логов операций с личным счетом ([раздел]_balance.tpl) ===== Этот тип шаблона содержит данные о личном счете пользователя и архив всех операций с ним. ==== $user === Массив с данными пользователя, состоит из ключей: === name === Полное имя пользователя. === login === Полное имя пользователя. === email === Email пользователя. === date === Дата и время регистрации в формате UTC. === dauth === Дата и время последнего визита в формате UTC. === cauth === Количество визитов. === group === Название группы к которой принадлежит пользователь, если используется плагин [[:plugins:groups|"Группы пользователей"]]. === idimg === Числовой идентификатор изображения (лого/аватар). === balance === Текущий баланс пользователя. === Дополнительное поле === Значение дополнительного анкетного поля. ==== $valute ==== Наименование валюты, в которой ведется счет. ==== $in ==== Массив записей с данными о приходных операциях. Каждая запись состоит из ключей: === date === Дата совершения операции в формате UTC. === sum === Сумма операции. === description === Описание операции. ==== $in_pager ==== Объект [[:integration:objects#Многостраничная навигация (нумератор страниц)|постраничной навигации]] для приходных операций. ==== $sumin ==== Сумма всех приходных операций. ==== $out ==== Массив записей с данными о расходных операциях. Формат записей аналогичен [[#in|приходным операциям]]. ==== $out_pager ==== Объект [[:integration:objects#Многостраничная навигация (нумератор страниц)|постраничной навигации]] для расходных операций. ==== $sumout ==== Сумма всех расходных операций. ==== Пример шаблона ====

    Личный счет.

    Текущий баланс: {$user.balance} {$valute}

    Приходные операции:

    {if $in} {section name=i loop=$in} {/section}
    Дата Описание Сумма
    {$in[i].date|date_format:"%d.%m.%Y %T"} {$in[i].description} {$in[i].sum}
    {object obj=$in_pager}

    Всего: {$sumin} {$valute}

    {else}

    Нет

    {/if}

    Расходные операции:

    {if $out} {section name=i loop=$out} {/section}
    Дата Описание Сумма
    {$out[i].date|date_format:"%d.%m.%Y %T"} {$out[i].description} {$out[i].sum}
    {object obj=$out_pager}

    Всего: {$sumout} {$valute}

    {else}

    Нет

    {/if}
    ===== Страница восстановления пароля ([раздел]_remember.tpl) ===== Этот шаблон не содержит специальных данных, используется для вывода формы восстановления пароля. ==== Пример шаблона ====

    Восстановление пароля

    {if $errors.remember}

    Указанный логин/email отсутствует в нашей базе. Попробуйте еще раз.

    {/if}
    Логин или email:
    {editbox name="login"} {submit caption="Восстановить"} {hidden name="action" value="remember"}
    ===== Страница сообщения ([раздел]_message.tpl) ===== Этот тип шаблона используется для вывода сообщений после основных операций. ==== $message ==== Идентификатор определяющий тип сообщения, может принимать значения: * **register_ok** - Успешное завершение регистрации в режиме автоактивации аккаунта. * **register_activate** - Успешное завершение регистрации и приглашение активировать аккаунт по ссылке в письме. * **register_wait** - Успешное завершение регистрации и предложение ожидать активации аккаунта администратором. * **activate_ok** - Успешная активация по ссылке в письме. * **activate_error** - Неудачная активация по ссылке в письме. * **remember_ok** - Успешное восстановление пароля. ==== Пример шаблона ====

    Сообщение

    {if $message=="register_ok"}

    Регистрация прошла успешно!

    {elseif $message=="register_activate"}

    Регистрация прошла успешно. Вам отправлено письмо со ссылкой для активации аккаунта.

    {elseif $message=="register_wait"}

    Регистрация прошла успешно. В ближайшее время администратор активирует ваш аккаунт.

    {elseif $message=="activate_ok"}

    Активация прошла успешно!

    {elseif $message=="activate_error"}

    Ошибка активации!

    {elseif $message=="remember_ok"}

    Ваш новый пароль выслан на e-mail.

    {/if}
    ===== Страница пользователя ([раздел]_page.tpl) ===== Этот тип шаблона используется для детальной страницы пользователя на сайте. ==== $user === Массив с данными пользователя, формат аналогичен [[#user|описанному выше]]. ==== Пример шаблона ====

    {$user.name}

    {if $options.useavatara} {image id=$user.idimg} {/if}