Получение полей в ресурсах потомках,MODX Revolution
Получим заголовок текущего документа, потомка и потомка-потомка
// получаем объект
$res = $modx->getObject('modResource', $modx->resource->get('id'));
$f = $res->get('parent');
echo 'Название текущего ресурса : '.$res->get('pagetitle');
// если есть потомок
if ($f != 0) {
$res2 = $modx->getObject('modResource',$f);
echo 'Название ресурса-потомка : '. $res2->get('pagetitle');
$gf = $res2->get('parent');
// если есть потомок
if ($gf != 0) {
$res3 = $modx->getObject('modResource',$gf);
echo 'Название ресурса-потомка-потомка : '.$res3->get('pagetitle');
}
}
Рекурсивный обход дерева (неизвестно количество предков)
function getParent($id) {
Global $modx;
// если потомок есть, то определяем его заголовок и вызываем функцию для определения следующего предка
if ($id != 0) {
$res = $modx->getObject('modResource',$id);
echo $res->get('pagetitle');
$id = $res->get('parent');
getParent($id);
}
}
$res = $modx->getObject('modResource', $modx->resource->get('id'));
// заголовок текущего ресурса
echo $res->get('pagetitle');
$id = $res->get('parent');
// вызываем функцию и передаем id потомка
getParent($id);