====== Модуль "Каталог материалов": данные доступные в шаблонах ====== ===== Главная страница ([раздел]_main.tpl) ===== Этот тип шаблона является главным для раздела, он содержит данные о первых двух уровнях категорий (если они используются), а так же список записей каталога. ==== $categories ==== Массив записей с данными о категориях первых двух уровней. Каждая запись представляет собой массив с ключами: === name === Название категории. === link === Ссылка на страницу категории. === description === Описание категории. === idimg === Числовой идентификатор прикрепленного изображения. === citems === Количество материалов в категории. === level === Уровень в дереве категорий, 0 - находится в корне. === urlname === Строковой идентификатор URL категории. === subcategories === Массив записей с данными о подкатегориях. Записи аналогичны записям в [[#$categories|$categories]]. ==== $items ==== Массив записей с данными о материалах каталога. В зависимости от настроек содержит либо все материалы, либо только материалы вне категорий. Каждая запись представляет собой массив с ключами: === name === Название материала (статьи, новости и т.д.). === content === Главный текст, форматированный, если включена опция визуального редактора. === description === Краткая аннотация. Если включена опция автогенерации аннотации, то состоит из первых 350 символов основного текста без форматирования. === link === Ссылка на детальную страницу. === category === Полное название категории, которой принадлежит материал. === date === Дата создания в формате UTC. === urlname === Строковой идентификатор URL. === vote === Текущая оценка материала. === cvote === Количество голосов. === comments === Количество комментариев. === images === Массив записей с данными о прикрепленных изображениях, может использоваться в качестве параметра функции [[:smarty:smarty6#image|image]]. Каждая запись представляет собой массив с ключами: * **id** - числовой идентификатор. * **path** - путь к файлу изображения на сервере. * **caption** - описание. * **width** - ширина изображения. * **height** - высота изображения. === idimg === Числовой идентификатор первого прикрепленного изображения. === files === Массив записей с данными о прикрепленных файлах, может использоваться в качестве параметра функции [[:smarty:smarty6#download|download]]. Каждая запись представляет собой массив с ключами: * **id** - числовой идентификатор. * **path** - путь к файлу на сервере. * **link** - ссылка для скачивания. * **caption** - описание. * **size** - размер в виде строки. * **dwnl** - количество скачиваний. * **mime** - mime тип файла. === idfile === Числовой идентификатор первого прикрепленного файла. === tags === Если включено использование тегов, то содержит массив записей с данными о тегах. Каждая запись представляет собой массив с ключами: * **name** - название тега. * **link** - ссылка на результаты поиска по тегу. === дополнительное поле === Значение дополнительного поля. === fields === Массив записей с данными о дополнительных полях. Каждая запись представляет собой массив с ключами: * **field** - Строковой идентификатор поля. * **name** - Описание поля. * **value** - Значение. ==== $items_pager ==== Объект [[:integration:objects#Многостраничная навигация (нумератор страниц)|постраничной навигации]]. ==== Пример шаблона ====

{$section_name}

{if $categories} {/if} {if $items} {section name=i loop=$items}

{$items[i].name}

{image data=$items[i].images width=80 height=80 style="float:left"} {$items[i].description}

{/section} {object obj=$items_pager} {/if}
===== Cтраница категории ([раздел]_category.tpl) ===== Если используются категории, то этот тип шаблона содержит данные о выбранной категории, о следующих двух уровнях категорий, а так же список записей каталога, которые принадлежат выбранной категории. ==== $category ==== Массив с данными о текущей категории, состоит из ключей: === name === Название категории. === description === Описание категории. === idimg === Числовой идентификатор прикрепленного изображения. === citems === Количество материалов в категории. === level === Уровень в дереве категорий, 0 - находится в корне. === urlname === Строковой идентификатор URL категории. ==== $categories ==== Массив записей с данными о категориях двух уровней начиная с текущего. Формат данных аналогичен [[#categories|описанному выше]]. ==== $items ==== Массив записей с данными о материалах в текущей категории. Формат данных аналогичен [[#items|описанному выше]]. ==== $items_pager ==== Объект [[:integration:objects#Многостраничная навигация (нумератор страниц)|постраничной навигации]]. ==== Пример шаблона ====

{$category.name}

{if $categories} {/if} {if $items} {section name=i loop=$items}

{$items[i].name}

{image data=$items[i].images width=80 height=80 style="float:left"} {$items[i].description}

{/section} {object obj=$items_pager} {/if}
===== Детальная страница ([раздел]_page.tpl) ===== Этот тип шаблона содержит все данные выбранной записи каталога. ==== $category ==== Массив с данными о текущей категории. Формат данных аналогичен [[#Cтраница категории ([раздел]_category.tpl)|описанному выше]]. ==== $item ==== Массив с данными о текущей записи каталога. Формат данных аналогичен формату записей в массиве [[#items|описанном выше]]. ==== $isvote ==== Логическое значение. Если включено оценивание, то принимает значение истина, если пользователь уже оценил материал. ==== $comments ==== Массив записей всех комментариев к материалу. Каждая запись представляет собой массив с ключами: * **date** - дата и время размещения комментария в формате UTC. * **name** - имя автора комментария. * **user** - массив с данными о пользователе (если автор зарегистрирован на сайте). * **bbcode** - текст комментария в формате BBCode. * **message** - текст комментария в формате HTML. ==== $form ==== Массив данных для начальных значений формы комментирования. В случае неверного ввода каптчи является копией $_REQUEST, поэтому важно защищать значения с помощью [[:smarty:smarty3#escape|escape]]. Если на сайте используется раздел на базе модуля [[:modules:users|"Пользователи"]], то значение массива с ключом **name** будет замещаться на имя пользователя, в случае если он авторизирован на сайте. * **name** - имя автора комментария. * **message** - текст комментария. ==== $captcha ==== Содержит значение, которое может быть использовано в скрытом поле captcha, если форму отправки необходимо сделать без ввода контрольных цифр на рисунке. ==== Пример шаблона ====

{$item.name}

{image data=$item.images width=150 style="float:left" popup=true} {$item.content}

Размещено: {$item.date|date_format}

{if $options.usefiles} {* Если включены файлы. *}

{download data=$item.files size=true}

{/if} {if $options.usevote} {* Если включено оценивание. *}
Оценка: {$item.vote}, Голосов: {$item.cvote}, {if !$isvote} {* Если еще не оценивал. *} {submit caption="Оценить"} {hidden name="action" value="addvote"} {else} Вы проголосовали. {/if}
{/if} {if $options.usecomments} {* Если включено комментирование. *} {if $comments} {* Вывод комментариев. *}

Комментарии:

{/if} {section name=i loop=$comments}

{$comments[i].date|date_format:"%d.%m.%Y %T"} {$comments[i].name}:

{$comments[i].message}

{/section} {if $errors.captcha}

Неверно введены контрольные цифры, попробуйте еще раз.

{/if} {literal} {* Скрипт валидации формы комментирования. *} {/literal}

Оставить комментарий:

{* Форма комментирования. *}

Ваше имя:

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

{textarea name="message" rows=5 text=$form.message}

Введите цифры на картинке:

{editbox name="captcha" width="50"}

{captcha}

{submit caption="Добавить"}

{hidden name="action" value="addcomment"}
{/if}