В этой статье речь пойдет о компоненте getResources в MODx Revolution. Эти описанные методы можно также применять и на других компонентах, например, сниппеты pdoTools, getPage и т.д. Перходим к выборкам:

1) Задача: необходимо вывести несколько ресурсов из категорий в случайном порядке. Код будет следующий:

[ [!getResources:default=`No results found`?
&parents=`[ [*id] ]` 
&tpl=`myRowTpl`
&sortby=`RAND()`
] ]

Маленькое пояснение к коду. Обязательно при копировании удалите пробелы между квадратными скобками. Что делает этот код: выбирает дочерние элементы из текущего ресурса в случайном порядке. Можем ограничить выборку параметром &limit равным числу выводимых документов.

2) Задача: необходимо вывести один ресурс, который выбирается в случайном порядке из 3, 4, 5, 10 и т.д. Чтобы решить данную задачу, нам еще необходимо написать сниппет, который я назову random (Делается это через: Элементы->Новый сниппет).

Код сниппета:

<?php
echo rand(1, 3);

Этот сниппет выбирает случайное число от 1 до 3 включительно. На место цифр 1 и 3 можете вставить свои ограничения.

Код getResources:

[ [!getResources:default=`No results found`? 
&parents=`[ [*id] ]` 
&tpl=`myRowTpl`
&sortby=`RAND()`
&offset=`[ [!random] ]`
&limit=`3`
] ]

Оба сниппета обязательно должны быть вызваны не кешируемыми иначе не будет работать. Параметр &offset это смещение по выборке. В данном случае, у нас будет выводиться  случайный документ из последних 3.

3) Задача: ограничить выборку по TV-параметру.

Код getResources:

[ [!getResources:default=`No results found`? 
&parents=`[ [*id] ]` 
&tpl=`myRowTpl`
&tvFilters=`mytv==1`
] ]

Здесь мы выбираем все документы, у которого TV-параметр myid равен 1. Это очень удобно использовать, если тип ввода TV у нас чекбокс (например, показывать блок на главной странице).

4) Задача: ограничить выборку по полю ресурса (в моем случае по шаблону)

Код getResources:

[ [!getResources:default=`No results found`? 
&parents=`[ [*id] ]`
&tpl=`myRowTpl`
&where=`{"template:=":8}`
] ]

В данной выборке у нас выберутся только те ресурсы, у которых установлен шаблон с id равным 8.

5) Задача: вывести ресурсы так, чтобы их порядок был как в панели администратора

Код getResources:

[ [getResources?
&parents=`8`
&tpl=`categoriesActionsTpl`
&limit=`0`
&depth=`0`
&sortby=`menuindex`
&sortdir=`ASC`
] ]

Здесь у нас выберутся все ресурсы из контейнера с id=8 с 0 глубиной просмотра, т.е. мы будем видеть только прямых потомков родителя - 8 и будет сортировка как в панели администратора. За это у нас отвечают параметры &sortby и &sortdir

Задавайте вопросы в комментариях, постараюсь по максимуму расширить эту статью.