Jump to main content Jump to doc navigation

Сниппет для вывода списка ресурсов. Продвинутая замена getResources: все возможности без его недостатков.

Умеет корректно сортировать TV, подключать таблицы к выборке, включать или исключать категории из разных контекстов и многое другое.

Свойства

Параметры выбора ресурсов

Эти параметры определяют, какие ресурсы попадут в список.

Name Default Description
&parents Current resource Список родителей для поиска результатов через запятую. 0 для без ограничений, +0 для верхнего уровня. Если id родителя начинается с минуса, он и его потомки исключаются из запроса.
&depth 10 Глубина поиска дочерних ресурсов от родителя в дереве ресурсов.
&resources Список ресурсов для добавления в результаты через запятую. Если id ресурса начинается с минуса, ресурс исключается из запроса.
&context Ограничить ресурсы указанным контекстом.
&where Дополнительный массив параметров выборки в JSON.
&showHidden 1 Показывать ресурсы, скрытые в меню.
&showUnpublished 0 Показывать неопубликованные ресурсы.
&showDeleted 0 Показывать ресурсы, помеченные как удалённые.
&hideContainers 0 Исключить контейнерные ресурсы, то есть ресурсы с «isfolder = 1».
&select 0 Список полей для выборки через запятую. Можно JSON-массив, например {"modResource":"id,pagetitle,content"}.
&sortby pagetitle Любое поле ресурса для сортировки, включая TV, если задано &includeTVs. Можно JSON-строку с массивом полей, например {"tvname":"ASC", "pagetitle":"DESC"}. Для случайной сортировки «RAND()».
&sortdir DESC Направление сортировки: по возрастанию или по убыванию.
&limit 10 Ограничение числа результатов. «0» для без ограничений.
&offset 0 Число элементов для пропуска с начала.
&first 1 Номер первого элемента в выводимых результатах.
&last Automatic, by the formula (total + first - 1) Номер последнего элемента в результатах.
&loadModels Список компонентов, модели которых нужно загрузить для построения запроса, через запятую. Пример: &loadModels=`ms2gallery,msearch2`.
&tvFilters Список фильтров по TV с разделителями AND и OR. Разделитель &tvFiltersOrDelimiter это логическое OR, его условия группируются в первую очередь. В каждой группе можно указать список значений через &tvFiltersAndDelimiter. Поиск значений в конкретной TV («myTV == value») или в любой («value»). Пример: &tvFilters=`filter2==one,filter1==bar%||filter1==foo`. Фильтр использует LIKE, символ «%» это метасимвол. Ищутся значения ресурсов из таблицы site_tmplvar_contentvalues, не из настроек TV по умолчанию.
&tvFiltersAndDelimiter "," Разделитель условий AND в &tvFilters.
&tvFiltersOrDelimiter "||" Разделитель условий OR в &tvFilters.

Свойства шаблонов

Эти параметры задают чанки с шаблонами форматирования вывода.

Name Description
&returnIds «1» вернёт строку со списком id ресурсов вместо полных результатов. Все шаблоны игнорируются.
&tpl Имя чанка для форматирования отдельных элементов. Если не указано, на экран выводятся поля ресурса.
&tplFirst Имя чанка для первого элемента в результатах.
&tplLast Имя чанка для последнего элемента в результатах.
&tplOdd Имя чанка для каждого нечётного элемента в результатах.
&tplWrapper Чанк-обёртка для всех результатов. Один плейсхолдер: [[+output]]. Не работает вместе с &toSeparatePlaceholders.
&wrapIfEmpty Выводить внешнюю обёртку &tplWrapper, даже если результатов нет.
&tplCondition Поле ресурса для сравнения с ключами из &conditionalTpls.
&tplOperator Необязательный оператор сравнения поля &tplCondition с массивом значений и чанков в &conditionalTpls.
&conditionalTpls JSON-объект: ключи это значения поля из &tplCondition, значения это tpl-чанки при совпадении. Оператор сравнения задаётся в &tplOperator. Для операторов вроде isempty массив ключей не нужен.
&outputSeparator Необязательная строка-разделитель результатов.

Свойства результатов

Эти параметры дополнительно задают, какие данные получать и как их показывать.

Name Default Description
&fastMode 0 Быстрый режим обработки чанков. Все «сырые» теги (output modifiers, сниппеты и т. д.) удаляются.
&idx Начальный номер итераций вывода.
&setTotal 0 Заполнять ли плейсхолдер total числом результатов.
&totalVar total Имя плейсхолдера для общего числа результатов.
&includeContent 0 Возвращать ли поле «content» каждого ресурса в результатах.
&includeTVs Список TV через запятую для плейсхолдеров в шаблоне каждого ресурса. Пример: «action,time» даст [[+tv.action]] и [[+tv.time]].
&prepareTVs «1», prepares all TVs specified in &includeTVs Список TV, зависящих от media source, для подготовки перед выводом.
&processTVs Список TV для обработки по их output options. «1» обработает все TV из &includeTVs.
&tvPrefix tv. Префикс TV.
&scheme -1 Тип URL-схемы для modX::makeUrl(). Список вариантов.
&useWeblinkUrl 0 Формировать ссылку на weblink-ресурс, а не на целевой URL. ВАЖНО: для корректной работы используйте [[+link]] вместо [[~[[+id]]]], например <a href="[[+link]]">[[+pagetitle]]</a>.
&toPlaceholder Сохранить вывод в плейсхолдер с этим именем вместо вывода на экран.
&toSeparatePlaceholders Каждый элемент в отдельном плейсхолдере с именем, начинающимся с этого значения и заканчивающимся порядковым номером с нуля. Например «myPl» даст [[+myPl0]], [[+myPl1]] и т. д.
&showLog 0 Дополнительная отладочная информация о работе сниппета только для авторизованных в менеджере.

Примеры

Простой список дочерних ресурсов #1:

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

Чтобы добавить TV «image», вызов такой:

[[pdoResources?
    &parents=`1`
    &depth=`0`
    &tpl=`ListRowTpl`
    &includeTVs=`image`
]]

В чанке ListRowTpl теперь доступен плейсхолдер [[+tv.image]].

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • CrewMark
  • Fabian Christen
  • Sepia River Studios
  • Dannevang Digital
  • Alex
  • A. Moreno
  • Chris Fickling
  • Stéphane Jäggi
  • Murray Wood
  • Anton Tarasov
  • deJaya
  • JT Skaggs
  • Lefthandmedia
  • eydolan
  • Following Sea
  • Guido Gallenkamp
  • YJ
  • Raffy
  • Snow Creative
  • Nick Clark
  • Guest
  • Helen
  • krisznet
  • Yanni
  • Richard

Budget

$204 per month—let's make that $500!

Learn more