diff options
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 |