Логотип

Документация по макросам и шаблонам UMI.CMS

<?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 — вопросы в указанной категории.

<item>

Элемент, описывающий вопрос из указанной категории. Сам текст вопроса и ответ на него находятся в дочерних элементах question и answer.

@id

Идентификатор вопроса.

@name

Название вопроса.

@link

Ссылка на страницу вопроса.

@xlink:href

Ссылка UPage на страницу вопроса.

<question>

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

<answer>

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

<total>

Общее количество вопросов в указанной категории.

<per_page>

Количество вопросов, отображаемое на странице.

Вывод вопросов осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, тогда для вывода будет использован шаблон по умолчанию — default.tpl.

Используемые шаблоны

Макрос оперирует шаблонами, находящимися в каталоге /tpls/faq/.

Используемые блоки шаблона

questions_block

Блок для вывода списка вопросов.

%lines%

Указывает место, куда будет выведен список вопросов.

%total%

Общее количество вопросов в категории.

%per_page%

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

questions_block_empty

Этот блок выводится, когда нет ни одного вопроса в категории.

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, например для постраничного вывода. Если этот параметр не указан, выведется количество вопросов, указанное в настройках модуля.

Дополнительные сведения