isHomepage) { return; } $pages = $this->getPagesOnHomepage(); // create real content from pages $pagesRaw = $pagesInTemplates = []; foreach ($pages as $page) { // save pages as models only $pagesRaw[$page->url] = $page; // save rendered pages try { $pagesInTemplates[$page->url] = Controller::getView($page->template, ['page' => $page]) ->render(); } catch (\Exception $e) { if (\Auth::user()) { $pagesInTemplates[$page->url] = view(Template::name('errors.cannotRender'), [ 'page' => $page, 'exception' => $e ])->render(); } } } // set page contents $content->pages = $pagesInTemplates; $content->rawPages = $pagesRaw; } /** * Getter for pages displayed on homepage * @return array */ public function getPagesOnHomepage() { $pageIds = (array)json_decode(setting(OnePage::HOMEPAGE_PAGES_SETTINGS_KEY, '[]')); if (empty($pageIds)) { return []; } // get all available pages $pages = Content::whereIn('id', $pageIds) ->with('subpages'); if (\Auth::user()) { $pages = $pages->where('status', '!=', IContent::STATUS_DRAFT); } else { $pages = $pages->where('status', IContent::STATUS_PUBLIC); } $homepagePages = $pages->get() ->getDictionary(); foreach ($pageIds as $pageId) { if (!isset($homepagePages[$pageId])) { continue; } self::$homepagePages[] = $homepagePages[$pageId]; } return self::$homepagePages; } }