Логотип

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

system getFilteredPages()

Название

%system getFilteredPages()% — Возвращает список страниц указанного типа, у которых заданное свойство равно указанному значению.

Параметры: system getFilteredPages(type_id, prop_name, value[, per_page = 10, template = 'default', ignore_paging = 0, field_id = 0, asc = 1])

type_id

Id типа объекта, который привязан к странице(umiObjectType).

prop_name

Имя интересующего свойства.

value

Значение интересующего свойства, указанного в prop_name. Проверяется точное соответствие.

per_page

Количество отображаемых результатов на странице.

template

Шаблон отображения результатов. В XSLT-шаблонизаторе игнорируется.

ignore_paging

Игнорировать пейджинг (параметр ?p=1 в URL)

field_id

id поля, по которому должна выполняться сортировка. По умолчанию страницы будут отсортированы по id объектов, которые привязаны к страницам.

asc

Порядок сортировки. Значение "1" задает прямой порядок сортировки, "0" — обратный.

Описание

Макрос выводит список страниц отфильтрованных по типу, указанному в type_id и значению value свойства prop_name. Количество результатов на странице и шаблон отображения задается соответствующими параметрами.

Пример вызова

udata://system/getFilteredPages/772/(akciya)/1

XML-ответ UData

<udata module="system" method="getFilteredPages" generation-time="0.008611">
  <items>
    <item id="45" link="/market/hamsters/homyachok_pushistyj/">Хомячок пушистый</item>
    <item id="47" link="/market/hamsters/homyachok_obychnyj/">Хомячок обычный</item>
    <item id="52" link="/market/hamsters/homyak_ofigennyj/">Хомяк офигенный</item>
  </items>
  <total>3</total>
  <per_page>10</per_page>
</udata>

Элементы и атрибуты

<items>

Ветвь, содержащая элементы item — страницы, удовлетворяющие заданному условию фильтра.

<item>

Элемент, описывающий отдельную страницу из списка. Содержимое элемента — название страницы.

@id

Идентификатор страницы.

@link

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

<total>

Общее количество страниц, удовлетворяющих заданному условию.

<per_page>

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

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

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

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

pages_block

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

%items%

Место отображения результатов.

pages_block_line

Блок оформления отдельной строки из списка результатов.

%link%

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

%name%

Название страницы.

pages_block_empty

Блок вывода текста при отсутствии результатов выборки.

Примеры использования

Использование макроса может быть полезно при выводе объектов с определенным свойством на главной странице — например, если стоит задача отобразить все товары каталога, на которые в данный момент действует акция. Для этого можно создать для типа данных "объект каталога" поле akciya типа "кнопка-флажок" и включить ему опцию "использовать в фильтрах". Для фильтрации результатов нужно задать в макросе соответствующий type_id, prop_name = 'akciya' и value = '1'.

Пример шаблона отображения:

<?php

$FORMS = Array();

$FORMS['pages_block'] = <<<END
 <ul>
  %items%
 </ul>
END;

$FORMS['pages_block_line'] = <<<END
  <li><a href="%link%">%name%</a></li>
END;

$FORMS['pages_block_empty'] = <<<END
 <i>No result</i>
END;

?>