<?php $categories = $this->macros('faq', 'category', array(null, $page->getId()));?>
Пример вызова
udata://faq/category/notemplate/(umicms/obwie_voprosy_po_umicms)
XML-ответ UData
<udata module="faq" method="category" generation-time="0.007871">
<items>
<item id="29" name="Почему UMI.CMS написана на PHP5?"
link="/umicms/obwie_voprosy_po_umicms/whyphp5/" xlink:href="upage://29">
<question>Почему UMI.CMS написана на PHP5?</question>
<answer>
UMI.CMS — одна из первых коммерческих CMS на PHP5,
этот язык мы выбрали как один из перспективных, в нем реализована концепция ООП ...
</answer>
</item>
<item id="30" name="Трудно ли найти хостинг?"
link="/umicms/obwie_voprosy_po_umicms/hosting/" xlink:href="upage://30">
<question>Трудно ли найти хостинг?</question>
<answer>
Сейчас все больше хостеров поддерживают PHP5 с рекомендуемыми настройками ...
</answer>
</item>
</items>
<total>2</total>
<per_page>10</per_page>
</udata>
Элементы и атрибуты
<items>
Ветвь, содержащая элементы item — вопросы в указанной категории.
Вывод вопросов осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, тогда для вывода будет использован шаблон по умолчанию — default.tpl
.
Используемые блоки шаблона
questions_block
Блок для вывода списка вопросов.
- %lines%
-
Указывает место, куда будет выведен список вопросов.
- %total%
-
Общее количество вопросов в категории.
- %per_page%
-
Количество элементов на странице.
questions_block_line
Этот блок выводит каждый вопрос.
- %id%
-
id вопроса.
- %link%
-
Url адрес подробного описания вопроса.
- %question%
-
Вопрос.
- %answer%
-
Ответ.
- %list-class-first%
-
в случае, если элемент первый, выводит "first"
- %list-class-last%
-
в случае, если элемент последний, выводит "last"
- %list-class-odd%
-
в случае, если элемент четный, выводит "odd"
- %list-class-even%
-
в случае, если элемент нечетный, выводит "even"
- %list-position%
-
вставляет порядковый номер в списке
Примеры использования
Создайте файл sample.tpl
в директории /tpls/faq/
и напишите в нем следующий код:
<?php
$FORMS['questions_block'] = <<<END
%lines%
<h3>Задайте свой вопрос</h3>
%faq addQuestionForm()%
END;
$FORMS['questions_block_empty'] = <<<END
<p>Вопросов данной категории пока нет.</p>
<h3>Задайте свой вопрос</h3>
%faq addQuestionForm()%
END;
$FORMS['questions_block_line'] = <<<END
<div style="background-color: #EEEEEE; padding: 5px;">
<b>Вопрос:</b> %question%
</div>
<div style="background-color: white; padding: 5px;">
<b>Ответ:</b> %answer%
</div>
<br /><br />
END;
?>
Добавьте в модуле «FAQ» проект myproject, в нем создайте категорию вопросов common и добавьте туда несколько вопросов и ответов на них.
Создайте страницу в модуле «Структура». В редакторе содержимого страницы введите макрос %faq category('sample', '/myproject/common')%. Сохраните страницу. Теперь на созданной странице должен появиться список вопросов категории common.
Название
%faq category()% — Выводит список всех вопросов необходимой категории.
Параметры: faq category([template = 'default', element_path = 0, limit = 0, ignore_paging = 0, order = 1, showSpam=false])
- template
-
Имя шаблона, по которому выводится список вопросов.
- element_path
-
id или путь к категории вопросов.
- limit
-
Максимальное количество выводимых на страницу элементов.
- ignore_paging
-
Игнорировать постраничный вывод.
- order
-
Порядок вывода элементов. В качестве значения можно передать "1" (прямой порядок) или "0" (обратный порядок).
- showSpam
-
Выводить ли вопросы, которые были помечены как "спам". В качестве значения можно передать "true" (показывать) или "false" (не показывать).
Описание
Макрос выводит список вопросов из категории, указанной в параметре element_path. Если параметр element_path не указан, то берется id текущей страницы. Количество вопросов, выводимых на странице, можно ограничить параметром limit, например для постраничного вывода. Если этот параметр не указан, выведется количество вопросов, указанное в настройках модуля.