Доброго времени суток. Уже долгое время ломаю голову над одной задачей.
Есть куча страниц, с разными родителями. Необходимо сделать так, чтобы на каждой из этой страниц выводился список страниц, принадлежащих родителю этой страницы. Т.е. необходимо подняться к родителю страницы и вывести список всех дочерних страниц, желательно исключив из списка страницу, на которой выводится список.

Нашел код сниппета, который осуществляет данную операцию

<?php
/**
 * Входной параметр $max.
 * Сколько заголовков нужно выводить. 
 */
$max = (isset($max)) ? $max : "20";
 
$dID = $modx->documentIdentifier; // Получаем ID просматриваемого документа.
$parentId = array_pop($modx->getParentIds($modx->documentIdentifier,1)); // Получаем родителя.
 
$children = $modx->getActiveChildren($parentId,'menuindex','ASC');
 
$j=0;
$key = false;
while(!$key && $j<count($children)){
  $key = array_search($dID,$children[$j]);
  $j++;
}
 
$output = '<div id="filter_block">
<div class="items">
<ul>';
 
// Цикл показа постов
if(!empty($key) && count($children)>1) {
  for ($i=1;$i<$max+2;$i++) {
    if ($j-$i>=0) {
      $simular = $modx->getDocument($children[$j - $i]['id'], "pagetitle"); 
      if ($children[$j - $i]['id']!=$dID) 
        $output .= '<li class="related-list"><a href="'.$modx->makeUrl($children[$j - $i]['id']).'">'.$simular['pagetitle'].'</a></li>';     
    }
  }
}
 
if ($output == '<ul>')
  echo 'пока похожих записей нет'; // Что делать. когда попался крайний пост.
else 
  echo $output.'</ul></div></div>';
?>


но проблема в том, что он выводит список родственных ресурсов после активной страницы, а нужно, чтобы захватывал и предыдущие. Что-то никак не могу понять, почему он пропускает предыдущие элементы. Или может есть другие идеи и решения, как вывести сиблинги страницы?