pages = $pageRepository; $this->auth = $authService; $this->themes = $themeService; $this->sort = $sortingService; } public function init($second, $third, $fourth) { switch ($second) { case 'settings': return $this->settings(); break; case 'navigation': return $this->navigavtion(); break; case 'pages': ($third == null) ? $third = 'all' : $third = $third; ($fourth == null) ? $fourth = 1 : $fourth = $fourth; return $this->book($third, $fourth); break; case 'page': return $this->page($third, $fourth); break; case 'logout': session()->flush(); return redirect()->intended('dashboard'); break; default: return $this->start(); break; } } public function login() { if ($this->auth::status()) { return redirect('dashboard/start'); } else { return view('back.login', [ "status" => $this->auth::status(), "title" => "Hi!" ]); } } public function start() { $result = []; if ($this->auth::status()) { $result = $this->pages->getGroup(1, 4); } return view('back.start', [ "status" => $this->auth::status(), "result" => $result, "title" => "Start" ]); } public function book($pageFilter = 'all', $pageNum = 1) { $result = []; if ($this->auth::status()) { $result = $this->pages->getGroup($pageNum, 4, $pageFilter); } return view('back.book', [ "status" => $this->auth::status(), "result" => $result, "currentPage" => $pageNum, "title" => "Pages" ]); } public function page($mode, $uuid) { $title; $page = []; $views = []; $mode == 'edit' ? $page = $this->pages->getById($uuid) : $page = []; $mode == 'edit' ? $title = $page['title'] : $title = 'Add New'; $mode == 'edit' ? $views = $this->themes->getCustomViews($page['layout']) : $views[] = 'page'; return view('back.page', [ "status" => $this->auth::status(), "mode" => $mode, "page" => $page, "views" => $views, "title" => $title, ]); } public function navigation() { return view('back.navigation', $this->sort->navigation()); } public function settings() { return view('back.settings', $this->sort->settings()); } }