From e6cef37e0c782fe770db20888d99c17d10e2c479 Mon Sep 17 00:00:00 2001 From: Thomas Lange Date: Thu, 1 Jul 2021 20:11:34 +0200 Subject: Add category system to categorize posts (readme) 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 --- core/namespace/Application.php | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'core/namespace/Application.php') diff --git a/core/namespace/Application.php b/core/namespace/Application.php index 2329253..5690841 100644 --- a/core/namespace/Application.php +++ b/core/namespace/Application.php @@ -140,6 +140,13 @@ class Application { return "{$prot}://{$host}/{$base}{$more}"; } + #=============================================================================== + # Return absolute category URL + #=============================================================================== + public static function getCategoryURL($more = ''): string { + return self::getURL(self::get('CATEGORY.DIRECTORY')."/{$more}"); + } + #=============================================================================== # Return absolute post URL #=============================================================================== @@ -188,6 +195,9 @@ class Application { #=============================================================================== public static function getEntityURL(EntityInterface $Entity) { switch($class = get_class($Entity)) { + case 'ORM\Entities\Category': + $attr = self::get('CATEGORY.SLUG_URLS') ? 'slug' : 'id'; + return self::getCategoryURL($Entity->get($attr).'/'); case 'ORM\Entities\Page': $attr = self::get('PAGE.SLUG_URLS') ? 'slug' : 'id'; return self::getPageURL($Entity->get($attr).'/'); -- cgit v1.2.3