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

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

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

$categories

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

name

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

link

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

description

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

idimg

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

citems

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

level

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

urlname

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

subcategories

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

$albums

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

name

Название альбома.

description

Описание альбома, форматированный или простой текст в зависимости от значения опции «Использовать визуальный редактор».

link

Ссылка на страницу альбома.

category

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

date

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

urlname

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

vote

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

cvote

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

comments

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

images

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

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

idimg

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

tags

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

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

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

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

fields

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

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

$albums_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 $albums}
    {section name=i loop=$albums}
        <h3><a href="{$albums[i].link}">{$albums[i].name}</a></h3>
        <p>
            <a href="{$albums[i].link}">{image id=$albums[i].idimg width=80 height=80 style="float:left"}</a>
            {$albums[i].description}
        </p>
        <div class="clear"></div>
    {/section}
    {object obj=$albums_pager}
{/if}

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

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

$category

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

name

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

description

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

idimg

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

citems

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

level

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

urlname

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

$categories

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

$albums

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

$albums_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 $albums}
    {section name=i loop=$albums}
        <h3><a href="{$albums[i].link}">{$albums[i].name}</a></h3>
        <p>
            <a href="{$albums[i].link}">{image id=$albums[i].idimg width=80 height=80 style="float:left"}</a>
            {$albums[i].description}
        </p>
        <div class="clear"></div>
    {/section}
    {object obj=$albums_pager}
{/if}

Страница альбома ([раздел]_album.tpl)

Этот тип шаблона содержит все данные выбранном альбоме, включая список фото которые ему принадлежат.

$category

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

$album

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

$images

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

$images_pager

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

$prevalbum

Ссылка на предыдущий альбом в категории, пусто, если текущий альбом первый.

$nextalbum

Ссылка на следующий альбом в категории, пусто, если текущий альбом последний.

$isvote

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

$comments

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

  • date - дата и время размещения комментария в формате UTC.
  • name - имя автора комментария.
  • bbcode - текст комментария в формате BBCode.
  • message - текст комментария в формате HTML.

$form

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

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

$captcha

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

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

{lightbox_init}
 
<h1>{$album.name}</h1>
 
<p>{$album.description}</p>
 
{section name=i loop=$images} {* Обход массива изображений. *}
    {image data=$images[i] width=150 height=150 lightbox=true}
{/section}
 
<div class="clear"></div>
 
{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/gallery/templates.txt · Последние изменения: 14.02.2018 11:15 (внешнее изменение)