diff --git a/app/Http/Controllers/Visitor/ContentPage.php b/app/Http/Controllers/Visitor/ContentPage.php new file mode 100644 index 00000000..fc2b19ab --- /dev/null +++ b/app/Http/Controllers/Visitor/ContentPage.php @@ -0,0 +1,43 @@ +where('status', '!=', Content::STATUS_DELETED) + ->first(); + + return $this->renderPage($page); + } + + /** + * Method used for rendering page for visitor + * + * @param Content $page + * + * @return mixed + * @throws \Exception + */ + protected function renderPage(Content $page) + { + // test if loaded page is visible or not + if ($page->status == Content::STATUS_PROTECTED && !Auth::user()) { + throw new \Exception('Cannot access protected resources'); + } + + // get handler + $handler = new $page->module_handler; + + // render page + return $handler->render($page, ''); + // return call_user_func([$handler, 'render'], $page); + } +} diff --git a/app/Http/Controllers/Visitor/Homepage.php b/app/Http/Controllers/Visitor/Homepage.php new file mode 100644 index 00000000..f5dbcb83 --- /dev/null +++ b/app/Http/Controllers/Visitor/Homepage.php @@ -0,0 +1,26 @@ +where('status', '!=', Content::STATUS_DELETED) + ->first(); + + // test if we have any homepage + if (!$page) { + throw new InvalidArgumentException('Cannot load home page!'); + } + + // render page + return $this->renderPage($page); + } +} diff --git a/app/Http/routes.php b/app/Http/routes.php index 1bacb902..75e479f9 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -6,6 +6,9 @@ Route::group(['middleware' => ['web']], function () { + Route::get('/', 'Visitor\Homepage@getIndex') + ->name('page.index'); + // display login form Route::get('login', function () { return view('admin.loginForm.form');