Skip to content
  1. Компоненты
  2. pdoTools
  3. Сниппеты
  4. pdoField

pdoField

Этот сниппет одновременно обладает возможностями getResourceField и UltimateParent, то есть выводит любое поле указанного ресурса или его родителя, включая ТВ параметры.

Отличием от аналогов является работа с документами любых контекстов и возможность указать дополнительные параметры при выборке, что позволяет не выводить поля, например, скрытых ресурсов. Так же с помощью указания параметра &class можно получить поле любого объекта MODX. Может быть вызван как фильтр вывода.

Параметры

Принимает общие параметры выборки и результатов pdoTools и некоторые свои:

ПараметрПо умолчаниюОписание
&idТекущий документИдентификатор ресурса.
&fieldpagetitleПоле ресурса.
&topВыбирает родителя указанного &id на уровне &top.
&topLevelВыбирает родителя указанного &id на уровне &topLevel от корня контекста.
&defaultУказывает поле ресурса, которое вернётся, если &field окажется пуст. Более быстрый аналог фильтра :default=
&outputУказывает строку, которая вернётся, если и &default, и &field оказались пусты.
&toPlaceholderЕсли не пусто, сниппет сохранит все данные в плейсхолдер с этим именем, вместо вывода не экран.

Если указаны &top или &topLevel, а &context нет, то для его определения будет сделан дополнительный запрос в базу данных.

Работу с чанками сниппет не поддерживает, так как возвращает значение только одного поля.

Примеры

Сниппет может быть вызван как фильтр вывода:

modx
[[*id:pdofield=`longtitle`]]

При этом вы можете указывать параметры JSON массивом. Например, выбор второго родителя от ресурса и вывод его «longtitle»:

modx
[[*id:pdofield=`{"top":2,"field":"longtitle"}`]]

Но лучше использовать обычный вызов - он и быстрее, и удобнее:

modx
[[pdoField?
  &id=`[[*id]]`
  &field=`longtitle`
  &top=`2`
]]