summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/functions.php8
-rw-r--r--core/namespace/Item.php17
-rw-r--r--core/namespace/Page/Attribute.php1
-rw-r--r--core/namespace/Post/Attribute.php1
-rw-r--r--core/namespace/User/Attribute.php1
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;