Skip to content
  1. Extras
  2. pdoTools
  3. Snippets
  4. pdoResources

pdoResources

Snippet for resource lists. Advanced replacement for getResources: same features, fewer drawbacks.

Properly sorts TVs, joins tables, includes/excludes categories from contexts and more.

Parameters

Resource selection

Define which resources appear in output.

NameDefaultDescription
&parentsCurrent resourceComma-separated parent IDs. Use 0 for no limit. Minus prefix excludes
&depth10Child depth
&resourcesComma-separated resource IDs. Minus excludes
&contextLimit by context
&whereJSON extra conditions
&showHidden1Show menu-hidden
&showUnpublished0Show unpublished
&showDeleted0Show deleted
&hideContainers0Exclude containers
&selectComma or JSON fields
&sortbypagetitleSort field; TV if in &includeTVs; JSON for multi; RAND()
&sortdirDESCSort direction
&setTotal0Disable total by default (since 2.11.0). pdoPage always enables it
&limit10Max results
&offset0Skip count; use with &limit
&first1First iteration index
&lasttotal + first - 1Last iteration index
&loadModelsComma component models e.g. ms2gallery,msearch2
&tvFiltersTV filters with AND/OR. Uses LIKE; % wildcard. Search in DB only
&tvFiltersAndDelimiter,AND delimiter
&tvFiltersOrDelimiter||OR delimiter

Template parameters

Chunks for output layout.

NameDescription
&returnIds"1" returns comma IDs; templates ignored
&tplChunk for resource row
&tplFirstChunk for first row
&tplLastChunk for last row
&tplOddChunk for even rows
&tplWrapperWrapper chunk; +output. Incompatible with &toSeparatePlaceholders
&wrapIfEmptyOutput wrapper when no results
&tplConditionField for conditional chunk
&tplOperatorComparison operator
&conditionalTplsJSON: keys = compare values, values = chunks
&outputSeparatorResult separator

Output parameters

NameDefaultDescription
&fastMode0Strip unprocessed tags
&idxStart iteration index
&totalVartotalPlaceholder for total; setTotal must be on
&includeContent0Include content field
&includeTVsComma TVs; yields +tv.name
&prepareTVs1Prepare all &includeTVs
&processTVsProcess TVs per manager; 1 = all; slows
&tvPrefixtv.TV prefix
&useWeblinkUrlGenerate URL by class; adds +link
&toPlaceholderOutput to placeholder
&toSeparatePlaceholdersOutput each to myPl0, myPl1...
&showLog0Debug info; mgr context only

Examples

Simple child list for resource 1:

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

With TV image:

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

Custom order by &resources:

modx
[[pdoResources?
  &resources=`213,34,58,290`
  &sortby=``
  &sortdir=`ASC`
  &tpl=`ListRowTpl`
  &includeTVs=`image`
]]

In chunk ListRowTpl use [[+tv.image]] for image.

Additional info

Common error when migrating from getResources: using strtotime for dates. Resource dates are stored as timestamp but modResource converts them; pdoTools works directly with DB, so chunk gets timestamp. Use date modifier:

modx
[[+publishedon:date=`%d.%m.%Y`]]
or
[[+createdon:date=`%Y-%m-%d`]]

Same for dates in other pdoTools snippets.