summaryrefslogtreecommitdiffstats
path: root/core/functions.php
AgeCommit message (Collapse)AuthorFilesLines
2018-09-09Correct regex replace stringsThomas Lange1-2/+2
2018-09-09Add function "parseUnicodeEmoticons"Thomas Lange1-0/+14
This function wraps all the UTF-8 encoded emoticons (from "getUnicodeEmoticons") found in $string into a "span" element with a "title" attribute, which will contain the emoticon explanation text.
2018-09-09Add function "getUnicodeEmoticons"Thomas Lange1-0/+24
This function returns an associative array with the UTF-8 encoded emoticon character as key and the corresponding explanation text as value.
2018-01-08Bugfix: Incorrect behavior of the "truncate" function in some circumstances:Thomas Lange1-2/+5
If the first word from $string was longer than $length characters, then the regular expression had not truncated the string at all (for example, a string with a total length of 2000 characters was displayed without any cut, but with the $replace string at the end). This bug has been reported by Markus Hackspacher (https://github.com/MarkusHackspacher).
2017-11-29The "cut" function has been optimized and renamed to "truncate". In ↵Thomas Lange1-7/+8
addition, the $replace parameter is now an empty string by default.
2017-11-28Bugfix: The "excerpt" function had returned a string with unnecessary ↵Thomas Lange1-2/+3
whitespace between the truncated text and the $replace string ("[…]") if the truncated text from the regular expression had contained whitespace at the end (before it was concatenated with $replace). This issue has been fixed by passing the truncated text directly after truncation to the "trim" function (before the truncated text is concatenated with $replace). In addition, the now unnecessary "trim" call within the "excerpt" function has been removed.
2017-07-07The function "makeSlugURL" has been renamed to "generateSlug" because the ↵Thomas Lange1-1/+1
name was misleading because the function did not generate a complete URL, but only a partial string (the slug) for the final URL. By the way, some improvements were made to the code.
2017-05-30 Several changes have been made in this commit, which together with the ↵v2.2Thomas Lange1-101/+31
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-17Explicit types for return values and function parameters added.Thomas Lange1-6/+6
2017-05-05A significant increase in the response time has been achieved, since the ↵v2.1Thomas Lange1-4/+12
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-01The "excerpt" function has been optimized.Thomas Lange1-0/+1
2017-04-29The function "makeSlugURL" has been modified and optimized.Thomas Lange1-6/+10
2017-04-27Several changes have been made in this commit, which together with the ↵v2.0Thomas Lange1-2/+6
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-24Nested function calls for generating the meta description are removed and a ↵Thomas Lange1-3/+14
function was added to perform this task.
2017-03-10Several changes have been made in this commit, which together with the ↵v1.1Thomas Lange1-3/+39
previous commits result in version 1.1: + The rules for the Apache and nginx configuration have been changed and redirects now all requests to the index.php. + A router class has been added which now handles all requests that arrives at the application on the index.php. + Short-hand functions "PAGE", "POST" and "USER" for use in templates added to get specific item data by ID. + More language variables have been added to the core language.
2017-02-24Initial commit.v1.0Thomas Lange1-0/+322