diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/functions.php | 8 | ||||
-rw-r--r-- | core/namespace/Item.php | 17 | ||||
-rw-r--r-- | core/namespace/Page/Attribute.php | 1 | ||||
-rw-r--r-- | core/namespace/Post/Attribute.php | 1 | ||||
-rw-r--r-- | core/namespace/User/Attribute.php | 1 |
5 files changed, 26 insertions, 2 deletions
diff --git a/core/functions.php b/core/functions.php index c6bdb1e..2e36524 100644 --- a/core/functions.php +++ b/core/functions.php @@ -90,6 +90,7 @@ function generateItemData(Item $Item): array { 'ID' => $Item->getID(), 'URL' => $Item->getURL(), 'GUID' => $Item->getGUID(), + 'ARGV' => $Item->getArguments(), 'PREV' => FALSE, 'NEXT' => FALSE, @@ -108,6 +109,7 @@ function generateItemData(Item $Item): array { 'SLUG' => $Item->attr('slug'), 'NAME' => $Item->attr('name'), 'BODY' => $Item->attr('body'), + 'ARGV' => $Item->attr('argv'), 'TIME_INSERT' => $Item->attr('time_insert'), 'TIME_UPDATE' => $Item->attr('time_update') ] @@ -136,6 +138,7 @@ function generateUserItemData(User\Item $User): array { 'ID' => $User->getID(), 'URL' => $User->getURL(), 'GUID' => $User->getGUID(), + 'ARGV' => $User->getArguments(), 'PREV' => FALSE, 'NEXT' => FALSE, @@ -152,6 +155,7 @@ function generateUserItemData(User\Item $User): array { 'ATTR' => [ 'SLUG' => $User->attr('slug'), 'BODY' => $User->attr('body'), + 'ARGV' => $User->attr('argv'), 'USERNAME' => $User->attr('username'), 'FULLNAME' => $User->attr('fullname'), 'MAILADDR' => $User->attr('mailaddr'), @@ -323,9 +327,9 @@ function description($string, $length = 200, $replace = ' […]') { # Generate a valid slug URL part from a string #=============================================================================== function makeSlugURL($string) { - $string = strtolower($string); + $string = mb_strtolower($string); $string = str_replace(['ä', 'ö', 'ü', 'ß'], ['ae', 'oe', 'ue', 'ss'], $string); - $string = preg_replace('/[^a-zA-Z0-9\-]/', '-', $string); + $string = preg_replace('/[^a-z0-9\-]/', '-', $string); $string = preg_replace('/-+/', '-', $string); return trim($string, '-'); diff --git a/core/namespace/Item.php b/core/namespace/Item.php index f3b6ceb..426dd2a 100644 --- a/core/namespace/Item.php +++ b/core/namespace/Item.php @@ -102,6 +102,23 @@ abstract class Item implements ItemInterface { } #=============================================================================== + # Return parsed arguments + #=============================================================================== + public function getArguments(): array { + if($argv = $this->Attribute->get('argv')) { + foreach(explode('|', rtrim($argv, '|')) as $delimeter) { + $part = explode('=', $delimeter); + + if(!empty($part[0])) { + $arguments[strtoupper($part[0])] = $part[1] ?? TRUE; + } + } + } + + return $arguments ?? []; + } + + #=============================================================================== # Return previous item ID #=============================================================================== public function getPrevID(): int { diff --git a/core/namespace/Page/Attribute.php b/core/namespace/Page/Attribute.php index c12a2c8..b1c4e01 100644 --- a/core/namespace/Page/Attribute.php +++ b/core/namespace/Page/Attribute.php @@ -11,6 +11,7 @@ class Attribute extends \Attribute { protected $slug = FALSE; protected $name = FALSE; protected $body = FALSE; + protected $argv = FALSE; protected $time_insert = FALSE; protected $time_update = FALSE; diff --git a/core/namespace/Post/Attribute.php b/core/namespace/Post/Attribute.php index 6f20183..73af3a2 100644 --- a/core/namespace/Post/Attribute.php +++ b/core/namespace/Post/Attribute.php @@ -11,6 +11,7 @@ class Attribute extends \Attribute { protected $slug = FALSE; protected $name = FALSE; protected $body = FALSE; + protected $argv = FALSE; protected $time_insert = FALSE; protected $time_update = FALSE; diff --git a/core/namespace/User/Attribute.php b/core/namespace/User/Attribute.php index b161fa9..c83fdfc 100644 --- a/core/namespace/User/Attribute.php +++ b/core/namespace/User/Attribute.php @@ -13,6 +13,7 @@ class Attribute extends \Attribute { protected $fullname = FALSE; protected $mailaddr = FALSE; protected $body = FALSE; + protected $argv = FALSE; protected $time_insert = FALSE; protected $time_update = FALSE; |