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/namespace/Item.php | |
parent | 39944454324b4c66b8cf2444cca17c149208dfac (diff) | |
download | blog-7b365bbc45bc443a4c0325da5340e5bd4a9c2403.tar.gz blog-7b365bbc45bc443a4c0325da5340e5bd4a9c2403.tar.xz blog-7b365bbc45bc443a4c0325da5340e5bd4a9c2403.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/namespace/Item.php')
-rw-r--r-- | core/namespace/Item.php | 17 |
1 files changed, 17 insertions, 0 deletions
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 { |