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