====== Модуль "Форум": данные доступные в шаблонах ====== ===== Главная страница ([раздел]_main.tpl) ===== Этот тип шаблона является главным для раздела, он содержит данные о категориях форума. ==== $categories ==== Массив записей с данными о категориях. Каждая запись представляет собой массив с ключами: === name === Название категории. === urlname === Строковой идентификатор URL категории. === subcategories === Массив записей с данными о подкатегориях. Каждая запись представляет собой массив с ключами: * **name** - название категории; * **link** - ссылка на страницу категории; * **latname** - идентификатор категории; * **description** - описание категории; * **topics** - количество тем в категории; * **messages** - количество сообщений категории; * **lastmess** - запись с данными о последнем сообщении. Структура данных [[#lastmess|описана ниже]]. ==== Пример шаблона ====

{$section_name}


{section name=i loop=$categories} {section name=j loop=$categories[i].subcategories} {/section} {/section}
{$categories[i].name} Темы Сообщения Последнее сообщение
{$categories[i].subcategories[j].name}
{$categories[i].subcategories[j].description}
{$categories[i].subcategories[j].topics} {$categories[i].subcategories[j].messages} {if $categories[i].subcategories[j].lastmess} {$categories[i].subcategories[j].lastmess.date|date_format:"%d.%m.%Y %T"}
{$categories[i].subcategories[j].lastmess.topic}
от {$categories[i].subcategories[j].lastmess.owner.name} {else}   {/if}
===== Страница категории ([раздел]_category.tpl) ===== Этот тип шаблона содержит данные о выбранной категории, а так же список тем, которые принадлежат этой категории. ==== $category ==== Массив с данными о текущей категории, состоит из ключей: === name === Название категории. === link === Ссылка на текущую страницу категории. === description === Описание категории. === urlname === Строковой идентификатор URL категории. ==== $newclosetopic_access ==== Флаг доступа к добавлению новых и закрытию старых тем (для авторизированного пользователя). ==== $newtopiclink ==== Ссылка на страницу добавления новой темы. Если пусто, то нет доступа или пользователь неавторизирован. ==== $topics ==== Массив записей с данными о темах. Каждая запись представляет собой массив с ключами: === name === Название темы. === link === ссылка на страницу сообщений в теме. === date === Дата создания темы в формате UTC. === pager === HTML код нумератора страниц сообщений в теме для быстрого перехода. === views === Количество просмотров темы. === messages === Количество сообщений в теме. === owner === Массив с данными пользователя-автора темы, формат аналогичен [[:modules:users:templates#user|описанному в руководстве модуля пользователей]]. === lastmess === Массив с данными о последнем сообщении, состоит из ключей: * **date** - дата добавления сообщения в формате UTC. * **bbcode** - Сообщение в формате BBCode. * **message** - HTML код сообщения. * **owner** - массив с данными пользователя-автора сообщения, формат аналогичен [[#owner|описанному выше]]. === active === Определяет закрыта ли тема, принимает значения Y/N (N - Закрыта). === closelink === Ссылка на действие по закрытию темы (Доступно только автору темы и модератору). === deletelink === Ссылка на действие по удалению темы (Доступно только модератору). ==== $topics_pager ==== Объект [[:integration:objects#Многостраничная навигация (нумератор страниц)|постраничной навигации]]. ==== Пример шаблона ====

{$category.name}


{if $newtopiclink}

Новая тема

{/if} {if $topics} {section name=i loop=$topics} {/section}
{$category.name} Автор Сообщ./Просм. Последнее сообщение
{$topics[i].name}{if $topics[i].pager}  [ {$topics[i].pager} ]  {/if} {if $topics[i].closelink}   [Закрыть]  {/if} {if $topics[i].deletelink}   [Удалить]  {/if} {$topics[i].owner.name} {$topics[i].messages} / {$topics[i].views} {if $topics[i].lastmess} {$topics[i].lastmess.date|date_format:"%D %T"}
от {$topics[i].lastmess.owner.name} {else}   {/if}
{object obj=$topics_pager} {else}

Пока не создано ни одной темы.

{/if}
=====Страница темы ([раздел]_topic.tpl) ===== Этот тип шаблона содержит данные о выбранной теме и список сообщений ней, а так же форму добавления нового сообщения. ==== $category ==== Массив с данными о текущей категории, структура данных аналогична [[#category|описанной выше]]. ==== $topic ==== Массив с данными о текущей теме, состоит из ключей: === name === Название темы. === link === Ссылка на текущую страницу темы. === date === Дата создания темы в формате UTC. === active === Определяет закрыта ли тема, принимает значения Y/N (N - Закрыта). ==== $newclosetopic_access ==== Флаг доступа к добавлению новых и закрытию старых тем (для авторизированного пользователя). ==== $newmessage_access ==== Флаг доступа к добавлению новых сообщений (для авторизированного пользователя). ==== $usefiles ==== Флаг использования прикрепенных файлов с проверкой доступа на возможность скачивания. ==== $newtopiclink ==== Ссылка на страницу добавления новой темы. Если пусто, то нет доступа или пользователь неавторизирован. ==== $messages ==== Массив записей с данными о темах. Каждая запись представляет собой массив с ключами: === date === Дата создания сообщения в формате UTC. === edate === Дата редактирования сообщения в формате UTC. === mdate === Дата модерирования сообщения в формате UTC. === bbcode === Сообщение в формате BBCode. === message === Сообщение в формате HTML. === idfile === Числовой идентификатор прикрепленного файла. === owner === Масив с [[:modules:users:templates#user|данными пользователя]]-автора сообщения, с дополнительными ключами: * **mcount** - Общее количество сообщений у пользователя. * **link** - Ссылка на страницу профиля пользователя. === quotelink === Ссылка на действие по цитированию сообщения (доступно только авторизированному пользователю). === editlink === Ссылка на действие по редактированию сообщения (доступно только последнее сообщение в теме для автора или любое для модератора). === deletelink === Ссылка на действие по удалению сообщения (доступно только последнее сообщение в теме для автора или любое для модератора). ==== $messages_pager ==== Объект [[:integration:objects#Многостраничная навигация (нумератор страниц)|постраничной навигации]]. ==== $preview ==== Флаг режима предпросмотра. ==== $form ==== Массив данных для начальных значений формы, используется так же для режима предпросмотра. В случае предпросмотра копирует некоторые данные из $_REQUEST, поэтому при выводе важно защищать значения с помощью [[:smarty:smarty3#escape|escape]]. Состоит из ключей: === idedit === Числовой идентификатор редактируемого сообщения. === owner === Масив с [[:modules:users:templates#user|данными пользователя]]-автора сообщения, с дополнительными ключами: * **mcount** - Обзее количество сообщений у пользователя. * **link** - Ссылка на страницу профиля пользователя. === date === Дата создания сообщения в формате UTC. === bbcode === Сообщение в формате BBCode. === message === Сообщение в формате HTML. === tomail === Режим уведомлений о новых сообщениях (Y/N). ==== $tomail ==== Массив с данными о режиме уведомлений о новых сообщениях в теме для пользователя. Состоит из ключей: === active === Логическое значение, определяет включено ли уведомление. === link === Ссылка на действие по переключению режима уведомлений в обратное. ==== Пример шаблона ====

{$topic.name}


{if $preview}

Предварительный просмотр

{image id=$form.owner.idimg width=120}

{$form.owner.name}
Сообщений: {$form.owner.mcount}

{$form.message}
 
{else} {if $newtopiclink}

Новая тема

{/if} {if $auth->isLogin()}

{if $tomail.active}Не получать уведомления о новых сообщениях{else}Получать уведомления о новых сообщениях{/if}

{/if} {object obj=$messages_pager} {section name=i loop=$messages} {/section}
Автор Текст сообщения
{image id=$messages[i].owner.idimg width=120}

{if $auth->isLogin()} {$messages[i].owner.name} {else} {$messages[i].owner.name} {/if}
Сообщений: {$messages[i].owner.mcount}

{$messages[i].message}
{if $usefiles && $messages[i].idfile} {download id=$messages[i].idfile size=true}  {/if} {if $messages[i].quotelink} [Цитировать]  {/if} {if $messages[i].editlink} [Редактировать]  {/if} {if $messages[i].deletelink} [Удалить]  {/if}  
{object obj=$messages_pager} {/if}
{if !$auth->isLogin()}

Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.

{elseif $topic.active=='N'}

Тема закрыта.

{elseif !$newmessage_access}

Нет прав для добавления сообщений.

{elseif $auth->isLogin() && $topic.active=='Y' && $newmessage_access} {if !$preview}{/if} {if $form.idedit}

Редактирование сообщения

{else}

Новое сообщение

{/if}
{literal} {/literal}
wink smile tongue biggrin lol closedeyes glare huh sad angry cool unsure ohmy blink shok
              

{if $usefiles}
Прикрепленный файл:

{/if}
{submit caption="Предварительный просмотр"} {button caption="Сохранить" onclick="save(this.form)"} {if $form.message} {button caption="Отмена" onclick="cancel(this.form)"} {/if} {hidden name="id" value=$form.idedit} {hidden name="action" value="preview"} {hidden name="authcode" value=$system.authcode}
{if $form.message}{/if} {/if}
===== Страница новой темы ([раздел]_addtopic.tpl) ===== Этот типа шаблона содержит данные для страницы добавления новой темы. ==== $category ==== Массив с данными о текущей категории, структура данных аналогична [[#category|описанной выше]]. ==== $newclosetopic_access ==== Флаг доступа к добавлению новых и закрытию старых тем (для авторизированного пользователя). ==== $usefiles ==== Флаг использования прикрепенных файлов с проверкой доступа на возможность скачивания. ==== $preview ==== Флаг режима предпросмотра. ==== $form ==== Массив данных для начальных значений формы, используется так же для режима предпросмотра. В случае предпросмотра копирует некоторые данные из $_REQUEST, поэтому при выводе важно защищать значения с помощью [[:smarty:smarty3#escape|escape]]. Состоит из ключей: === name === Название темы. === owner === Масив с [[:modules:users:templates#user|данными пользователя]] и дополнительным ключом: * **mcount** - Общее количество сообщений у пользователя. === date === Дата создания темы. === bbcode === Сообщение в формате BBCode. === message === Сообщение в формате HTML. === tomail === Режим уведомлений о новых сообщениях (Y/N). ==== Пример шаблона ====

Новая тема


{if $preview}

Предварительный просмотр

{image id=$form.owner.idimg width=120}

{$form.owner.name}
Сообщений: {$form.owner.mcount}

{$form.message}
 
{/if} {if !$auth->isLogin()}

Вы не можете добавить новую тему. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.

{elseif !$newclosetopic_access}

Нет прав для добавления новой темы.

{elseif $auth->isLogin() && $newclosetopic_access} {literal} {/literal}

Название:

{editbox name="name" width="40%" text=$form.name tabindex="1"}

wink smile tongue biggrin lol closedeyes glare huh sad angry cool unsure ohmy blink shok
              

{if $usefiles}
Прикрепленный файл:

{/if}
{submit caption="Предварительный просмотр"} {button caption="Сохранить" onclick="save(this.form)"} {hidden name="action" value="preview"} {hidden name="authcode" value=$system.authcode}
{/if}
===== Для всех шаблонов ===== ==== $registerlink ==== Ссылка на страницу регистрации нового пользователя.