From 1f1cf3b71b4fc935a2ca168041e6ae53fc19151a Mon Sep 17 00:00:00 2001 From: Timothy Rogers Date: Sat, 1 Aug 2020 23:52:45 -0400 Subject: [PATCH] Blog and Pages are now database driven, woo! --- app/.htaccess | 6 ++++ app/Config/Routes.php | 2 +- app/Controllers/Blog.php | 4 ++- app/Controllers/Pages.php | 46 ++++++++++++++++++------------ app/Database/Migrations/.gitkeep | 0 app/Database/Seeds/.gitkeep | 0 app/Filters/.gitkeep | 0 app/Helpers/.gitkeep | 0 app/Language/.gitkeep | 0 app/Libraries/.gitkeep | 0 app/Models/.gitkeep | 0 app/Models/BlogModel.php | 11 +++++++- app/Models/PagesModel.php | 21 ++++++++++++++ app/ThirdParty/.gitkeep | 0 app/Views/blog/overview.php | 6 ++-- app/Views/blog/view.php | 4 ++- app/Views/pages/view1.php | 6 ++++ app/Views/pages/view2.php | 1 + public/.htaccess | 48 ++++++++++++++++++++++++++++++++ writable/.htaccess | 6 ++++ 20 files changed, 137 insertions(+), 24 deletions(-) create mode 100644 app/.htaccess create mode 100644 app/Database/Migrations/.gitkeep create mode 100644 app/Database/Seeds/.gitkeep create mode 100644 app/Filters/.gitkeep create mode 100644 app/Helpers/.gitkeep create mode 100644 app/Language/.gitkeep create mode 100644 app/Libraries/.gitkeep create mode 100644 app/Models/.gitkeep create mode 100644 app/Models/PagesModel.php create mode 100644 app/ThirdParty/.gitkeep create mode 100644 app/Views/pages/view1.php create mode 100644 app/Views/pages/view2.php create mode 100644 public/.htaccess create mode 100755 writable/.htaccess diff --git a/app/.htaccess b/app/.htaccess new file mode 100644 index 0000000..f24db0a --- /dev/null +++ b/app/.htaccess @@ -0,0 +1,6 @@ + + Require all denied + + + Deny from all + diff --git a/app/Config/Routes.php b/app/Config/Routes.php index ce0a034..56b9bb4 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -30,9 +30,9 @@ $routes->setAutoRoute(true); // We get a performance increase by specifying the default // route since we don't have to scan directories. -$routes->get('(:any)', 'Pages::view/$1'); $routes->get('blog', 'Blog::index'); $routes->get('blog/(:segment)', 'Blog::view/$1'); +$routes->get('(:any)', 'Pages::view/$1'); /** * -------------------------------------------------------------------- diff --git a/app/Controllers/Blog.php b/app/Controllers/Blog.php index fdc672a..b3fa870 100644 --- a/app/Controllers/Blog.php +++ b/app/Controllers/Blog.php @@ -2,6 +2,7 @@ use App\Models\BlogModel; use CodeIgniter\Controller; +use CodeIgniter\Services; class Blog extends Controller { @@ -11,7 +12,8 @@ class Blog extends Controller $model = new BlogModel(); $data = [ - 'blog' => $model->getBlog(), + 'blog' => $model->orderBy('id', 'DESC')->paginate(5), + 'pager' => $model->pager, 'title' => 'Blog', ]; diff --git a/app/Controllers/Pages.php b/app/Controllers/Pages.php index f5d7f37..7ffac11 100644 --- a/app/Controllers/Pages.php +++ b/app/Controllers/Pages.php @@ -1,28 +1,38 @@ getPage('home'); + }else{ + $data['page'] = $model->getPage($slug); } - echo view('common/header'); - echo view('pages/'.$page); - echo view('common/footer'); - } + if (empty($data['page'])) + { + throw new \CodeIgniter\Exceptions\PageNotFoundException('Cannot find the page: '. $slug); + } + + $data['data'] = $data['page']['name']; + $viewtype = $data['page']['contain']; + + echo view('common/header', $data); + if ($viewtype == 1) { + echo view('pages/view1', $data); + }else{ + echo view('pages/view2', $data); + } + echo view('common/footer', $data); + } } diff --git a/app/Database/Migrations/.gitkeep b/app/Database/Migrations/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/Database/Seeds/.gitkeep b/app/Database/Seeds/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/Filters/.gitkeep b/app/Filters/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/Helpers/.gitkeep b/app/Helpers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/Language/.gitkeep b/app/Language/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/Libraries/.gitkeep b/app/Libraries/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/Models/.gitkeep b/app/Models/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/Models/BlogModel.php b/app/Models/BlogModel.php index 3a015db..3064d6f 100644 --- a/app/Models/BlogModel.php +++ b/app/Models/BlogModel.php @@ -1,16 +1,19 @@ findAll(); + return $this->orderBy('id', 'DESC') + ->findAll(); } return $this->asArray() @@ -18,4 +21,10 @@ class BlogModel extends Model ->first(); } + public function getBlogs($limit = false, $offset = 0) + { + return $this->orderBy('id', 'DESC') + ->findAll($limit, $offset); + } + } \ No newline at end of file diff --git a/app/Models/PagesModel.php b/app/Models/PagesModel.php new file mode 100644 index 0000000..da287e3 --- /dev/null +++ b/app/Models/PagesModel.php @@ -0,0 +1,21 @@ +findAll(); + } + + return $this->asArray() + ->where(['slug' => $slug]) + ->first(); + } + +} \ No newline at end of file diff --git a/app/ThirdParty/.gitkeep b/app/ThirdParty/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/Views/blog/overview.php b/app/Views/blog/overview.php index c078e39..8fab034 100644 --- a/app/Views/blog/overview.php +++ b/app/Views/blog/overview.php @@ -6,15 +6,17 @@ -

