Замена getResources на pdoResources в MODX Revolution

Меняем название getResources на pdoResources

Само собой разумеющийся пункт и здесь хотелось бы лишь отметить, что если для вывода ресурсов у вас используется постраничная навигация («getPages»), то это никак не помешает переходу. Точно так же применяйте вместо элемента вывода getResources - pdoResources. Различие в параметрах будет лишь одно. О нем ниже.

includeTVs - включение TV параметров в вывод ресурсов

В «getResources» указывается значение 1 если требуется включать TV параметры в результат вывода и 0, если не требуется:

&includeTVs=`1`

В «pdoResources» необходимо указывать имена TV параметров, которые требуется включить в результат вывода, через запятую:

&includeTVs=`img-news,tags`

Вывод даты публикации ресурса

В getResources:

Опубликовано:  
[­[+publishedon:strtotime:date=`%d %b %Yг. в %H:%M`]­]

В pdoResourcesубираем промежуточную функцию strtotime:

Опубликовано:  
[­[+publishedon:date=`%d %b %Yг. в %H:%M`]­]

Замена «getResourcesTag»

Вместе с «getResources» идет сниппет «getResourcesTag», который выводит ресурсы по тегу. «pdoResources» может заменить и его. Я реализовал замену включением в «pdoResources» следующего параметра:

&where=`{"tags:LIKE":"%[­[!getUrlParam? &name=`tag`]­]%"}`

Он указывает на то, что требуется вывести только те статьи, у которых в TV-поле «tags» встречается слово, передаваемое в адресной строке в параметре «tag».

Для получения этого параметра я использую snippet «getUrlParam». Устанавливается он из репозитория как обычный пакет. Он предназначен для вывода значения переменной, передаваемой в адресной строке методом GET.

Параметр «conditionalTpls»

На самом деле, этот пункт здесь лишний, так как данный параметр есть как у первого сниппета, так и у второго. Однако, узнал я о его существовании только когда начал разбираться c «pdoResources».

&conditionalTpls - параметр применяется в сниппетах pdoResources/getResources при необходимости осуществить вывод отдельных ресурсов в «свои» чанки:

[­[!pdoResources?&parents=`2`&tpl=`chunk1`&tplCondition=`pagetitle`&tplOperator=`==`&conditionalTpls=`{"Статья 2":"chunk2", "Статья 5":"chunk3"}`]­]


&tplCondition — Поле ресурса, из которого будет получено значение для выбора чанка по условию в «conditionalTpls». Например: pagetitle или alias.

&tplOperator — Оператор сравнения, возможный список:
==, !=, < , > , <=, >=, empty, !empty, isnull

&conditionalTpls — строка с массивом, в котором указано то, с чем будет сравниваться «tplCondition», а в значениях — чанки, которые будут использованы для вывода, если сравнение будет успешным.