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

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

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

Параметры

pdoField принимает [mask_link href=»https://docs.modx.pro/komponentyi/pdotools/obshhie-parametryi» target=»_blank»]основные параметры компонента pdoTools[/mask_link] (и немного своих:

Параметр По умолчанию Описание
&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 года!

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Exit mobile version