Example #1
0
 /**
  * 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'));
 }