/** * Twig callback to get subpages for page. * * @param \Page $page * @return array|\Curry_Twig_CollectionWrapper */ public function twigGetSubpages(\Page $page) { if ($page->isLeaf()) { return array(); } $subpages = array(); /** @var \Page[] $children */ $children = \Page::getCachedChildren($page); foreach ($children as $subpage) { if ($subpage->getEnabled() && ($this->showHidden || $subpage->getVisible())) { $subpages[] = $subpage; } } if ($children instanceof \PropelCollection) { $children->clearIterator(); } // set order switch ($this->sortOrder) { case self::ORDER_SORTINDEX_DESC: ArrayHelper::sortOn($subpages, 'getTreeLeft', ArrayHelper::SORT_REVERSE); break; case self::ORDER_NAME_ASC: ArrayHelper::sortOn($subpages, 'getName'); break; case self::ORDER_NAME_DESC: ArrayHelper::sortOn($subpages, 'getName', ArrayHelper::SORT_REVERSE); break; } return new \Curry_Twig_CollectionWrapper($subpages, array($this, 'twigGetPage')); }