misuzu/views/mio/forum/macros.twig

182 lines
7.5 KiB
Twig

{% macro forum_category_listing(forums, title) %}
{% from _self import forum_category_entry %}
<div class="container forum__listing">
<div class="container__title">{{ title }}</div>
<div class="container__content forum__listing__forums">
{% if forums|length > 0 %}
{% for forum in forums %}
{{ forum_category_entry(forum) }}
{% endfor %}
{% else %}
<div class="forum__listing__none">
This category is empty.
</div>
{% endif %}
</div>
</div>
{% endmacro %}
{% macro forum_category_buttons(forum) %}
<div class="forum__actions forum__actions__content">
<a class="input__button forum__actions__button">New Topic</a>
</div>
{% endmacro %}
{% macro forum_category_entry(forum, forum_type, forum_read, forum_icon) %}
{% set forum_type = forum_type|default(null) %}
{% set forum_read = forum_read|default(true) ? 'read' : 'unread' %}
{% set forum_icon = forum_icon|default('https://static.flash.moe/images/forum-icons/forum-%s-%s.png') %}
{% if forum_type is null %}
{% if forum.forum_archived is defined and forum.forum_archived %}
{% set forum_type = 'archive' %}
{% elseif forum.forum_type is defined and forum.forum_type != 0 %}
{% if forum.forum_type == 2 %}
{% set forum_type = 'link' %}
{% elseif forum.forum_type == 1 %}
{% set forum_type = 'category' %}
{% endif %}
{% else %}
{% set forum_type = 'default' %}
{% endif %}
{% endif %}
<div class="forum__listing__entry">
<img src="{{ forum_icon|format(forum_type, forum_read) }}" alt="read" class="forum__listing__entry__icon">
<div class="forum__listing__entry__info">
<a href="/forum/forum.php?f={{ forum.forum_id }}" class="forum__listing__entry__title">{{ forum.forum_name }}</a>
<div class="forum__listing__entry__description">
{{ forum.forum_description|nl2br }}
</div>
{% if forum.forum_subforums is defined and forum.forum_subforums|length > 0 %}
<div class="forum__listing__entry__subforums">
{% for subforum in forum.forum_subforums %}
<a href="/forum/forum.php?f={{ subforum.forum_id }}" class="forum__listing__entry__subforum">{{ subforum.forum_name }}</a>
{% endfor %}
</div>
{% endif %}
</div>
<div class="forum__listing__entry__stats">
<div class="forum__listing__entry__topics">{{ forum.forum_topic_count|number_format }}</div>
<div class="forum__listing__entry__posts">{{ forum.forum_post_count|number_format }}</div>
</div>
<div class="forum__listing__entry__activity">
<div class="forum__listing__entry__activity__none">
There are no posts in this forum yet.
</div>
</div>
</div>
{% endmacro %}
{% macro forum_topic_listing(topics) %}
{% from _self import forum_topic_entry %}
<div class="container forum__topics">
<div class="container__title">Topics</div>
<div class="container__content forum__topics__listing">
{% if topics|length > 0 %}
{% for topic in topics %}
{{ forum_topic_entry(topic) }}
{% endfor %}
{% else %}
<div class="forum__topics__none">
There are no topics in this forum.
</div>
{% endif %}
</div>
</div>
{% endmacro %}
{% macro forum_topic_entry(topic, topic_type, topic_read, topic_icon) %}
{% set topic_type = topic_type|default(null) %}
{% set topic_read = topic_read|default(true) ? 'read' : 'unread' %}
{% set topic_icon = topic_icon|default('https://static.flash.moe/images/topic-icons/topic-%s-%s.png') %}
{% if topic_type is null %}
{% if topic.topic_deleted is defined and topic.topic_deleted is not null %}
{% set topic_type = 'deleted' %}
{% elseif topic.topic_type is defined and topic.topic_type != 0 %}
{% if topic.topic_type == 2 %}
{% set topic_type = 'announcement' %}
{% elseif topic.topic_type == 1 %}
{% set topic_type = 'pinned' %}
{% endif %}
{% elseif topic.topic_status is defined and topic.topic_status == 1 %}
{% set topic_type = 'locked' %}
{% else %}
{% set topic_type = 'default' %}
{% endif %}
{% endif %}
<div class="forum__topics__entry forum__topics__entry--{{ topic_type }}">
<img src="{{ topic_icon|format(topic_type, topic_read) }}" alt="read" class="forum__topics__entry__icon">
<div class="forum__topics__entry__info">
<div class="forum__topics__entry__info__title forum__topics__entry__info__title--{{ topic_read }}">
<a href="/forum/topic.php?t={{ topic.topic_id }}" class="forum__topics__entry__info__title__link">{{ topic.topic_title }}</a>
</div>
{% if topic.author_id is not null %}
<div class="forum__topics__entry__info__author">
by <a href="/profile.php?u={{ topic.author_id }}" class="forum__topics__entry__info__author__name" style="color:{{ topic.author_colour|colour_get_css }}">
{{ topic.author_name }}
</a>
</div>
{% endif %}
</div>
<div class="forum__topics__entry__stats">
<div class="forum__topics__entry__stat forum__topics__entry__stat--posts">
{{ topic.topic_post_count }}
</div>
<div class="forum__topics__entry__stat forum__topics__entry__stat--views">
{{ topic.topic_view_count }}
</div>
</div>
<div class="forum__topics__entry__activity">
<div class="forum__topics__entry__activity__datetime">
<a href="/forum/topic.php?p={{ topic.topic_last_post_id }}#p{{ topic.topic_last_post_id }}" class="forum__topics__entry__activity__datetime__link">
{{ topic.topic_first_post_created }}
</a>
</div>
{% if topic.topic_last_user_id is not null %}
<div class="forum__topics__entry__activity__author">
by <a href="/profile.php?u={{ topic.topic_last_user_id }}" class="forum__topics__entry__activity__author__name" style="color:{{ topic.author_colour|colour_get_css }}">
{{ topic.author_name }}
</a>
</div>
{% endif %}
</div>
</div>
{% endmacro %}
{% macro forum_post_listing(posts, opening_post_id) %}
{% from _self import forum_post_entry %}
{% if posts|length > 0 %}
{% for post in posts %}
{{ forum_post_entry(post, post.post_id == opening_post_id) }}
{% endfor %}
{% else %}
<div class="container">
<div class="container__title">Information</div>
<div class="container__content">
This topic has no associated posts.
</div>
</div>
{% endif %}
{% endmacro %}
{% macro forum_post_entry(post, is_opening_post) %}
{% set is_opening_post = is_opening_post|default(false) %}
<div class="container" id="p{{ post.post_id }}">
<div class="container__content">
{{ post.post_text }}
</div>
</div>
{% endmacro %}