aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-06-24Add configuration option MIGRATOR.ENABLEDThomas Lange1-1/+4
2021-06-24Return NULL instead of config string if unsetThomas Lange1-1/+1
2021-06-24Implement database schema MigratorThomas Lange10-19/+369
This commit implements the new database schema Migrator which keeps track of the on-disk schema and the schema used by the codebase. It tries to makes future database schema upgrades user-friendlier.
2021-06-24Remove migration for migration table (readme)Thomas Lange2-4/+1
This commit removes the migration number 5 which created the migration table. The initialization of the migration table will be implemented in the upcoming migration script by itself. Sorry! If you recently installed the application with a fresh database which contained the migration table, please manually set the schema_version to 4. It is recommended to only install a specific tag instead of the latest master branch unless you are a developer or know what you do. UPDATE migration SET schema_version = 4
2021-06-24Set Database attribute in Application classThomas Lange2-14/+13
2021-06-23Show custom title and description in admin headerThomas Lange1-2/+2
2021-06-22Add missing static keywords and fix typosThomas Lange2-4/+4
2021-06-22Implement new Repository and Entity classesThomas Lange53-1104/+1248
This commit adds new Repository and Entity classes which are better abstracted from the rest of the application. They dont know anymore about configuration options or how to parse to HTML because this is not the job for the ORM but for other parts of the application. The previous commits were a preparation for this big change. An entity now represents just a single record from a specific table of the database – nothing more. The repositories job is it to fetch or update records of the database and instantiate the entities. Another problem that was solved is the high amount of database queries that was needed before. For example, on the blogs home page first were all 10 latest post IDs fetched from the database and then another query was executed with "WHERE id = :id" for *each* single post?! ... This problem is solved with the new repository classes; they now use a single query to fetch and build the entities of the 10 latest posts. This change also solves the problem with database queries spread across the application and limits the exzessive use of try/catch blocks which were used before. The new classes make the whole code much cleaner. :)
2021-06-21Fix prefixes for ADMIN.USER.LIST_* config optionsThomas Lange1-2/+2
2021-06-21Remove unnecessary $ItemTemplate variablesThomas Lange8-27/+7
2021-06-21Rename some template variablesThomas Lange11-24/+24
2021-06-21Rename "attr" method of Item class to "get"Thomas Lange19-34/+34
2021-06-21Remove getArguments method from Item classThomas Lange1-20/+0
2021-06-21Use function parseArgumentsThomas Lange1-1/+1
2021-06-21Add function parseArgumentsThomas Lange1-0/+20
2021-06-21Remove unused methods from Item classThomas Lange1-50/+0
2021-06-21Use function getMarkdownImageURLsThomas Lange2-2/+2
2021-06-21Add function getMarkdownImageURLsThomas Lange1-0/+14
2021-06-21Use function parseEntityContentThomas Lange4-4/+4
2021-06-21Use function parseContentTagsThomas Lange1-1/+3
2021-06-21Add function parseEntityContentThomas Lange1-0/+32
2021-06-21Add function parseContentTagsThomas Lange1-0/+26
2021-06-21Remove getGUID methods from Item classesThomas Lange4-35/+0
2021-06-21Use function generatePseudoGUIDThomas Lange1-1/+1
2021-06-21Add function generatePseudoGUIDThomas Lange1-0/+22
2021-06-21Remove getURL methods from Item classesThomas Lange4-34/+0
2021-06-21Use getEntityURL method of Application classThomas Lange8-9/+9
This commit replaces all calls to "$Item->getURL()" with calls to the previously added "getEntityURL" method of the "Application" class.
2021-06-21Add method getEntityURL to Application classThomas Lange1-0/+20
This commit adds the method "getEntityURL" to the "Application" class. This method takes an instance of "Item" as parameter and then builds the absolute URL of the item from its attribute data.
2021-06-20Call password_verify directly in login scriptThomas Lange2-8/+2
2021-06-19Remove unused variableThomas Lange1-1/+0
2021-06-19Remove ID form field (and rearrange other fields)Thomas Lange9-57/+51
This commit removes the ID form field, enlarges the title form field and rearranges the other form fields in the grid layout.
2021-06-19Rename CRUD methods of Attribute classThomas Lange10-12/+12
2021-06-19Fix missing margin on user listThomas Lange2-0/+9
2021-06-17Update installation instructionsThomas Lange1-4/+5
2021-06-17Add .git to forbidden directoriesThomas Lange2-2/+2
2021-06-17Pass configuration array directly to foreachThomas Lange1-8/+3
2021-06-17Move database.sql to core/db/Thomas Lange2-1/+1
2021-06-17Add migrations directoryThomas Lange5-0/+18
This commit adds the directory core/db/migrations/ which contains all migrations that were applied to the database since the first release.
2021-06-16Add migration table to database.sqlThomas Lange1-0/+7
This commit adds a new table called "migration" to the database which will contain information used for database schema migrations. The current schema version is 5 because 5 modifications (migrations) have been applied to the database schema since the initial release.
2021-06-14Remove more redundant try/catch blocksThomas Lange28-902/+616
Remove all try/catch blocks where the exception handling did not differ from the exception handler already defined by "set_exception_handler".
2021-06-14Remove redundant try/catch blockThomas Lange1-12/+13
Remove the redundant exception handler from core/application.php. The exception handling in the catch block did not differ from the default handler already defined by "set_exception_handler".
2021-06-14Darken background on focused/active buttonsThomas Lange2-2/+21
2021-06-14Remove useless AttributeInterfaceThomas Lange2-7/+1
2021-06-13Use grid layout for items in administration areaThomas Lange24-68/+168
Introduce a new 1/2/3-column CSS grid layout in the administration area for items on overview pages and in the search results. The column count of the grid depends on the users viewport width. In addition, the default value of the following configuration settings has been changed to 12 because 12 can also be divided by 2 and 3 which is useful for the 1/2/3-column grid layout. ADMIN.PAGE.LIST_SIZE = 12 ADMIN.POST.LIST_SIZE = 12
2021-06-13Ignore source maps for Javascript and CSSThomas Lange3-2/+2
2021-06-13Add configuration settings (admin prefixes)Thomas Lange4-6/+20
Introduce the following configuration settings to make it possible to use different settings for the number of displayed items and ordering on the administration areas overview pages. ADMIN.PAGE.LIST_SIZE ADMIN.POST.LIST_SIZE ADMIN.USER.LIST_SIZE ADMIN.PAGE.LIST_SORT ADMIN.POST.LIST_SORT ADMIN.USER.LIST_SORT
2021-06-13Replace the flex layout in favor of a grid layoutThomas Lange11-277/+265
This commit replaces the initial CSS flexbox layout for forms of the admin theme with a more elegant approach called "grid layout". :) Some interesting information: https://www.w3schools.com/css/css_grid.asp https://blog.logrocket.com/flexbox-vs-css-grid/
2021-06-12Remove outline from focused form elementsThomas Lange2-0/+7
2021-06-12Place message boxes outside the <form> elementsThomas Lange7-53/+62
2021-06-12Remove function "getRandomValue"Thomas Lange2-8/+1
This commit removes the "getRandomValue" function. In addition, the Application class now calls PHPs "random_bytes" function directly.