Я хочу получить все страницы SiteTree веб-сайта Silverstripe, а затем отсортировать их по убыванию глубины. Под глубиной я подразумеваю количество родителей, которые у них есть.
В некоторой степени это уже сделано модулем Google Sitemaps. За исключением того, что глубина не превышает 10 и не учитываются страницы, скрытые от поиска: https://github.com/silverstripe-labs/silverstripe-googlesitemaps
Глядя на модуль модуля Google Sitemaps, кажется, что достаточно легко подсчитать количество родителей страницы: ( /code/GoogleSitemapDecorator.php - строка 78)
$parentStack = $this->owner->parentStack();
$numParents = is_array($parentStack) ? count($parentStack) - 1: 0;
Но как лучше всего отсортировать SiteTree с помощью этого вычисления?
Я надеюсь, что есть более простой способ, чем получить все SiteTree, добавить глубину, а затем прибегнуть.