pages = $pageRepository; $this->member = $memberRepo; $this->assets = $assetService; $this->sort = $sortService; $this->themes = $themeService; } public function start() { if ($this->member::status()) { return view('theme.start', [ "status" => $this->member::status(), "title" => "Fipamo Theme Kit", "pages" => $this->themes->getCustomViews('page') ]); } else { return redirect('dashboard'); } } public function getView($view = 'index', $id = null) { //move assets to theme testing dir $this->assets->moveToTheme(); $currentTheme = $this->assets->getCurrentTheme(); $template; $pageData = []; switch ($view) { case "index": case "page": $page; if ($view == 'index') { $template = $currentTheme . '.index'; $page = $this->pages->getById(0); } else { $template = $currentTheme . '.page'; //if coming from theme page, grabs id of latest page if ($id == null) { $uuid = $this->getPageUUID(); } else { //get page by uuid $page = $this->pages->getByUuid($id); } } $pageData = $this->sort->page($page); break; case "tags": $template = $currentTheme . '.tags'; $pageData = $this->sort->tags(); break; case "archives": case "archive": $template = $currentTheme . '.archive'; $pageData = $this->sort->archive(); break; default: $template = $currentTheme . '.index'; $page = $this->pages->getBySlug('first'); $pageData = $this->sort->page($page); } if ($this->member::status()) { return view($template, $pageData); } else { return redirect('dashboard/start'); } } private function getPageUUID() { $book = $this->pages->getAll(); $page = $book->where('layout', 'page')->first(); return $page['uuid']; } }