aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-10-24Database update: The maximum amount of characters for the argument field has ↵v2.4.1Thomas Lange4-6/+6
been increased from 100 to 250. Database update to version 2.4.1 (no existing data will be lost or changed): ALTER TABLE `page` MODIFY `argv` VARCHAR(250); ALTER TABLE `post` MODIFY `argv` VARCHAR(250); ALTER TABLE `user` MODIFY `argv` VARCHAR(250);
2017-10-24Some comments have been updated, unnecessary whitespace at the end of some ↵Thomas Lange26-34/+33
files was removed and some missing PHP closing tags were added.
2017-10-23CSS: Unnecessary height property removed.Thomas Lange1-1/+1
2017-10-23There was a tiny mistake in the previous commit which has been fixed.Thomas Lange1-1/+2
2017-10-23An overwrite mechanism for the application's configuration has been ↵Thomas Lange2-85/+65
implemented. This makes the configuration.php much cleaner and you only have to define configuration values if the default values doesn't satisfy you. In addition, it makes it easier to implement new configuration values to the core without the need, that the users have to update their personal configuration.php files manually.
2017-10-23The methods "setCookie" and "getCookie" have been added to the HTTP class.Thomas Lange1-0/+14
2017-10-22Implemented: A full-text search functionality for posts and pages in the ↵Thomas Lange14-6/+238
administration area. In addition, some markup within the "/*/index.php" files of the admin template was re-formatted.
2017-10-14A new Font Awesome icon was added to the admin template. This icon is used ↵Thomas Lange3-0/+7
later for the coming search function in the administration area.
2017-10-13WARNING: This commit updates the table engine for the "post" table from ↵v2.4Thomas Lange1-10/+20
MyISAM to InnoDB and results in version 2.4. The only reason why the post table originally used MyISAM instead of InnoDB as engine was because the post table had a FULLTEXT index, which was only possible with MyISAM tables on MySQL versions smaller than 5.6 and MariaDB versions smaller than 10.0.5. However, MyISAM tables do not know foreign keys, so no relationship between the post and the user table could be established (which is bad for data integrity). In newer versions of MySQL or MariaDB are FULLTEXT indexes also possible on InnoDB tables. So, we can now update the post table to InnoDB to keep the FULLTEXT search functionality and we can add a foreign key for data integrity. This means for you: If you are already using a recent version of MySQL or MariaDB, you can safely make the update (always make a backup first). If you are not using at least MariaDB 10.0.5 or MySQL 5.6, you will have to wait with this (and all further) commits / updates until you have upgraded your database server to a more recent version. Database update to version 2.4 (no existing data will be lost or changed): ALTER TABLE `post` ENGINE=InnoDB; ALTER TABLE `post` DROP INDEX `body`; ALTER TABLE `page` ADD FULLTEXT KEY `search` (`name`, `body`); ALTER TABLE `post` ADD FULLTEXT KEY `search` (`name`, `body`); ALTER TABLE `post` ADD CONSTRAINT `post_user` FOREIGN KEY (`user`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
2017-10-10The heading icon on the form pages has been changed.Thomas Lange6-6/+6
2017-09-16The original font "Font Awesome" has been replaced by a minimized version ↵Thomas Lange4-3/+193
from Fontello.com, which contains only the absolutely necessary icons. This reduces the size of the font file to download to approximately 70 kilobytes. This is beneficial for smartphone users who have an extremely throttled data connection (for example, 32 KBit/s – yes, no joke!), which is not unusual in Germany where mobile internet is still expensive. On the other hand, it is always a good idea to load only what is really necessary. And why always (with cold browser cache) download unnecessary 70 kilobytes, when it is not necessary?
2017-09-15The IDs of the items in the overview lists of the admin template are now no ↵Thomas Lange4-5/+9
longer displayed within a <h2> element and have been moved to the underlying <div> element.
2017-09-15A tiny mistake in the german core translation has been fixed.Thomas Lange1-1/+1
2017-09-15All occurrences of "var" have been replaced by the new introduced keywords ↵Thomas Lange2-25/+25
"const" and "let" from ECMAScript 6 (2015), which scopes the variables to the nearest enclosing block instead of the nearest function block.
2017-09-15The unnecessary second list for the "Login" and "Logout" list points in the ↵Thomas Lange2-15/+12
main navigation of the admin template have been removed.
2017-09-15An invisible text has been added to each action icon in the item list of the ↵Thomas Lange4-10/+10
admin template so that users who do not have CSS enabled or using a web browser such as "Lynx" are able to understand and click the links (instead of seeing an empty and unclickable list item with no further information).
2017-09-14Some markup optimizations has been made to both templates (the HTML5 ↵Thomas Lange17-79/+63
<article> element is more correct for the purpose of an item list, because real lists should only be used if the order of the items would change the meaning. This is not the case, because each item is a self-contained area which has nothing to do with the other items).
2017-09-02Some HTML and CSS optimizations has been made to the standard template and ↵Thomas Lange4-12/+12
the "title" attribute was added to every heading link in the item list.
2017-09-02Bugfix: An undefined array index "NAME" was used in the user navigation ↵v2.3.1Thomas Lange1-2/+2
instead of the existing index "FULLNAME". This problem has existed since the first initial commit and was only present when more than one user had existed (it did not have affected the functionality of the navigation itself).
2017-09-02Multiple <section> elements were replaced by simple <div> elements. If a ↵Thomas Lange6-19/+19
container element is only used for the CSS and has no semantic meaning, then a <section> element is definitely wrong for this purpose.
2017-09-02Some code optimizations has been made in admin/index.php to prevent ↵Thomas Lange2-8/+12
duplicate definitions of the same SQL query. Additionally, the default database fetch mode was changed to FETCH_ASSOC.
2017-09-02An unnecessary "else" block in admin/auth.php was removed and spelling ↵Thomas Lange3-23/+18
mistakes and inconsistencies in some comments were corrected.
2017-08-13A missing Font Awesome icon for the login page was added to the admin template.Thomas Lange1-1/+1
2017-08-11Several changes have been made in this commit, which together with the ↵v2.3Thomas Lange44-148/+154
previous commits result in version 2.3: + Optimization: Originally, the core and template languages were completely separated in the logic of the Language class and you had to use "$Language->text()" to get a core language string and "$Language->template()" to get a template language string. Since this commit, the core and template language strings are still located in different files, but you now have to use "$Language->text()" for core and template language strings both. Thus, you can now even overwrite a core language string from the language file of a template if the core language string does not satisfy you. + Deprecated: The method "$Language->template()" was marked as deprecated and will be removed in further versions (currently, it's just an alias for "$Language->text()"). Template upgrade to version 2.3 (only for customized templates): SEARCH: $Language->template REPLACE: $Language->text
2017-08-10The SQL queries for the HTTP ETag header generation have been combined into ↵Thomas Lange1-11/+8
one single query. In addition, some meaningless code was removed.
2017-08-02The <title> and <link> elements within <image> should have the same value as ↵Thomas Lange1-1/+1
the <title> and <link> elements within <channel>. This is described in the RSS 2.0 specification.
2017-08-02The <link> elements within <channel> and <image> should not contain the URL ↵Thomas Lange1-2/+2
to the RSS feed itself, but rather to the corresponding HTML website. This is described in the RSS 2.0 specification.
2017-08-02Hardcoded number from the en language file of the standard template removed.Thomas Lange1-1/+1
2017-07-31Some comments has been restructured and minified.Thomas Lange2-20/+4
2017-07-31Three internationalization strings and one CSS class have been added to the ↵Thomas Lange3-0/+15
admin template for later use.
2017-07-26The "title" attribute has been added to the link tag of the stylesheet so ↵Thomas Lange1-1/+1
that browsers like Firefox can display the name of the stylesheet under "View -> Page Style".
2017-07-10A small mistake in the DE translation for the admin template has been fixed.Thomas Lange1-1/+1
2017-07-07The function "makeSlugURL" has been renamed to "generateSlug" because the ↵Thomas Lange10-26/+32
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-31Optimizations and tiny design update for the admin template:Thomas Lange6-41/+78
+ The form buttons for insert, update and delete are now having a corresponding background color (green, blue and red). + The information messages are now displayed within the <form> element and with a red background color around the text.
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