Как получить parent parent'a

Тут возникла проблема: как получить парент парента (parent parent'a) или дедушку ресурса или прадедушку. Ну и разумеется решить эту задачу без всяких сниппетов. Оказалось это можно решить довольно просто. Первое это ставим PDOTools и вводим такой код:

 [ [#[ [#[ [*id]].parent]].parent]]

Это и есть наш дедушка. Точнее его id, ну а с ним то уж можно делать все что угодно.

Если нужно не id а поля там всякие есть еще один вариант:

[ [pdofield? &top=`2`]]

где &top Выбирает родителя указанного &id на уровне &top. Уровень отсчитывается от начала контекста. Ниже остальные параметры pdofield:

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

Ну и еще один пример использования:

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


Комментарии (2)

  1. Роман:
    13 Jan 2019г. в 23:06

    День добрый. Подскажите пожалуйста, как получить список всех родителей, если товар находиться в нескольких рубриках?

  2. Администратор:
    08 May 2019г. в 12:04

    $parentIds = $modx->getParentIds(23); - получить список всех родителей.



Разрешённые теги: <b><i><br>Добавить новый комментарий:


Создание сайтов в студии go-up.info