/** * @return void */ public function boot() { $this->getEvents()->listen('router.before', function () { $pages = PageModel::whereEnabled(true)->get(); foreach ($pages as $value) { if ($this->getSetting()->get('site.home') !== 'page_' . $value->id) { if ($value->alias) { $page = new Page($value->id); $this->getRouter()->get($page->getRouting(), function () use($page) { return $this->app->call('Notadd\\Page\\Controllers\\PageController@show', ['id' => $page->getPageId()]); }); } } } }); $this->getRouter()->group(['namespace' => 'Notadd\\Page\\Controllers'], function () { $this->getRouter()->group(['middleware' => 'auth.admin', 'namespace' => 'Admin', 'prefix' => 'admin'], function () { $this->getRouter()->resource('page', 'PageController'); $this->getRouter()->post('page/{id}/delete', 'PageController@delete'); $this->getRouter()->get('page/{id}/move', 'PageController@move'); $this->getRouter()->post('page/{id}/moving', 'PageController@moving'); $this->getRouter()->post('page/{id}/restore', 'PageController@restore'); $this->getRouter()->get('page/{id}/sort', 'PageController@sort'); $this->getRouter()->post('page/{id}/sorting', 'PageController@sorting'); }); $this->getRouter()->resource('page', 'PageController'); }); $this->loadViewsFrom($this->app->basePath() . '/resources/views/pages/', 'page'); }
/** * @param $id * @return \Illuminate\Contracts\View\View */ public function show($id) { $page = new Page($id); $this->events->fire(new OnPageShow($this->app, $this->view, $page)); $template = $page->getTemplate(); $template || ($template = 'default::page.default'); $this->view->exists($template) || ($template = 'default::page.default'); if ($this->setting->get('site.home') !== 'page_' . $id) { $this->seo->setTitleMeta($page->getTitle() . ' - {sitename}'); } $this->seo->setDescriptionMeta($page->getDescription()); $this->seo->setKeywordsMeta($page->getKeywords()); $this->share('content', $page->getContent()); $this->share('logo', file_get_contents(realpath($this->app->frameworkPath() . '/views/install') . DIRECTORY_SEPARATOR . 'logo.svg')); $this->share('page', $page); $this->share('title', $page->getTitle()); $this->share('subPages', $page->getSubPages()); return $this->view($template); }
/** * @return mixed */ public function getPage() { return $this->page->getModel(); }