aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-05-31Two changes have been made in this commit:Thomas Lange6-61/+69
+ Update [core]: Parsedown has been updated to version 1.6.2. + Optimization [admin template]: The markdown buttons have been placed directly above the content editor. + Optimization [admin template]: The content editor has been visually embellished (padding from the parent was removed).
2017-05-31Bugfix: There was a problem with the formular for editing users which have ↵v2.2.1Thomas Lange1-1/+1
been fixed in version 2.2.1 In all versions before 2.2 the template parameter $FORM['DATA']['PASSWORD'] was explicitly given, but always set to the value "NULL". Due to the changes in version 2.2, the parameter is no longer passed at all, which caused PHP to issue an notice via an undefined array index. The problem has now been solved by removing the "value" attribute for the password field from the form.
2017-05-30 Several changes have been made in this commit, which together with the ↵v2.2Thomas Lange19-251/+102
previous commits result in version 2.2 [changed template parameters]: + Implemented [core]: A new method called "getAll" has been added to the "Attribute" class which now returns all attributes as key->value array. The first parameter can be an array with attribute names which shall be excluded from returning. + Optimization [core]: The function "generateItemData" has been renamed to "generateItemTemplateData" and has been restructured to use the new implemented method "getAll" from the "Attribute" class. + Optimization [core]: The function "generateNaviTemplate" has been added and the functions "generatePageNaviTemplate", "generatePostNaviTemplate" and "generateUserNaviTemplate" have been restructured to make use of the new "generateNaviTemplate" function to reduce duplicate code. + Optimization [core]: Several files within the admin directory has been optimized to use the new "getAll" method of the "Attribute" class. + Optimization [core]: Several code optimizations have been made to the "HTTP" class. + Optimization [admin template]: All occurences of $PAGE['ID'], $POST['ID'] and $USER['ID'] have been replaced with $PAGE['ATTR']['ID'], $POST['ATTR']['ID'] and $USER['ATTR']['ID'] to make it more consistent. You now have to use ['ATTR']['ID'] instead of ['ID'] in your templates to get the ID of an item! Template upgrade to version 2.2 (only for customized templates): SEARCH: ['ID'] REPLACE: ['ATTR']['ID']
2017-05-21Bugfixes: There were two problems with the internal sorting of items which ↵v2.1.2Thomas Lange2-7/+7
have been fixed. This results in version 2.1.2 (database update recommended): + Bugfix [core]: If the insertion date of a newly created item has been placed to a datetime in the past after which other items have already appeared, the sorting of the forward and backward functionality has been interrupted because the WHERE clause in the database query had the condition that the next item must have a higher ID and the previous item must have a lower ID than the current one. If this newly created item was the last one and the insertion date had been placed to a datetime in the past, no next item could be fetched because THIS is already the item with the highest ID and the correct sorting by time_insert for this item has stopped working. + Bugfix [core]: If one or more items had exactly the same insertion time, the items with the exact same time has been appeard within the overview list in an order which did not correspond to the insertion sequence. There were several ways to fix this problem, but this would result in more complicated database queries and more code. To fix the problem in the simplest way, the column "time_insert" now has a UNIQUE index to prevent two or more items from having the exactly same insertion time. Database update to version 2.1.2 (no existing data will be lost or changed): ALTER TABLE `page` ADD UNIQUE KEY `time_insert` (`time_insert`); ALTER TABLE `post` ADD UNIQUE KEY `time_insert` (`time_insert`); ALTER TABLE `user` ADD UNIQUE KEY `time_insert` (`time_insert`);
2017-05-21Several changes have been made to the admin template, which together with ↵v2.1.1Thomas Lange7-214/+205
the previous commits result in version 2.1.1: + Optimization [CSS]: Unused .fa-* classes have been removed. + Optimization [CSS]: Hyphens have been disabled for the text within the content editor. + Optimization [CSS]: Some elements now have a smaller padding value which has benefits if the page is displayed on a mobile device. + Optimization [HTML]: The HTML <section> elements of the formular have been replaced with simple <div> elements because <section> elements should only be used for self-contained areas which have nothing to do with the rest of the content. The using of <section> elements at this place was semantically incorrect. + Implemented [JS]: Tab indents which are made by pressing <tab> can now also be removed by pressing <shift>+<tab>. + Optimization [JS]: The functions "emoticonReplace" and "markdownReplace" has been renamed to "insertEmoticon" and "insertMarkdown" and have been restructured. + Optimization [JS]: The DOMContentLoaded event listeners are not required because the file is included with the "defer" attribute. + Optimization [JS]: A function called "delayed" was added which executes a callback function after an delay of 20 ms (the delayed execution of code is necessary for the "insertEmoticon" and "insertMarkdown" functions because the content editor otherwise will losing focus when clicking outside at the emoticon or markdown buttons while the "onmousedown" event listener is still executing).
2017-05-17Explicit types for return values and function parameters added.Thomas Lange1-6/+6
2017-05-14Disable the automatic linking of URLs which are not explicitly wrapped ↵Thomas Lange1-0/+1
around "<" and ">" in markdown syntax.
2017-05-12Bugfix: If the database password is removed within the first "getDatabase" ↵Thomas Lange1-2/+0
call, it will prevent that a new connection can be enforced when calling "getDatabase(TRUE)" because the password was removed in the first call before and doesn't exist anymore (the database connection will fail because of an invalid connection password).
2017-05-12The method "getLanguage" has been restructured.Thomas Lange1-1/+4
2017-05-05Prevent "$ITEM['BODY']['HTML']()" which is a closure since version 2.1 from ↵Thomas Lange2-4/+8
calling twice.
2017-05-05A significant increase in the response time has been achieved, since the ↵v2.1Thomas Lange16-21/+29
template parameters "$ITEM['BODY']['TEXT']" and "$ITEM['BODY']['HTML']" are now no longer strings but closures (anonymous functions). This means that the underlying logic, which parses the content or converts it into Markdown, is not executed until one of these parameters is really needed and called in the template (which maybe significantly increases the response time on a long list of items which not use one of those two parameters). This means that within templates you now have to call these parameters in the following way (note the brackets at the end, which represent a function call): <?=$ITEM['BODY']['TEXT']()?> <?=$ITEM['BODY']['HTML']()?> In the background, the anonymous functions are called and executes $Item->getBody() and $Item->getHTML() only when needed. Previously, $Item->getBody() and $Item->getHTML() were basically executed and the parsed content was passed to the template, regardless of whether these parameters are required in the template or not!
2017-05-04CSS optimization on admin template.Thomas Lange1-3/+2
2017-05-01Semantic HTML5 attribute "type" with value "number" for numeric form fields ↵Thomas Lange3-3/+3
added.
2017-05-01The "excerpt" function has been optimized.Thomas Lange1-0/+1
2017-04-30The date of publication is now displayed in the lists.Thomas Lange5-2/+21
2017-04-30CSS optimization (spaces between icon and text are replaced by margin).Thomas Lange2-4/+4
2017-04-30Hyperlinks to the documentation and the releases on GitHub added to the footer.Thomas Lange2-2/+13
2017-04-30Missing internationalization for feed link titles added.Thomas Lange3-3/+3
2017-04-29ItemFactory does not need to implement FactoryInterface because it is ↵Thomas Lange1-1/+1
already implemented in the parent Factory class.
2017-04-29Template method "get" is now used to get the previously defined name of the ↵Thomas Lange2-2/+2
page (instead of typing it twice).
2017-04-29The values ​​for the "for" and "id" properties have been converted to ↵Thomas Lange4-47/+47
lowercase (to be consistent with the rest of the HTML elements).
2017-04-29Two changes have been made in this commit:Thomas Lange5-3/+41
+ The method "Item::getArguments" has been optimized and checks now the syntax of the argument names (only A-Z, a-z, 0-9 and underscores are allowed). + The admin template has been changed and displays now the used arguments of an item within the list.
2017-04-29The function "makeSlugURL" has been modified and optimized.Thomas Lange1-6/+10
2017-04-28Inline javascript for emoticon and markdown replacement has been outsourced ↵Thomas Lange4-36/+68
into the main.js file.
2017-04-27Router: Regular expressions for feed URLs has been combined.Thomas Lange1-14/+2
2017-04-27Several changes have been made in this commit, which together with the ↵v2.0Thomas Lange21-76/+122
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`;
2017-04-24HTML escaping is required to prevent XML validation errors for some ↵Thomas Lange2-3/+2
characters like "&".
2017-04-24Parameter type declaration changed to "Throwable" because this parameter can ↵Thomas Lange1-1/+1
also be an "Error" which is not a child of "Exception" but each type implements the interface "Throwable".
2017-04-24Nested function calls for generating the meta description are removed and a ↵Thomas Lange6-8/+19
function was added to perform this task.
2017-04-19Comments added and unnecessary "abs" function calls removed.Thomas Lange6-6/+24
2017-04-12Internationalization for markdown format buttons added.Thomas Lange6-28/+54
2017-04-12Inconsistency in array keys for the admin language fixed (they are usually ↵Thomas Lange6-37/+37
lowercase but only the keys for the labels were uppercase).
2017-04-12Inconsistency in the admin template parameters fixed (this does not affect ↵Thomas Lange2-5/+3
any template parameters for the frontend templates).
2017-04-12The file "application.php" has been modified.Thomas Lange1-2/+1
2017-04-12Catch block for PDOException was modified.Thomas Lange1-2/+1
2017-04-12The function "set_exception_handler" was modified.Thomas Lange1-3/+2
2017-04-11The control structures "require_once" have been replaced by a simple ↵Thomas Lange20-27/+23
"require" (except within the 403.php and 404.php where it makes sense, because these files can be directly called or included).
2017-04-11Inconsistency in class method fixed.Thomas Lange1-1/+1
2017-04-11All requests to "favicon.ico" will now be redirected to the current template ↵Thomas Lange2-1/+6
directory "rsrc/favicon.ico" (if the "favicon.ico" inside the root directory does not exist).
2017-04-11Return type declaration "void" added.Thomas Lange1-3/+3
2017-04-11The system directory has been moved to a non-public directory. After the ↵v1.2Thomas Lange10-10/+10
commit e33c245d910e55b8cab407a03e669470509a705d, it is no longer necessary that the directory is publicly accessible via HTTP because all requests are running through the router.
2017-04-11Class "ExceptionHandler" has been removed and several files has been changed.Thomas Lange32-43/+35
2017-04-11Methods "error403" and "error404" has been added to the "Application" class; ↵Thomas Lange17-18/+33
several files has been changed.
2017-04-11Error pages for HTTP status code 403 and 404 moved to another location ↵Thomas Lange6-9/+18
(preparations for the next commits in which the system directory will be moved to a non-public directory).
2017-04-11HTML and CSS markup optimizations for admin template.Thomas Lange7-45/+42
2017-04-11HTML5 <article> tags has been replaced by the more semantic correct ↵Thomas Lange4-8/+8
<blockquote> tags with "cite" attribute.
2017-04-10Javascript for confirmation message on delete buttons was moved to the ↵Thomas Lange4-3/+14
main.js file to prevent trouble with an active Content-Security-Policy in a case where "unsafe-inline" for Javascript is not allowed.
2017-04-09A meta description on 403 and 404 error pages does not makes sense.Thomas Lange2-10/+4
2017-04-07Fixed inconsistency for return type declaration.Thomas Lange1-1/+1
2017-04-07CSS-Bugfix: Missing border was added.Thomas Lange1-0/+2