UMI-CMS: %system getFilteredPages()%
Очень полезный макрос, который толком нигде нормально не описан, а точнее нет полноценных примеров использования.
Параметры: system getFilteredPages(type_id, prop_name, value, [per_page = 10, template = 'default', ignore_paging = false, field_id = false, asc = true])
tipe_id - id типа данных объектов, по которым нужно произвести фильтрацию. Просмотреть id можно в "Шаблонах данных" наведя курсор мыши на иконку редактирования объекта данных.
prop_name - название поля по которому будет производится фильтрация.
value - значение поля, по которому будет происходить фильтрация
per_page - количество выводимых объектов
template - шаблон по которому выводится выборка
ignore_paging - параметр определяет, влияет ли на результаты фильтрации наличие в URL - ?p= . Может принимать значение 1 или 0
field_is - ID поля по которому можно произвести сортировку данных. Данный параметр можно только увидеть в HTML коде. К примеру необходимо узнать какой id у поля price шаблона данных. Открываем шаблон данных для редактирования, в браузере выбираем просмотр html кода (в разных браузерах этот пункт меню называется по разному, но как правило он есть в контекстном меню, т.е. при нажатии правой кнопки мыши), и там ищется подобный код:
code:
type.addField(3504,
{id : 8918,
title : 'Цена',
name : 'price',
tip : '',
typeId : 25,
typeName : 'Цена',
visible : true,
required : false,
filterable : true,
indexable : false,
locked : true});
Из кода видно, что у поля price id равен 8918
asc - направление сортировки. Может принимать значение 1 или 0
Папка для шаблонов tpl: /tpls/filtered_pages/
По умолчанию в документации по данному макросу написано:
Используемые блоки шаблона
pages_block
Блок для вывода всего списка.
%items%
Место отображения результатов.
pages_block_line
Блок оформления отдельной строки из списка результатов.
%link%
Ссылка на страницу на сайте.
%name%
Название страницы.
pages_block_empty
Блок вывода текста при отсутствии результатов выборки.
Но, в блоке pages_block_line, кроме %link% и %name% можно еще вывести %id% страницы, а это означает что здесь уже можно вызывать такие макросы, как: %catalog viewObject(%id%, 'default')% и др., что позволяет отфильтрованный список показать в детальном виде, а не только в виде списка, как в примере из документации.