From 22dacc02179643ddd4578a34cf8693ef86791cf7 Mon Sep 17 00:00:00 2001
From: Thomas Lange <code@nerdmind.de>
Date: Thu, 27 Apr 2017 12:37:01 +0200
Subject: Several changes have been made in this commit, which together with
 the previous commits result in version 2.0 (database update required):

+ 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`;
---
 admin/user/insert.php | 4 +++-
 admin/user/update.php | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

(limited to 'admin/user')

diff --git a/admin/user/insert.php b/admin/user/insert.php
index 334b1ad..81daf98 100644
--- a/admin/user/insert.php
+++ b/admin/user/insert.php
@@ -12,7 +12,7 @@ require '../../core/application.php';
 
 $Attribute = new User\Attribute();
 
-if(HTTP::issetPOST('id', 'slug', 'username', 'password', 'fullname', 'mailaddr', 'body', 'time_insert', 'time_update', 'insert')) {
+if(HTTP::issetPOST('id', 'slug', 'username', 'password', 'fullname', 'mailaddr', 'body', 'argv', 'time_insert', 'time_update', 'insert')) {
 	$Attribute->set('id',       HTTP::POST('id') ? HTTP::POST('id') : FALSE);
 	$Attribute->set('slug',     HTTP::POST('slug') ? HTTP::POST('slug') : makeSlugURL(HTTP::POST('username')));
 	$Attribute->set('username', HTTP::POST('username') ? HTTP::POST('username') : NULL);
@@ -20,6 +20,7 @@ if(HTTP::issetPOST('id', 'slug', 'username', 'password', 'fullname', 'mailaddr',
 	$Attribute->set('fullname', HTTP::POST('fullname') ? HTTP::POST('fullname') : NULL);
 	$Attribute->set('mailaddr', HTTP::POST('mailaddr') ? HTTP::POST('mailaddr') : NULL);
 	$Attribute->set('body',     HTTP::POST('body') ? HTTP::POST('body') : NULL);
+	$Attribute->set('argv',     HTTP::POST('argv') ? HTTP::POST('argv') : NULL);
 	$Attribute->set('time_insert', HTTP::POST('time_insert') ? HTTP::POST('time_insert') : date('Y-m-d H:i:s'));
 	$Attribute->set('time_update', HTTP::POST('time_update') ? HTTP::POST('time_update') : date('Y-m-d H:i:s'));
 
@@ -54,6 +55,7 @@ try {
 			'FULLNAME' => $Attribute->get('fullname'),
 			'MAILADDR' => $Attribute->get('mailaddr'),
 			'BODY'     => $Attribute->get('body'),
+			'ARGV'     => $Attribute->get('argv'),
 			'TIME_INSERT' => $Attribute->get('time_insert'),
 			'TIME_UPDATE' => $Attribute->get('time_update'),
 		],
diff --git a/admin/user/update.php b/admin/user/update.php
index 1e9fa75..cdacfa0 100644
--- a/admin/user/update.php
+++ b/admin/user/update.php
@@ -17,13 +17,14 @@ try {
 	$User = User\Factory::build(HTTP::GET('id'));
 	$Attribute = $User->getAttribute();
 
-	if(HTTP::issetPOST('slug', 'username', 'password', 'fullname', 'mailaddr', 'body', 'time_insert', 'time_update', 'update')) {
+	if(HTTP::issetPOST('slug', 'username', 'password', 'fullname', 'mailaddr', 'body', 'argv', 'time_insert', 'time_update', 'update')) {
 		$Attribute->set('slug',     HTTP::POST('slug') ? HTTP::POST('slug') : makeSlugURL(HTTP::POST('username')));
 		$Attribute->set('username', HTTP::POST('username') ? HTTP::POST('username') : NULL);
 		$Attribute->set('password', HTTP::POST('password') ? password_hash(HTTP::POST('password'), PASSWORD_BCRYPT, ['cost' => 10]) : FALSE);
 		$Attribute->set('fullname', HTTP::POST('fullname') ? HTTP::POST('fullname') : NULL);
 		$Attribute->set('mailaddr', HTTP::POST('mailaddr') ? HTTP::POST('mailaddr') : NULL);
 		$Attribute->set('body',     HTTP::POST('body') ? HTTP::POST('body') : NULL);
+		$Attribute->set('argv',     HTTP::POST('argv') ? HTTP::POST('argv') : NULL);
 		$Attribute->set('time_insert', HTTP::POST('time_insert') ? HTTP::POST('time_insert') : date('Y-m-d H:i:s'));
 		$Attribute->set('time_update', HTTP::POST('time_update') ? HTTP::POST('time_update') : date('Y-m-d H:i:s'));
 
@@ -57,6 +58,7 @@ try {
 				'FULLNAME' => $Attribute->get('fullname'),
 				'MAILADDR' => $Attribute->get('mailaddr'),
 				'BODY'     => $Attribute->get('body'),
+				'ARGV'     => $Attribute->get('argv'),
 				'TIME_INSERT' => $Attribute->get('time_insert'),
 				'TIME_UPDATE' => $Attribute->get('time_update'),
 			],
-- 
cgit v1.2.3