MODX pdoField — получение и вывод полей родителя (ей)

Получение и вывод полей родителя (ей) при помощи pdoField MODX Revo

Довольно часто требуется получить и вывести поля родителей и сегодня мы разберемся в том, как в MODX сделать это при помощи сниппета pdoField, который входит в состав компонента PdoTools. Данный сниппет в отличии от его аналогов UltimateParent и getResourceField имеет все их возможностями — выводит как любые поля указанного документа или его родителя, так и их переменные (TV параметры). Ко всему этому он может работать с документами в любых контекстах и при выборке есть можно указать доп. параметры, это позволяет к примеру: можно у скрытых ресурсов не выводить поля. А, если указать параметр &class, то возможно получить любое поле объекта Модекс. И pdoField можно вызывать как фильтр вывода.

Параметры

pdoField принимает основные параметры компонента pdoTools (и немного своих:

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

Внимание. pdoField не поддерживает работу с чанками.
Стоит обратить внимание: Если указаны параметры &topLevel или &top, а параметр &context нет, тогда будет сделан доп. запрос в БД (чтобы определить контекст).

Примеры

Вызываем как фильтр вывода:

[[*id:pdofield=`pagetitle`]]

Так же можно указывать параметры при помощи JSON массива . Например, выбираем 2-го родителя ресурса и выводим его «pagetitle»:

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

или тоже самое обычным вызовом (рекомендуется, так как это удобнее и быстрее):

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

Тоже самое на fenom:

{'!pdoField' | snippet : [
'id' => $_modx->resource.id,
'field' => 'longtitle',
'top' => '2'
]}

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( 3 оценки, среднее 5 из 5 )
Web-Revenue.ru
Добавить комментарий

  1. Юрий

    Здравствуйте, можете пожалуйста написать последний вызов на феном?

    Ответить
    1. Алексей автор

      Здравствуйте. Написал.

      Ответить