pdoResources как замена getResources
Ближайший аналог этих сниппетов в Evo - это Ditto. Используются для вывода дочерних ресурсов текущего документа, но можно указать и определённого родителя. Как пример, такое можно встретить в блоге - когда выводятся все записи определённой категории. pdoResources гораздо функциональнее и шустрее getResources, поэтому я его больше рекомендую к использованию. Различия в использовании параметров данных снипетов минимальны, поэтому переход на pdoResources будет безболезненным. Там же, где всё-таки есть небольшие нюансы, об этом будет написано отдельно.
Основные параметры
| getResources (значение по умолчанию) | pdoResources (значение по умолчанию) | Применение |
|---|---|---|
|
&parents=`[[*id]]` |
&parents=`[[*id]]` |
Список родителей, из которых будут выводиться дочерние ресурсы (указываются через запятую). Если перед именем ресурса поставить дефис, то такой ресурс будет исключаться из выборки. |
|
&resources |
&resources | Список ресурсов для вывода. При указании дефиса, ресурс исключается из выборки. |
|
&depth=`10` |
&depth=`10` | Глубина выборки от родителя. |
|
&tvFilters |
&tvFilters |
Фильтрация ресурсов по значениям TV. Примеры вызова: Фильтрация для поиска использует оператор LIKE, поэтому можно писать так: pdoResources. Можно использовать кастомные разделители значений. Задаются в параметрах tvFiltersOrDelimiter=`||`, tvFiltersAndDelimiter=`,`- разделители для "ИЛИ" и "И" соответственно. |
|
&sortby=`createdon` |
&sortby=`pagetitle` |
Поле ресурса, по которому будет происходить сортировка. 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, которые будут обработаны перед выводом. |
|
&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]] - плэйсхолдер всех результатов. |
|
&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` ]]
Вы должны авторизоваться, чтобы оставлять комментарии.
Комментарии ()