Age | Commit message (Collapse) | Author | Files | Lines |
|
Reuse the already defined prepared statement in the update method of
the Category repository instead of creating a new one.
|
|
|
|
Fix a bug which was introduced with the commit mentioned below that
prevented the "$ITEM['BODY']['TEXT']()" function from returning the
pre-parsed body of the item, because the variable was not in scope.
See: bf57f3dcba5864b63882c273d25403c28637eeab
|
|
This commit removes the pages from the RSS feed. I decided so because a
page is a "timeless" object intended for things like the imprint, about
page, privacy policy and similar stuff. It also makes things easier.
The new primary feed URL is "/feed/" and shows only posts. The page feed
("/feed/page/") has been removed and will throw a 404 Not Found error.
The visitors who already subscribed to the old post feed ("/feed/post/")
are automatically 301-redirected to the new location ("/feed/").
The following system language variables have been removed:
* feed_name_items
* feed_name_pages
* feed_name_posts
The following configuration options have been removed:
* PAGE.FEED_SIZE
* PAGE.FEED_SORT
* PAGE.FEED_GUID
Furthermore, the template file "feed/item_post.php" has been renamed to
"feed/item.php" since there is now only one type of feed item. If the
system cannot find the "feed/item.php", it tries "feed/item_post.php"
instead (for backward compatibility with older themes).
|
|
This commit fixes the inconsistent grid item widths in the form and item
overview grid layout. It now also makes use of the fraction unit "fr".
See: https://css-tricks.com/introduction-fr-css-unit/
|
|
This commit adds a bit of JavaScript code to detect unsaved changes in
the content editor when trying to leave the page. The browser's default
confirmation dialog is shown when unsaved changes are detected.
This currently only covers the textarea of the content editor, not the
other form fields. There may be a better solution (like LocalStorage),
but it works for the moment. I'll add it to my TODO list...
|
|
|
|
This commit adds a dark color mode for the admin theme. The dark color
mode can be enabled/disabled by clicking the hyperlink in the footer.
It is not perfect yet (it uses cookies and needs a full page reload),
but it works just fine for the moment. Hope your eyes can enjoy it!
|
|
This commit adds and uses variables for the SCSS files. Additionally,
some minor optimizations have been done on the theme's HTML/CSS code.
|
|
|
|
|
|
|
|
This commit prettifies the item meta elements in the admin theme and
also removes those ugly square brackets. It looks a lot better now.
|
|
|
|
|
|
If the migration table does not yet exist, the user sits *either* at 0,
1, 2, 3 or 4; not *between* 0 and 4 (which would be 1, 2 or 3).
|
|
This commit adds the timestamp of the last modified category to the HTTP
ETag response header. Additionally, the code has been optimized.
|
|
|
|
This commit adds and uses the new function createPaginationTemplate to
create the generic pagination template for various entity lists.
This function replaces the many old confusing functions:
* generateNaviTemplate
* generatePageNaviTemplate
* generatePostNaviTemplate
* generateUserNaviTemplate
* generateCategoryNaviTemplate
* generateCategoryPostNaviTemplate
|
|
|
|
The option CATEGORY.LIST_SORT is currently only used for sorting the
children categories of a category, not for sorting the categories on
the category overview page.
This is because the sorting of the categories in the category overview
is handelnd internally with a virtual table column "_depth" which sorts
the categories by name *and* its sub categories (like a tree).
Thus, there is currently no user option to sort the category overview.
|
|
If no category tree was found, the array is empty but isset evaluates
to true. This fixes the mistake and uses an empty check instead.
|
|
Add and use the function generateCategoryPostNaviTemplate to build the
pagination template for posts in a category. This fixes a mistake.
TODO: Get rid of that confusing function mess!
|
|
This commit implements a new category system to categorize posts. Each
category can have an unlimited number of nested children categories. A
single post don't necessarily need to be in a category, but it can.
Each category can have a full content body like posts or pages, so you
have enough space to describe the content of your categories.
Please note that you need to have at least the following MySQL/MariaDB
versions to use the category system, because it uses "WITH RECURSIVE"
database queries, the so-called "Common-Table-Expressions (CTE)".
MariaDB: 10.2.2
MySQL: 8.0
See: https://mariadb.com/kb/en/with/
See: https://dev.mysql.com/doc/refman/8.0/en/with.html
|
|
This commit updates the database schema and adds a new migration for the
upcoming category system. Please note that you need to have at least the
following MySQL/MariaDB versions to use the category system later:
MariaDB: 10.2.2
MySQL: 8.0
|
|
Explicitly check for boolean FALSE because the result can be string "0"
when directly upgrading from release v1.0 which has schema version "0".
|
|
|
|
This commit updates the database schema and adds a new migration to
modify the signed integer columns to make them unsigned.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
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
|
|
|
|
|
|
|
|
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. :)
|