pdoResources как замена getResources

Ближайший аналог этих сниппетов в Evo - это Ditto. Используются для вывода дочерних ресурсов текущего документа, но можно указать и определённого родителя. Как пример, такое можно встретить в блоге - когда выводятся все записи определённой категории. pdoResources гораздо функциональнее и шустрее getResources, поэтому я его больше рекомендую к использованию. Различия в использовании параметров данных снипетов минимальны, поэтому переход на pdoResources будет безболезненным. Там же, где всё-таки есть небольшие нюансы, об этом будет написано отдельно. 

Основные параметры

getResources (значение по умолчанию) pdoResources (значение по умолчанию) Применение

&parents=`[[*id]]`

&parents=`[[*id]]`

Список родителей, из которых будут выводиться дочерние ресурсы (указываются через запятую). Если перед именем ресурса поставить дефис, то такой ресурс будет исключаться из выборки.  

&resources

&resources Список ресурсов для вывода. При указании дефиса, ресурс исключается из выборки. 

&depth=`10`

&depth=`10` Глубина выборки от родителя. 

&tvFilters

&tvFilters

Фильтрация ресурсов по значениям TV.
В качестве разделителя AND используется ","
В качестве разделителя OR используется "||"

Примеры вызова: 
&tvFilters=`color==red||color==yellow` - TV может принимать одно из двух значений, 
&tvFilters=`color==red,size==small` - одно из значений TV равно red, другое равно small,
&tvFilters=`color==red||color==yellow,size==small||size=big` - комбинируем перечисленные выше два варианта, что так же допускается. 

Фильтрация для поиска использует оператор LIKE, поэтому можно писать так: 
&tvFilters=`mytv==А%` - название TV начинается на А. 

pdoResources. Можно использовать кастомные разделители значений. Задаются в параметрах tvFiltersOrDelimiter=`||`tvFiltersAndDelimiter=`,`- разделители для "ИЛИ" и "И" соответственно. 
  

&sortby=`createdon`

&sortby=`pagetitle`

Поле ресурса, по которому будет происходить сортировка.
Сортировка в случайном порядке:
&sortby=`RAND()`
Так же, можно указывать JSON массив сразу из нескольких полей:
&sortby=`{"pagetitle":"ASC","menuindex":"DESC"}`

pdoResources. Eсли в параметрах свойства includeTVs перечислены значения TV, то возможна сортировка и по ним.  

getResources. Для сортировки по TV параметрам и задания направления используются параметры sortbyTV и sortdirTV соответственно. 

&sortdir=`DESC`

&sortdir=`DESC`

Направление для сортировки. 

&limit=`5`

&limit=`10`

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

&offset=`0`

&offset=`0`

Пропуск результатов от начала. 

&where

&where

Ограничение выборки по тем или иным параметрам. Представляет собой строку, закодированную в JSON.

&context

&context

Ограничение выборки по контексту.

Дополнительные параметры

getResources (значение по умолчанию) pdoResources (значение по умолчанию) Применение

&showUnpublished=`0`

&showUnpublished=`0`

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

&showDeleted=`0`

&showDeleted=`0` Показывать ли ресурсы, помеченные как удалённые.

&showHidden=`0`

&showHidden=`0` Показывать ли ресурсы, у которых стоит галочка "Не показывать в меню".

&hideContainers=`0`

&hideContainers=`0` Показывать ли ресурсы, которые являются контейнерами. 

&includeContent=`0`

&includeContent=`0` Подгружать ли поле content.

&includeTVs=`0`

&includeTVs

В параметрах указываем TV, которые так же будут доступны. В чанке доступ к TV будет доступен через плэйсхолдеры с префиксом tv. Например, [[+tv.price]]

&prepareTVs=`1`

&prepareTVs=`1`

Список TV-параметров, которые нужно подготовить перед выборкой. 1 означает - подготовить все TV.

&processTVs=`0`

&processTVs

Список TV, которые будут обработаны перед выводом. 
pdoResources. Если поставить 1, то будут обработаны все TV, указанные в includeTVs.

&tvPrefix=`tv.`

&tvPrefix=`tv.`

Префикс для TV параметров. 

&idx=`1`

&idx

Цифра, с которой будет начинаться итерируемый плейсхолдер [[+idx]]

&totalVar=`total`

&totalVar=`total`

Имя плейсхолдера, в котором будет храниться общее количество результатов. 

debug=`false`

&showLog=`0`

Будет ли выведена информация, отвечающая за отладку. Какие SQL запросы были выполнены и т. д. 

Параметры шаблонов

getResources (значение по умолчанию) pdoResources (значение по умолчанию) Применение

&tpl

&tpl

Имя чанка ресурса. Если не указано, то будет выведено содержимое всех полей. 

&tplOdd

&tplOdd Имя чанка для чётных ресурсов. 

&tplFirst

&tplFirst Имя чанка для первого ресурса. 

&tplLast

&tplLast Имя чанка для последнего ресурса.

&tplCondition

&tplCondition Поле ресурса, в котором будет содержаться значение для выбора чанка по условию, заданному в параметре conditionalTpls

&conditionalTpls

&conditionalTpls

JSON-строка с массивом, ключом которого будет выступать строка, которая будет сравниваться с полем, указанным в параметре tplCondition. А в качестве значения ключа будет выступать имя чанка, который будет использован, если условие выполнится. 

pdoResources. Оператор сравнения можно дополнительно указать в параметре tplOperator. 

&tplWrapper

&tplWrapper

Чанк-обёртка, в котором будут выводиться все ресурсы. [[+output]] - плэйсхолдер всех результатов. 
Примечание. Не работает с параметром &toSeparatePlaceholders

&wrapIfEmpty=`false`

&wrapIfEmpty

Если в качестве значения указать 1, то принудительно выводит чанк, указанный в параметре tplWrapper,  даже если результатов нет. 

&outputSeparator=`\n`

&outputSeparator

Строка для разделения результатов вывода. 

&toPlaceholder

&toPlaceholder

Если не пусто, то сниппет вместо вывода на экран, сохранит все результаты в плэйсхолдер. 

&toSeparatePlaceholders

&toSeparatePlaceholders

Если заполнить значение данного параметра, то вместо плэйсхолдера со всеми результатами, на выходе получится множество плэйсхолдеров, которые начинаются со значения, указанного вами в данном параметре. А после этого параметра будет идти порядковый номер результата плэйсхолдера. 

Примеры работы

Самый простой вызов, с необходимым минимумом параметров:

[[!pdoResources?
  &parents=`1`
  &depth=`0`
  &tpl=`catalog_item`
]]

Когда необходимо подключить дополнительный TV при выводе: 

[[!pdoResources?
  &parents=`1`
  &depth=`0`
  &tpl=`catalog_item`
  &includeTVs=`price`
]]

Сортируем элементы по индексу (порядок расположения в дереве элементов):

[[!pdoResources?
   &tpl=`item_cat_second`
   &depth=`0`
   &parents=`9`
   &sortby=`menuindex`
   &sortdir=`ASC`
]]

Комментарии ()

    Вы должны авторизоваться, чтобы оставлять комментарии.