From abd6983b797987c560ebc0f1de40527bbad57e96 Mon Sep 17 00:00:00 2001 From: flashwave Date: Sun, 5 May 2019 18:44:47 +0200 Subject: [PATCH] Add support for individual forum category icons. --- ..._05_05_163101_add_forum_category_icons.php | 20 ++++++++++++++++ src/Forum/forum.php | 6 ++--- templates/forum/confirm.twig | 1 - templates/forum/index.twig | 3 ++- templates/forum/macros.twig | 23 ++++++++++--------- 5 files changed, 37 insertions(+), 16 deletions(-) create mode 100644 database/2019_05_05_163101_add_forum_category_icons.php diff --git a/database/2019_05_05_163101_add_forum_category_icons.php b/database/2019_05_05_163101_add_forum_category_icons.php new file mode 100644 index 00000000..cb948f7c --- /dev/null +++ b/database/2019_05_05_163101_add_forum_category_icons.php @@ -0,0 +1,20 @@ +exec(" + ALTER TABLE `msz_forum_categories` + ADD COLUMN `forum_icon` VARCHAR(50) NULL DEFAULT NULL AFTER `forum_description`; + "); +} + +function migrate_down(PDO $conn): void +{ + $conn->exec(" + ALTER TABLE `msz_forum_categories` + DROP COLUMN `forum_icon`; + "); +} diff --git a/src/Forum/forum.php b/src/Forum/forum.php index 98efa726..1b310536 100644 --- a/src/Forum/forum.php +++ b/src/Forum/forum.php @@ -93,7 +93,7 @@ function forum_get(int $forumId, bool $showDeleted = false): array ' SELECT `forum_id`, `forum_name`, `forum_type`, `forum_link`, `forum_archived`, - `forum_link_clicks`, `forum_parent`, `forum_colour`, + `forum_link_clicks`, `forum_parent`, `forum_colour`, `forum_icon`, ( SELECT COUNT(`topic_id`) FROM `msz_forum_topics` @@ -114,7 +114,7 @@ function forum_get_root_categories(int $userId): array $getCategories = db_prepare(sprintf( ' SELECT - f.`forum_id`, f.`forum_name`, f.`forum_type`, f.`forum_colour`, + f.`forum_id`, f.`forum_name`, f.`forum_type`, f.`forum_colour`, f.`forum_icon`, ( SELECT COUNT(`forum_id`) FROM `msz_forum_categories` AS sf @@ -380,7 +380,7 @@ function forum_get_children(int $parentId, int $userId): array ' SELECT :user_id AS `target_user_id`, - f.`forum_id`, f.`forum_name`, f.`forum_description`, f.`forum_type`, + f.`forum_id`, f.`forum_name`, f.`forum_description`, f.`forum_type`, f.`forum_icon`, f.`forum_link`, f.`forum_link_clicks`, f.`forum_archived`, f.`forum_colour`, f.`forum_count_topics`, f.`forum_count_posts` FROM `msz_forum_categories` AS f diff --git a/templates/forum/confirm.twig b/templates/forum/confirm.twig index f299ef08..faed6806 100644 --- a/templates/forum/confirm.twig +++ b/templates/forum/confirm.twig @@ -1,5 +1,4 @@ {% extends 'forum/master.twig' %} -{% from 'forum/macros.twig' import forum_category_listing, forum_topic_listing, forum_category_buttons, forum_header, forum_category_tools %} {% from 'macros.twig' import container_title %} {% from '_layout/input.twig' import input_csrf %} diff --git a/templates/forum/index.twig b/templates/forum/index.twig index dac33494..637e0df4 100644 --- a/templates/forum/index.twig +++ b/templates/forum/index.twig @@ -15,7 +15,8 @@ category.forum_colour, category.forum_id == constant('MSZ_FORUM_ROOT') ? '' - : 'f' ~ category.forum_id + : 'f' ~ category.forum_id, + category.forum_icon|default('') ) }} {% endif %} {% endfor %} diff --git a/templates/forum/macros.twig b/templates/forum/macros.twig index 42ace084..c3d36a1a 100644 --- a/templates/forum/macros.twig +++ b/templates/forum/macros.twig @@ -1,11 +1,11 @@ -{% macro forum_category_listing(forums, title, colour, id) %} +{% macro forum_category_listing(forums, title, colour, id, icon) %} {% from _self import forum_category_entry %} {% from 'macros.twig' import container_title %}
0 %}id="{{ id }}"{% endif %}> - {{ container_title(' ' ~ title) }} + {{ container_title(' ' ~ title) }} {% if forums|length > 0 %}
@@ -107,21 +107,22 @@ {% endif %} {% endmacro %} -{% macro forum_category_entry(forum, forum_unread, forum_type) %} - {% set forum_type = forum_type|default(null) %} +{% macro forum_category_entry(forum, forum_unread, forum_icon) %} {% set forum_unread = forum_unread|default(forum.forum_unread|default(false)) ? 'unread' : 'read' %} - {% if forum_type is null %} - {% if forum.forum_archived is defined and forum.forum_archived %} - {% set forum_type = 'fas fa-archive' %} + {% if forum_icon is empty %} + {% if forum.forum_icon is defined and forum.forum_icon is not empty %} + {% set forum_icon = forum.forum_icon %} + {% elseif forum.forum_archived is defined and forum.forum_archived %} + {% set forum_icon = 'fas fa-archive fa-fw' %} {% elseif forum.forum_type is defined and forum.forum_type != constant('MSZ_FORUM_TYPE_DISCUSSION') %} {% if forum.forum_type == constant('MSZ_FORUM_TYPE_LINK') %} - {% set forum_type = 'fas fa-link' %} + {% set forum_icon = 'fas fa-link fa-fw' %} {% elseif forum.forum_type == constant('MSZ_FORUM_TYPE_CATEGORY') %} - {% set forum_type = 'fas fa-folder' %} + {% set forum_icon = 'fas fa-folder fa-fw' %} {% endif %} {% else %} - {% set forum_type = 'fas fa-comments' %} + {% set forum_icon = 'fas fa-comments fa-fw' %} {% endif %} {% endif %} @@ -130,7 +131,7 @@
- +