About setPlaceholders

setPlaceholders combines the usefulness of placeholders—which are rather like local variables—with a fast and versatile engine for gathering up data from resources. It provides a set of selectors for full traversal of the resource tree (parents, siblings, and children; absolute and relative positions) and easy retrieval of any field or TV, then puts these or any other data into placeholders for convenient use throughout a template or chunk.

It blends the functionality of getResourceField, UltimateParent, getUrlParam plus much more into one very optimized snippet.

More on GitHub.


March 26, 2014

Supported Database
MySQL, SQL Server


Supported Versions
2.0 - Current



Download and install.  The package contains one snippet called setPlaceholders.  It's that easy.

New in 2.2.1-pl

2.2.1-pl [25.03.2014]

  • Add short convenience aliases for setPlaceholders snippet: sph and spho (with &output=`1`)


  • Add the ability to process more than one fallback/default value
  • Add a request selector for stuff from the $_REQUEST superglobal
  • Add parents and parentsI selectors for returning a list of parent IDs from the ultimate parent down to the resource
  • Add bounded versions of the parent and Uparent selectors


  • [#2] Add the ability to chain child selectors. Ex: child-1.child2.pagetitle (pagetitle of the 2nd child of the current resource's last child)
  • add a migxR/jsonR selector to get a random item from a MIGX TV.


  • fixes a bug with the parent selector


  • ~3x faster TV handling, now doesn't process them by default
  • adds next/prev sibling selectors. next2 selects the sibling after next, etc.
  • adds a "random child" selector, plus simple ways of retrieving the number of children or parents a resource has, a resource's position amongst its siblings, or the number of items a MIGX TV contains.
  • memory usage improvements

N O T E   T H E S E   C H A N G E S:

  • Removes &fields property (deprecated since v1.1)
  • Now does not process TVs by default. Use &processTVs=`1` if you need to process them.
  • Removes output filter functionality. Use the built-in output filter toPlaceholder instead. It works exactly the same.
  • If you specify an index on the parent, Uparent, child, next or prev selector which is out of bounds, setPlaceholders now returns an empty string, which makes specifying a default value easier.



  • Improves child selector performance
  • Changes behavior when a value isn't found for a placeholder: now the placeholder will be set to an empty string so MODX will fully parse and cache it.
  • A few other minor fixes and improvements


  • Adds a child resource selector. Ex: child4.pagetitle (4th child) or child-1.pagetitle (last child)
  • Adds optional special processing for MIGX TVs (arrays of JSON objects).  For example, parent.migx.someMIGXtv will set a placeholder for each key/value pair in the TV.
  • Minor performance improvements


  • Added &ph property with a more powerful syntax.  It adds: "Ultimate parent" functionality, the ability to specify different resource IDs, optional user-defined placeholder names, and parsing of default values
  • &fields is now deprecated, but retained for backwards compatibility
  • Performance and caching improvements
  • fix an issue that can generate PHP notices

Current releases

View | Download
March 26, 2014
2.0 - Current

View | Download
September 15, 2013
2.0 - Current

View | Download
August 3, 2013
2.0 - Current