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

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

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

$categories

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

name

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

link

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

description

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

idimg

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

citems

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

level

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

urlname

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

subcategories

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

$items

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

name

Заголовок вопроса.

user

Имя автора вопроса.

email

Email автора вопроса.

question

Текст вопроса.

answer

Текст ответа.

link

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

category

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

date

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

urlname

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

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

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

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}
 
{section name=i loop=$items}
    <h3><a href="{$items[i].link}">{$items[i].name}</a></h3>
    {$items[i].question|truncate:300}
{/section}
 
{object obj=$items_pager}
 
<p><a href="{$questionlink}">Задать вопрос</a></p>

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}
 
{section name=i loop=$items}
    <h3><a href="{$items[i].link}">{$items[i].name}</a></h3>
    {$items[i].question|truncate:300}
{/section}
 
{object obj=$items_pager}
 
<p><a href="{$questionlink}">Задать вопрос</a></p>

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

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

$category

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

$item

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

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

<h1>{$item.name}</h1>
 
<h2>Вопрос:</h2>
{$item.question|nl2br}
 
<h2>Ответ:</h2>
{$item.answer|nl2br}
 
<p><a href="{$questionlink}">Задать вопрос</a></p>

Страница формы вопроса ([раздел]_form.tpl)

Этот типа шаблона содержит данные для формы добавления нового вопроса.

$form

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

name

Заголовок вопроса.

user

Имя пользователя.

email

Email пользователя.

categories

Ассоциированный массив содержащий список категорий с их чиловыми идентификаторами в качестве ключа. Может использоваться в качестве параметра options для функции html_options.

idcat

Числовой идентификатор выбранной категории (сохраняется при ошибке ввода цифр каптчи).

question

Текст вопроса.

$captcha

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

$errors.captcha

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

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

<h1>{$section_name}</h1>
 
{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.user.value.replace(/\s+/,'').length<3)
      { alert('Пожалуйста, укажите свое имя.'); return false; }
      if(form.question.value.replace(/\s+/,'').length<5)
      { alert('Заполните текст вопроса.'); return false; }
      if(form.captcha.value.replace(/\s+/,'').value.length==0)
      { alert('Пожалуйста, укажите код на картинке.'); return false; }
      return true;
    }
</script>
{/literal}
 
<h3>Задать вопрос</h3>
<form method="post" onsubmit="return valid_form(this)">
    Заголовок:<br>
    {editbox name="name" width="60%" text=$form.name}<br>
    Ваше имя:<br>
    {editbox name="user" max=50 width="20%" text=$form.user}<br>
    Ваш e-mail:<br>
    {editbox name="email" max=50 width="20%" text=$form.email}<br>
    {if $options.usecats && $form.categories}
    Категория:<br>
    <select name="idcat">
        <option value="0">Не выбрано</option>
        {html_options options=$form.categories selected=$form.idcat}
    </select><br>
    {/if}
    Вопрос:<br>
    {textarea name="question" rows=5 text=$form.question}<br>
    <br>
    {captcha style="float:right"}
    Введите слово, изображенное на рисунке:
    {editbox name="captcha" max=4 width="50"}<br>
    <br>
    {submit caption="Отправить"}
    {hidden name="action" value="addquestion"}
</form>

Страница сообщения ([раздел]_message.tpl)

Этот тип шаблона предусмотрен для вывода специального сообщения после успешной отправки формы с вопросом. Он не содержит специальных данных, текст сообщения об успешной отправке вставляется непосредственно в шаблон.

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

<h1>{$section_name}</h1>
 
<p>Ваш вопрос отправлен.</p>

Для всех шаблонов

$questionlink

Ссылка на страницу с формой для добавления своего вопроса.

 
modules/faq/templates.txt · Последние изменения: 14.02.2018 11:12 (внешнее изменение)