Modx Revo: как получить id соседнего ресурса?

Для получения ID соседнего ресурса в MODX Revolution (MODX Revo) можно использовать специальный вызов API, который предоставляется этой CMS. Есть несколько способов достичь этой цели, но я расскажу о двух наиболее распространенных методах.

1. Использование $modx->getParent и $modx->getChild методов:
В MODX существует функционал, который позволяет нам получать ресурс с определенным ID и затем использовать его для получения информации о его родительских и дочерних ресурсах. Вот пример кода, который может быть использован для получения ID соседнего ресурса:

   $currentResource = $modx->resource; // получение текущего ресурса
   $parentResource = $modx->getParent($currentResource); // получение родительского ресурса
   $childrenResources = $modx->getChildIds($parentResource); // получение всех дочерних ресурсов

   // Используйте цикл для перебора всех дочерних ресурсов и проверьте их ID, чтобы найти соседний ресурс
   foreach ($childrenResources as $childResource) {
       if ($childResource != $currentResource->get('id')) {
           $neighbourResource = $modx->getObject('modResource', $childResource);
           $neighbourResourceId = $neighbourResource->get('id');
           break;
       }
   }

   echo $neighbourResourceId; // вывод ID соседнего ресурса

2. Использование фильтра .next и .prev:
В MODX существует возможность использовать фильтры .next и .prev для получения соседних ресурсов относительно текущего. Эти фильтры возвращают следующий и предыдущий ресурсы соответственно. Вот пример кода:

   $currentResource = $modx->resource; // получение текущего ресурса

   // Получение следующего ресурса
   $nextResource = $currentResource->getOne('next');
   $nextResourceId = $nextResource->get('id');
   echo $nextResourceId; // вывод ID следующего ресурса

   // Получение предыдущего ресурса
   $prevResource = $currentResource->getOne('prev');
   $prevResourceId = $prevResource->get('id');
   echo $prevResourceId; // вывод ID предыдущего ресурса

Оба метода позволяют получить ID соседнего ресурса в MODX Revo. Вы можете выбрать подход, который наиболее удобен для вашего проекта и использовать его для достижения необходимой функциональности.