====== Модуль "Вопрос-ответ": данные доступные в шаблонах ====== ===== Главная страница ([раздел]_main.tpl) ===== Этот тип шаблона является главным для раздела, он содержит данные о первых двух уровнях категорий (если они используются), а так же список вопросов. ==== $categories ==== Массив записей с данными о категориях первых двух уровней. Каждая запись представляет собой массив с ключами: === name === Название категории. === link === Ссылка на страницу категории. === description === Описание категории. === idimg === Числовой идентификатор прикрепленного изображения. === citems === Количество вопросов в категории. === level === Уровень в дереве категорий, 0 - находится в корне. === urlname === Строковой идентификатор URL категории. === subcategories === Массив записей с данными о подкатегориях. Записи аналогичны записям в [[#$categories|$categories]]. ==== $items ==== Массив записей с данными о вопросах каталога. В зависимости от настроек содержит либо все вопросы, либо только вопросы вне категорий. Каждая запись представляет собой массив с ключами: === name === Заголовок вопроса. === user === Имя автора вопроса. === email === Email автора вопроса. === question === Текст вопроса. === answer === Текст ответа. === link === Ссылка на детальную страницу. === category === Полное название категории, которой принадлежит материал. === date === Дата создания в формате UTC. === urlname === Строковой идентификатор URL. === дополнительное поле === Значение дополнительного поля. === fields === Массив записей с данными о дополнительных полях. Каждая запись представляет собой массив с ключами: * **field** - Строковой идентификатор поля. * **name** - Описание поля. * **value** - Значение. ==== $items_pager ==== Объект [[:integration:objects#Многостраничная навигация (нумератор страниц)|постраничной навигации]]. ==== Пример шаблона ====

{$section_name}

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

{$items[i].name}

{$items[i].question|truncate:300} {/section} {object obj=$items_pager}

Задать вопрос

===== 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} {section name=i loop=$items}

{$items[i].name}

{$items[i].question|truncate:300} {/section} {object obj=$items_pager}

Задать вопрос

===== Детальная страница ([раздел]_page.tpl) ===== Этот тип шаблона содержит все данные выбранного вопроса. ==== $category ==== Массив с данными о текущей категории. Формат данных аналогичен [[#Cтраница категории ([раздел]_category.tpl)|описанному выше]]. ==== $item ==== Массив с данными о текущей записи каталога. Формат данных аналогичен формату записей в массиве [[#items|описанном выше]]. ==== Пример шаблона ====

{$item.name}

Вопрос:

{$item.question|nl2br}

Ответ:

{$item.answer|nl2br}

Задать вопрос

===== Страница формы вопроса ([раздел]_form.tpl) ===== Этот типа шаблона содержит данные для формы добавления нового вопроса. ==== $form ==== Массив данных для начальных значений формы. По сути является копией данных $_POST с дополнительными данными, поэтому при выводе важно защищать значения с помощью [[:smarty:smarty3#escape|escape]]. Если на сайте используется раздел на базе модуля [[:modules:users|"Пользователи"]], то значения массива с ключами user и email будут замещаться на имя пользователя и его email соответственно, в случае если он авторизирован на сайте. === name === Заголовок вопроса. === user === Имя пользователя. === email === Email пользователя. === categories === Ассоциированный массив содержащий список категорий с их чиловыми идентификаторами в качестве ключа. Может использоваться в качестве параметра options для функции [[:smarty:smarty5#html_options|html_options]]. === idcat === Числовой идентификатор выбранной категории (сохраняется при ошибке ввода цифр каптчи). === question === Текст вопроса. ==== $captcha ==== Содержит значение, которое может быть использовано в скрытом поле captcha, если форму отправки необходимо сделать без ввода контрольных цифр на рисунке. ==== $errors.captcha ==== Принимает значение истина, если пользователь ошибся при вводе контрольных цифр на рисунке. ==== Пример шаблона ====

{$section_name}

{if $errors.captcha}

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

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

Задать вопрос

Заголовок:
{editbox name="name" width="60%" text=$form.name}
Ваше имя:
{editbox name="user" max=50 width="20%" text=$form.user}
Ваш e-mail:
{editbox name="email" max=50 width="20%" text=$form.email}
{if $options.usecats && $form.categories} Категория:

{/if} Вопрос:
{textarea name="question" rows=5 text=$form.question}

{captcha style="float:right"} Введите слово, изображенное на рисунке: {editbox name="captcha" max=4 width="50"}

{submit caption="Отправить"} {hidden name="action" value="addquestion"}
===== Страница сообщения ([раздел]_message.tpl) ===== Этот тип шаблона предусмотрен для вывода специального сообщения после успешной отправки формы с вопросом. Он не содержит специальных данных, текст сообщения об успешной отправке вставляется непосредственно в шаблон. ==== Пример шаблона ====

{$section_name}

Ваш вопрос отправлен.

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