RainLab\Pages\Classes\PageList::getPageSubTree PHP Метод

getPageSubTree() публичный Метод

Returns a part of the page hierarchy starting from the specified page.
public getPageSubTree ( Cms\Classes\Page $page )
$page Cms\Classes\Page Specifies a page object.
    public function getPageSubTree($page)
    {
        $pagesConfig = $this->getPagesConfig();
        $requestedFileName = $page->getBaseFileName();
        $subTree = [];
        $iterator = function ($configPages) use(&$iterator, &$subTree, $requestedFileName) {
            foreach ($configPages as $fileName => $subpages) {
                if ($fileName == $requestedFileName) {
                    $subTree = $subpages;
                    return true;
                }
                if ($iterator($subpages) == true) {
                    return true;
                }
            }
        };
        $iterator($pagesConfig['static-pages']);
        return $subTree;
    }

Usage Example

Пример #1
0
 /**
  * Returns all the child pages that belong to this one.
  * @return array
  */
 public function getChildren()
 {
     if ($this->childrenCache !== null) {
         return $this->childrenCache;
     }
     $children = [];
     $pageList = new PageList($this->theme);
     $subtree = $pageList->getPageSubTree($this);
     foreach ($subtree as $fileName => $subPages) {
         $subPage = static::load($this->theme, $fileName);
         if ($subPage) {
             $children[] = $subPage;
         }
     }
     return $this->childrenCache = $children;
 }