+

- +

View article

+ simpleLinks() ?> +

No News

diff --git a/app/Views/blog/view.php b/app/Views/blog/view.php index 0b2f9de..70e65d8 100644 --- a/app/Views/blog/view.php +++ b/app/Views/blog/view.php @@ -1,6 +1,8 @@

- + +
+Back To Blog
\ No newline at end of file diff --git a/app/Views/pages/view1.php b/app/Views/pages/view1.php new file mode 100644 index 0000000..256756b --- /dev/null +++ b/app/Views/pages/view1.php @@ -0,0 +1,6 @@ +
+
+

+ +
+
diff --git a/app/Views/pages/view2.php b/app/Views/pages/view2.php new file mode 100644 index 0000000..4926299 --- /dev/null +++ b/app/Views/pages/view2.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..02026a3 --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,48 @@ +# Disable directory browsing +Options All -Indexes + +# ---------------------------------------------------------------------- +# Rewrite engine +# ---------------------------------------------------------------------- + +# Turning on the rewrite engine is necessary for the following rules and features. +# FollowSymLinks must be enabled for this to work. + + Options +FollowSymlinks + RewriteEngine On + + # If you installed CodeIgniter in a subfolder, you will need to + # change the following line to match the subfolder you need. + # http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase + # RewriteBase / + + # Redirect Trailing Slashes... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule ^(.*)/$ /$1 [L,R=301] + + # Rewrite "www.example.com -> example.com" + RewriteCond %{HTTPS} !=on + RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] + RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L] + + # Checks to see if the user is attempting to access a valid file, + # such as an image or css document, if this isn't true it sends the + # request to the front controller, index.php + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA] + + # Ensure Authorization header is passed along + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + + + # If we don't have mod_rewrite installed, all 404's + # can be sent to index.php, and everything works as normal. + ErrorDocument 404 index.php + + +# Disable server signature start + ServerSignature Off +# Disable server signature end diff --git a/writable/.htaccess b/writable/.htaccess new file mode 100755 index 0000000..f24db0a --- /dev/null +++ b/writable/.htaccess @@ -0,0 +1,6 @@ + + Require all denied + + + Deny from all +