diff options
author | Thomas Lange <code@nerdmind.de> | 2017-04-27 12:37:01 +0200 |
---|---|---|
committer | Thomas Lange <code@nerdmind.de> | 2017-04-27 12:37:01 +0200 |
commit | 22dacc02179643ddd4578a34cf8693ef86791cf7 (patch) | |
tree | e5d575fcf12d30aee0eb21e4259ed5d611df37de /core | |
parent | 39944454324b4c66b8cf2444cca17c149208dfac (diff) | |
download | blog-2.0.tar.gz blog-2.0.tar.xz blog-2.0.zip |
Several changes have been made in this commit, which together with the previous commits result in version 2.0 (database update required):v2.0
+ Implemented [core]: A new database field has been added to all tables to define optional "arguments" for a page, post or user through the content editor. These arguments will be parsed into key->value pairs and can be used within templates to do something special. Please read the wiki of this repository for further information about this new feature.
+ Bugfix [core]: The function "makeSlugURL" had not convert uppercase umlauts to lowercase because "strtolower" was used instead of the multibyte equivalent "mb_strtolower".
+ Optimization [core]: The first regular expression within the function "makeSlugURL" has been optimized (checking for uppercase characters at this point is unnecessary because $string is only lowercase).
+ Optimization [all templates]: Markup for the pagination.php has been simplified (a little bit).
+ Optimization [admin template]: The javascript for the arrow key navigation has been outsourced to the main.js file.
+ Optimization [admin template]: The javascript file will now be included with the "defer" attribute.
+ Optimization [standard template]: Some language variables have been changed.
Database update to version 2.0 (no existing data will be lost or changed):
ALTER TABLE `page` ADD `argv` VARCHAR(100) NULL DEFAULT NULL AFTER `body`;
ALTER TABLE `post` ADD `argv` VARCHAR(100) NULL DEFAULT NULL AFTER `body`;
ALTER TABLE `user` ADD `argv` VARCHAR(100) NULL DEFAULT NULL AFTER `body`;
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; |