Add support for individual forum category icons.

This commit is contained in:
flash 2019-05-05 18:44:47 +02:00
parent b1280d5567
commit abd6983b79
5 changed files with 37 additions and 16 deletions

View file

@ -0,0 +1,20 @@
<?php
namespace Misuzu\DatabaseMigrations\AddForumCategoryIcons;
use PDO;
function migrate_up(PDO $conn): void
{
$conn->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`;
");
}

View file

@ -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

View file

@ -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 %}

View file

@ -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 %}

View file

@ -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 %}
<div class="container forum__categories"
{% if colour is not null %}style="{{ colour|html_colour('--accent-colour') }}"{% endif %}
{% if id|length > 0 %}id="{{ id }}"{% endif %}>
{{ container_title('<i class="fas fa-folder fa-fw"></i> ' ~ title) }}
{{ container_title('<span class="' ~ icon|default('fas fa-folder fa-fw') ~ '"></span> ' ~ title) }}
{% if forums|length > 0 %}
<div class="forum__categories__list">
@ -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 @@
<div class="forum__category__container">
<div class="forum__category__icon forum__category__icon--{{ forum_unread }}">
<i class="{{ forum_type }} fa-fw"></i>
<span class="{{ forum_icon }}"></span>
</div>
<div class="forum__category__details">