setPlaceholders 2.2.1-pl

setPlaceholders 2.2.1-pl

Released Mar 26, 2014 by jgrant

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.

Download 30kb (1650 downloads)
Downloads: 4,088
License: GPLv2
Requires Revolution 2.0.x or greater
Supports mysql,sqlsrv

A snippet for getting fields and setting placeholders.  See the GitHub page for documentation and examples.

setPlaceholders combines the usefulness of placeholders—which are rather like local variables—with a fast and versatile engine for gathering up various data: fields and TVs from a resource or any of its ancestors, children or siblings, plus several other useful things.

It provides the functionality of getResourceField, UltimateParent, and getUrlParam—in addition to quite a bit more—all in one lightweight and very efficient package.  Something of a Swiss Army knife for navigating the resource tree and retrieving info.

Installation Instructions

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

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

Version Released Author Downloads
10 Versions 1 Contributors 4,094 Downloads
2.2.0-pl Sep, 15 2013 jgrant 431
2.1.0-pl Aug, 03 2013 jgrant 248
2.0.1-pl Apr, 09 2013 jgrant 273
2.0.0-pl Apr, 06 2013 jgrant 264
1.2.1-pl Mar, 20 2013 jgrant 231
1.2.0-pl Mar, 11 2013 jgrant 234
1.1.0-pl Feb, 04 2013 jgrant 296
1.0.1-pl Feb, 03 2013 jgrant 226
1.0.0-pl Jan, 12 2013 jgrant 241