diff options
author | Thomas Lange <code@nerdmind.de> | 2017-02-24 21:27:59 +0100 |
---|---|---|
committer | Thomas Lange <code@nerdmind.de> | 2017-02-24 21:27:59 +0100 |
commit | 52b077a48c743ba4d08ac00520a0bf1ef6deef5f (patch) | |
tree | b4205c194167e0e03e273957cdd0aab3be9fdf01 /core/namespace/Page | |
download | blog-52b077a48c743ba4d08ac00520a0bf1ef6deef5f.tar.gz blog-52b077a48c743ba4d08ac00520a0bf1ef6deef5f.tar.xz blog-52b077a48c743ba4d08ac00520a0bf1ef6deef5f.zip |
Initial commit.v1.0
Diffstat (limited to 'core/namespace/Page')
-rw-r--r-- | core/namespace/Page/Attribute.php | 22 | ||||
-rw-r--r-- | core/namespace/Page/Exception.php | 5 | ||||
-rw-r--r-- | core/namespace/Page/Factory.php | 9 | ||||
-rw-r--r-- | core/namespace/Page/Item.php | 29 |
4 files changed, 65 insertions, 0 deletions
diff --git a/core/namespace/Page/Attribute.php b/core/namespace/Page/Attribute.php new file mode 100644 index 0000000..c12a2c8 --- /dev/null +++ b/core/namespace/Page/Attribute.php @@ -0,0 +1,22 @@ +<?php +namespace Page; + +class Attribute extends \Attribute { + + #=============================================================================== + # Pre-Define database table columns + #=============================================================================== + protected $id = FALSE; + protected $user = FALSE; + protected $slug = FALSE; + protected $name = FALSE; + protected $body = FALSE; + protected $time_insert = FALSE; + protected $time_update = FALSE; + + #=============================================================================== + # Define database table name + #=============================================================================== + const TABLE = 'page'; +} +?>
\ No newline at end of file diff --git a/core/namespace/Page/Exception.php b/core/namespace/Page/Exception.php new file mode 100644 index 0000000..d4794b7 --- /dev/null +++ b/core/namespace/Page/Exception.php @@ -0,0 +1,5 @@ +<?php +namespace Page; + +class Exception extends \Exception {} +?>
\ No newline at end of file diff --git a/core/namespace/Page/Factory.php b/core/namespace/Page/Factory.php new file mode 100644 index 0000000..f53b35f --- /dev/null +++ b/core/namespace/Page/Factory.php @@ -0,0 +1,9 @@ +<?php +namespace Page; + +class Factory extends \ItemFactory { + public static function buildBySlug($slug): \Item { + return self::build(Item::getIDByField('slug', $slug, \Application::getDatabase())); + } +} +?>
\ No newline at end of file diff --git a/core/namespace/Page/Item.php b/core/namespace/Page/Item.php new file mode 100644 index 0000000..c6cece7 --- /dev/null +++ b/core/namespace/Page/Item.php @@ -0,0 +1,29 @@ +<?php +namespace Page; + +class Item extends \Item { + const CONFIGURATION = 'PAGE'; + + #=============================================================================== + # Return absolute page URL + #=============================================================================== + public function getURL(): string { + if(\Application::get('PAGE.SLUG_URLS')) { + return \Application::getPageURL("{$this->Attribute->get('slug')}/"); + } + + return \Application::getPageURL("{$this->Attribute->get('id')}/"); + } + + #=============================================================================== + # Return unique pseudo GUID + #=============================================================================== + public function getGUID(): string { + foreach(\Application::get('PAGE.FEED_GUID') as $attribute) { + $attributes[] = $this->Attribute->get($attribute); + } + + return sha1(implode(NULL, $attributes)); + } +} +?>
\ No newline at end of file |