Модуль "Каталог материалов": данные доступные в шаблонах

Главная страница ([раздел]_main.tpl)

Этот тип шаблона является главным для раздела, он содержит данные о первых двух уровнях категорий (если они используются), а так же список записей каталога.

$categories

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

name

Название категории.

link

Ссылка на страницу категории.

description

Описание категории.

idimg

Числовой идентификатор прикрепленного изображения.

citems

Количество материалов в категории.

level

Уровень в дереве категорий, 0 - находится в корне.

urlname

Строковой идентификатор URL категории.

subcategories

Массив записей с данными о подкатегориях. Записи аналогичны записям в $categories.

$items

Массив записей с данными о материалах каталога. В зависимости от настроек содержит либо все материалы, либо только материалы вне категорий. Каждая запись представляет собой массив с ключами:

name

Название материала (статьи, новости и т.д.).

content

Главный текст, форматированный, если включена опция визуального редактора.

description

Краткая аннотация. Если включена опция автогенерации аннотации, то состоит из первых 350 символов основного текста без форматирования.

link

Ссылка на детальную страницу.

category

Полное название категории, которой принадлежит материал.

date

Дата создания в формате UTC.

urlname

Строковой идентификатор URL.

vote

Текущая оценка материала.

cvote

Количество голосов.

comments

Количество комментариев.

images

Массив записей с данными о прикрепленных изображениях, может использоваться в качестве параметра функции image. Каждая запись представляет собой массив с ключами:

  • id - числовой идентификатор.
  • path - путь к файлу изображения на сервере.
  • caption - описание.
  • width - ширина изображения.
  • height - высота изображения.

idimg

Числовой идентификатор первого прикрепленного изображения.

files

Массив записей с данными о прикрепленных файлах, может использоваться в качестве параметра функции download. Каждая запись представляет собой массив с ключами:

  • id - числовой идентификатор.
  • path - путь к файлу на сервере.
  • link - ссылка для скачивания.
  • caption - описание.
  • size - размер в виде строки.
  • dwnl - количество скачиваний.
  • mime - mime тип файла.

idfile

Числовой идентификатор первого прикрепленного файла.

tags

Если включено использование тегов, то содержит массив записей с данными о тегах. Каждая запись представляет собой массив с ключами:

  • name - название тега.
  • link - ссылка на результаты поиска по тегу.

дополнительное поле

Значение дополнительного поля.

fields

Массив записей с данными о дополнительных полях. Каждая запись представляет собой массив с ключами:

  • field - Строковой идентификатор поля.
  • name - Описание поля.
  • value - Значение.

$items_pager

Пример шаблона

<h1>{$section_name}</h1>
 
{if $categories}
    <ul>
        {section name=i loop=$categories}
            <li><a href="{$categories[i].link}">{$categories[i].name} - ({$categories[i].citems})</a></li>
        {/section}
    </ul>
{/if}
 
{if $items}
    {section name=i loop=$items}
        <h3><a href="{$items[i].link}">{$items[i].name}</a></h3>
        <p>
            {image data=$items[i].images width=80 height=80 style="float:left"}
            {$items[i].description}
        </p>
        <div class="clear"></div>
    {/section}
    {object obj=$items_pager}
{/if}

Cтраница категории ([раздел]_category.tpl)

Если используются категории, то этот тип шаблона содержит данные о выбранной категории, о следующих двух уровнях категорий, а так же список записей каталога, которые принадлежат выбранной категории.

$category

Массив с данными о текущей категории, состоит из ключей:

name

Название категории.

description

Описание категории.

idimg

Числовой идентификатор прикрепленного изображения.

citems

Количество материалов в категории.

level

Уровень в дереве категорий, 0 - находится в корне.

urlname

Строковой идентификатор URL категории.

$categories

Массив записей с данными о категориях двух уровней начиная с текущего. Формат данных аналогичен описанному выше.

$items

Массив записей с данными о материалах в текущей категории. Формат данных аналогичен описанному выше.

$items_pager

Пример шаблона

<h1>{$category.name}</h1>
 
{if $categories}
    <ul>
        {section name=i loop=$categories}
            <li><a href="{$categories[i].link}">{$categories[i].name} - ({$categories[i].citems})</a></li>
        {/section}
    </ul>
{/if}
 
