pdoField
Этот сниппет одновременно обладает возможностями getResourceField и UltimateParent, то есть выводит любое поле указанного ресурса или его родителя, включая ТВ параметры.
Отличием от аналогов является работа с документами любых контекстов и возможность указать дополнительные параметры при выборке, что позволяет не выводить поля, например, скрытых ресурсов. Так же с помощью указания параметра &class можно получить поле любого объекта MODX. Может быть вызван как фильтр вывода.
Параметры
Принимает общие параметры выборки и результатов pdoTools и некоторые свои:
Параметр | По умолчанию | Описание |
---|---|---|
&id | Текущий документ | Идентификатор ресурса. |
&field | pagetitle | Поле ресурса. |
&top | Выбирает родителя указанного &id на уровне &top. | |
&topLevel | Выбирает родителя указанного &id на уровне &topLevel от корня контекста. | |
&default | Указывает поле ресурса, которое вернётся, если &field окажется пуст. Более быстрый аналог фильтра :default= | |
&output | Указывает строку, которая вернётся, если и &default, и &field оказались пусты. | |
&toPlaceholder | Если не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран. |
Если указаны &top или &topLevel, а &context нет, то для его определения будет сделан дополнительный запрос в базу данных.
Работу с чанками сниппет не поддерживает, так как возвращает значение только одного поля.
Примеры
Сниппет может быть вызван как фильтр вывода:
[[*id:pdofield=`longtitle`]]
При этом вы можете указывать параметры JSON массивом. Например, выбор второго родителя от ресурса и вывод его «longtitle»:
[[*id:pdofield=`{"top":2,"field":"longtitle"}`]]
Но лучше использовать обычный вызов - он и быстрее, и удобнее:
[[pdoField?
&id=`[[*id]]`
&field=`longtitle`
&top=`2`
]]