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.
New in setPlaceholders 2.2.1
- Add short convenience aliases for setPlaceholders snippet: sph and spho (with &output=
- 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=
1if 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