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 SELECT
`forum_id`, `forum_name`, `forum_type`, `forum_link`, `forum_archived`, `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`) SELECT COUNT(`topic_id`)
FROM `msz_forum_topics` FROM `msz_forum_topics`
@ -114,7 +114,7 @@ function forum_get_root_categories(int $userId): array
$getCategories = db_prepare(sprintf( $getCategories = db_prepare(sprintf(
' '
SELECT 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`) SELECT COUNT(`forum_id`)
FROM `msz_forum_categories` AS sf FROM `msz_forum_categories` AS sf
@ -380,7 +380,7 @@ function forum_get_children(int $parentId, int $userId): array
' '
SELECT SELECT
:user_id AS `target_user_id`, :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_link`, f.`forum_link_clicks`, f.`forum_archived`, f.`forum_colour`,
f.`forum_count_topics`, f.`forum_count_posts` f.`forum_count_topics`, f.`forum_count_posts`
FROM `msz_forum_categories` AS f FROM `msz_forum_categories` AS f

View file

@ -1,5 +1,4 @@
{% extends 'forum/master.twig' %} {% 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 'macros.twig' import container_title %}
{% from '_layout/input.twig' import input_csrf %} {% from '_layout/input.twig' import input_csrf %}

View file

@ -15,7 +15,8 @@
category.forum_colour, category.forum_colour,
category.forum_id == constant('MSZ_FORUM_ROOT') category.forum_id == constant('MSZ_FORUM_ROOT')
? '' ? ''
: 'f' ~ category.forum_id : 'f' ~ category.forum_id,
category.forum_icon|default('')
) }} ) }}
{% endif %} {% endif %}
{% endfor %} {% 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 _self import forum_category_entry %}
{% from 'macros.twig' import container_title %} {% from 'macros.twig' import container_title %}
<div class="container forum__categories" <div class="container forum__categories"
{% if colour is not null %}style="{{ colour|html_colour('--accent-colour') }}"{% endif %} {% if colour is not null %}style="{{ colour|html_colour('--accent-colour') }}"{% endif %}
{% if id|length > 0 %}id="{{ id }}"{% 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 %} {% if forums|length > 0 %}
<div class="forum__categories__list"> <div class="forum__categories__list">
@ -107,21 +107,22 @@
{% endif %} {% endif %}
{% endmacro %} {% endmacro %}
{% macro forum_category_entry(forum, forum_unread, forum_type) %} {% macro forum_category_entry(forum, forum_unread, forum_icon) %}
{% set forum_type = forum_type|default(null) %}
{% set forum_unread = forum_unread|default(forum.forum_unread|default(false)) ? 'unread' : 'read' %} {% set forum_unread = forum_unread|default(forum.forum_unread|default(false)) ? 'unread' : 'read' %}
{% if forum_type is null %} {% if forum_icon is empty %}
{% if forum.forum_archived is defined and forum.forum_archived %} {% if forum.forum_icon is defined and forum.forum_icon is not empty %}
{% set forum_type = 'fas fa-archive' %} {% 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') %} {% elseif forum.forum_type is defined and forum.forum_type != constant('MSZ_FORUM_TYPE_DISCUSSION') %}
{% if forum.forum_type == constant('MSZ_FORUM_TYPE_LINK') %} {% 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') %} {% elseif forum.forum_type == constant('MSZ_FORUM_TYPE_CATEGORY') %}
{% set forum_type = 'fas fa-folder' %} {% set forum_icon = 'fas fa-folder fa-fw' %}
{% endif %} {% endif %}
{% else %} {% else %}
{% set forum_type = 'fas fa-comments' %} {% set forum_icon = 'fas fa-comments fa-fw' %}
{% endif %} {% endif %}
{% endif %} {% endif %}
@ -130,7 +131,7 @@
<div class="forum__category__container"> <div class="forum__category__container">
<div class="forum__category__icon forum__category__icon--{{ forum_unread }}"> <div class="forum__category__icon forum__category__icon--{{ forum_unread }}">
<i class="{{ forum_type }} fa-fw"></i> <span class="{{ forum_icon }}"></span>
</div> </div>
<div class="forum__category__details"> <div class="forum__category__details">