From 8e9578dcc45c11df3a6d7d1579d58340a1f13a7b Mon Sep 17 00:00:00 2001 From: Diego Najar Date: Mon, 4 Sep 2017 19:09:37 +0200 Subject: [PATCH] Predefined pages, such as homepage and page not found --- bl-kernel/admin/controllers/settings-advanced.php | 2 ++ bl-kernel/admin/views/settings-advanced.php | 14 ++++++++++++-- bl-kernel/boot/rules/69.pages.php | 4 ++-- bl-kernel/dbsite.class.php | 11 +++++++++++ bl-kernel/functions.php | 4 ++-- bl-languages/en.json | 5 ++++- 6 files changed, 33 insertions(+), 7 deletions(-) diff --git a/bl-kernel/admin/controllers/settings-advanced.php b/bl-kernel/admin/controllers/settings-advanced.php index cd35d32f..79433e9d 100644 --- a/bl-kernel/admin/controllers/settings-advanced.php +++ b/bl-kernel/admin/controllers/settings-advanced.php @@ -94,4 +94,6 @@ foreach($allPublishedPages as $key=>$page) { } else { $homepageOptions[$key] = $page->title(); } + + ksort($homepageOptions); } \ No newline at end of file diff --git a/bl-kernel/admin/views/settings-advanced.php b/bl-kernel/admin/views/settings-advanced.php index ca7cdd6f..e8835c87 100644 --- a/bl-kernel/admin/views/settings-advanced.php +++ b/bl-kernel/admin/views/settings-advanced.php @@ -28,11 +28,11 @@ HTML::formOpen(array('class'=>'uk-form-horizontal')); 'tip'=>$L->g('the-url-of-your-site') )); - HTML::legend(array('value'=>$L->g('Home page'))); + HTML::legend(array('value'=>$L->g('Predefined pages'))); HTML::formSelect(array( 'name'=>'homepage', - 'label'=>$L->g('Default home page'), + 'label'=>$L->g('Home page'), 'options'=>$homepageOptions, 'selected'=>$Site->homepage(), 'class'=>'uk-width-1-3 uk-form-medium', @@ -40,6 +40,16 @@ HTML::formOpen(array('class'=>'uk-form-horizontal')); 'addEmptySpace'=>true )); + HTML::formSelect(array( + 'name'=>'pageNotFound', + 'label'=>$L->g('Page not found'), + 'options'=>$homepageOptions, + 'selected'=>$Site->pageNotFound(), + 'class'=>'uk-width-1-3 uk-form-medium', + 'tip'=>'', + 'addEmptySpace'=>true + )); + HTML::legend(array('value'=>$L->g('Website or Blog'))); HTML::formSelect(array( diff --git a/bl-kernel/boot/rules/69.pages.php b/bl-kernel/boot/rules/69.pages.php index 34bad64a..e807c0aa 100644 --- a/bl-kernel/boot/rules/69.pages.php +++ b/bl-kernel/boot/rules/69.pages.php @@ -134,9 +134,9 @@ elseif ($Url->whereAmI()==='admin') { // Set page 404 not found if ($Url->notFound()) { - $page = $Page = buildPage('error'); + $page = buildPage( $Site->pageNotFound() ); if ($page===false) { $page = buildErrorPage(); } - $pages[0] = $page; + $pages[0] = $Page = $page; } diff --git a/bl-kernel/dbsite.class.php b/bl-kernel/dbsite.class.php index 9ebdb1b1..9b1639b6 100644 --- a/bl-kernel/dbsite.class.php +++ b/bl-kernel/dbsite.class.php @@ -14,6 +14,7 @@ class dbSite extends dbJSON 'theme'=> array('inFile'=>false, 'value'=>'pure'), 'adminTheme'=> array('inFile'=>false, 'value'=>'default'), 'homepage'=> array('inFile'=>false, 'value'=>''), + 'pageNotFound'=> array('inFile'=>false, 'value'=>''), 'uriPage'=> array('inFile'=>false, 'value'=>'/'), 'uriTag'=> array('inFile'=>false, 'value'=>'/tag/'), 'uriCategory'=> array('inFile'=>false, 'value'=>'/category/'), @@ -290,6 +291,16 @@ class dbSite extends dbJSON return $homepage; } + // Returns the page defined for "Page not found", FALSE if not defined + public function pageNotFound() + { + $pageNotFound = $this->getField('pageNotFound'); + if( empty($pageNotFound) ) { + return false; + } + return $pageNotFound; + } + // Set the locale, returns TRUE is success, FALSE otherwise public function setLocale($locale) { diff --git a/bl-kernel/functions.php b/bl-kernel/functions.php index 81ac8707..fd4ce913 100644 --- a/bl-kernel/functions.php +++ b/bl-kernel/functions.php @@ -72,8 +72,8 @@ function buildErrorPage() { global $Language; $page = new Page(false); - $page->setField('title', 'Page not found'); - $page->setField('content', $Language->get('installer-page-error-content')); + $page->setField('title', $Language->get('page-not-found')); + $page->setField('content', $Language->get('page-not-found-content')); return $page; } diff --git a/bl-languages/en.json b/bl-languages/en.json index 45de8287..ac3c02e3 100644 --- a/bl-languages/en.json +++ b/bl-languages/en.json @@ -147,5 +147,8 @@ "there-are-no-draft-pages": "There are no draft pages", "order-content-by": "Order content By", "edit-or-delete-content-from-your-site": "Edit or delete content from your site", - "order-the-content-by-position-to-build-a-website": "Order the content by position to build a Website or order the content by date to build a Blog." + "order-the-content-by-position-to-build-a-website": "Order the content by position to build a Website or order the content by date to build a Blog.", + "page-not-found-content": "Hey! look like the page doesn't exist.", + "page-not-found": "Page not found", + "predefined-pages": "Predefined pages" } \ No newline at end of file