/** * Get and parse view collection from page header. * * @param $page * @return mixed */ private function getCollection($page) { // Get vars. $reference = isset($page->header()->view['reference']) ? $page->header()->view['reference'] : '/'; $params = isset($page->header()->view['params']) ? $page->header()->view['params'] : 'content'; $filter = isset($page->header()->view['filter']) ? $page->header()->view['filter'] : false; $pagination = isset($params['pagination']) ? $params['pagination'] : false; // Check if reference root. if ($reference !== '/') { // Set the reference page, used for filtering. $this->reference = $page->find($reference); /* @var Collection $collection */ $collection = $this->reference->collection($params, $pagination); } else { /* @var Collection $collection */ $collection = $page->collection($params, $pagination); } // Filter the page collection. if ($collection && $filter) { /* @var Collection $collection */ $collection = $collection->filter(array($this, 'filter')); } return $collection; }