content = $content; } /** * Load page by URL * * This method also caches content * * @param $url * * @return mixed */ public function getPage($url) { $contentRepository = $this->content; $page = Cache::remember('content-' . $url, setting('contentCacheLifetime', 5), function () use ($contentRepository, $url) { return $contentRepository->getByURL($url); }); // no page available if (!$page) { abort(404); } return $this->renderPage($page); } /** * Method used for rendering page for visitor * * @param ContentModel $page * * @return mixed * @throws \Exception */ protected function renderPage(ContentModel $page) { // test if loaded page is visible or not if ($page->isProtected() && !Auth::user()) { abort(404); } $displayPipeline = app('displayPipeline'); $page = $displayPipeline->run($page); return Controller::visitorsView($page->template, ['page' => $page]); } }