{if $items}
    {section name=i loop=$items}
        <h3><a href="{$items[i].link}">{$items[i].name}</a></h3>
        <p>
            {image data=$items[i].images width=80 height=80 style="float:left"}
            {$items[i].description}
        </p>
        <div class="clear"></div>
    {/section}
    {object obj=$items_pager}
{/if}

Детальная страница ([раздел]_page.tpl)

Этот тип шаблона содержит все данные выбранной записи каталога.

$category

Массив с данными о текущей категории. Формат данных аналогичен описанному выше.

$item

Массив с данными о текущей записи каталога. Формат данных аналогичен формату записей в массиве описанном выше.

$isvote

Логическое значение. Если включено оценивание, то принимает значение истина, если пользователь уже оценил материал.

$comments

Массив записей всех комментариев к материалу. Каждая запись представляет собой массив с ключами:

  • date - дата и время размещения комментария в формате UTC.
  • name - имя автора комментария.
  • user - массив с данными о пользователе (если автор зарегистрирован на сайте).
  • bbcode - текст комментария в формате BBCode.
  • message - текст комментария в формате HTML.

$form

Массив данных для начальных значений формы комментирования. В случае неверного ввода каптчи является копией $_REQUEST, поэтому важно защищать значения с помощью escape. Если на сайте используется раздел на базе модуля "Пользователи", то значение массива с ключом name будет замещаться на имя пользователя, в случае если он авторизирован на сайте.

  • name - имя автора комментария.
  • message - текст комментария.

$captcha

Содержит значение, которое может быть использовано в скрытом поле captcha, если форму отправки необходимо сделать без ввода контрольных цифр на рисунке.

Пример шаблона

<h1>{$item.name}</h1>
 
{image data=$item.images width=150 style="float:left" popup=true}
 
{$item.content}
 
<div class="clear"></div>
 
<p align="right">Размещено: {$item.date|date_format}</p>
 
{if $options.usefiles} {* Если включены файлы. *}
    <p>{download data=$item.files size=true}</p>
{/if}
 
{if $options.usevote} {* Если включено оценивание. *}
    <form method="post">
        Оценка: {$item.vote}, Голосов: {$item.cvote},
        {if !$isvote} {* Если еще не оценивал. *}
            <select name="vote">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3" selected>3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            </select>
            {submit caption="Оценить"}
            {hidden name="action" value="addvote"}
        {else}
            Вы проголосовали.
        {/if}
    </form>
{/if}
 
{if $options.usecomments} {* Если включено комментирование. *}
 
    {if $comments} {* Вывод комментариев. *}
        <h4>Комментарии:</h4>
    {/if}
    {section name=i loop=$comments}
        <p><b>{$comments[i].date|date_format:"%d.%m.%Y %T"} {$comments[i].name}:</b></p>
        <p>{$comments[i].message}</p>
    {/section}
 
    {if $errors.captcha}
        <p><font color="red">Неверно введены контрольные цифры, попробуйте еще раз.</font></p>
    {/if}
 
    {literal} {* Скрипт валидации формы комментирования. *}
    <script type="text/javascript">
        function valid_form(form)
        { if(form.name.value.replace(/\s+/,'').length==0)
          { alert("Пожалуйста, заполните имя."); return false; }
          if(form.message.value.replace(/\s+/,'').length<5)
          { alert("Пожалуйста, заполните сообщение."); return false; }
          return true;
        }
    </script>
    {/literal}
 
    <h4>Оставить комментарий:</h4> {* Форма комментирования. *}
    <form method="post" onsubmit="return valid_form(this)">
        <p>Ваше имя:</p>
        <p>{editbox name="name" width="40%" text=$form.name}</p>
        <p>{textarea name="message" rows=5 text=$form.message}</p>
        <p>Введите цифры на картинке:</p>
        <p>{editbox name="captcha" width="50"}</p>
        <p>{captcha}</p>
        <p>{submit caption="Добавить"}</p>
        {hidden name="action" value="addcomment"}
    </form>
 
{/if}
 
modules/catalog/templates.txt · Последние изменения: 14.02.2018 10:42 (внешнее изменение)