1{#
2/**
3 * @file
4 * Theme override to display a list of forums and containers.
5 *
6 * Available variables:
7 * - forums: A collection of forums and containers to display. It is keyed to
8 *   the numeric IDs of all child forums and containers. Each forum in forums
9 *   contains:
10 *   - is_container: A flag indicating if the forum can contain other
11 *     forums. Otherwise, the forum can only contain topics.
12 *   - depth: How deep the forum is in the current hierarchy.
13 *   - zebra: 'even' or 'odd', used for row class.
14 *   - icon_class: 'default' or 'new', used for forum icon class.
15 *   - icon_title: Text alternative for the forum icon.
16 *   - name: The name of the forum.
17 *   - link: The URL to link to this forum.
18 *   - description: The description field for the forum, containing:
19 *     - value: The descriptive text for the forum.
20 *   - new_topics: A flag indicating if the forum contains unread posts.
21 *   - new_url: A URL to the forum's unread posts.
22 *   - new_text: Text for the above URL, which tells how many new posts.
23 *   - old_topics: A count of posts that have already been read.
24 *   - num_posts: The total number of posts in the forum.
25 *   - last_reply: Text representing the last time a forum was posted or
26 *     commented in.
27 * - forum_id: Forum ID for the current forum. Parent to all items within the
28 *   forums array.
29 *
30 * @see template_preprocess_forum_list()
31 */
32#}
33<table id="forum-{{ forum_id }}">
34  <thead>
35    <tr>
36      <th>{{ 'Forum'|t }}</th>
37      <th>{{ 'Topics'|t }}</th>
38      <th>{{ 'Posts'|t }}</th>
39      <th>{{ 'Last post'|t }}</th>
40    </tr>
41  </thead>
42  <tbody>
43  {% for child_id, forum in forums %}
44    <tr id="forum-list-{{ child_id }}" class="{{ forum.zebra }}">
45      <td {% if forum.is_container == true -%}
46        colspan="4" class="container"
47      {%- else -%}
48        class="forum-list__forum"
49      {%- endif -%}>
50        {#
51          Enclose the contents of this cell with X divs, where X is the
52          depth this forum resides at. This will allow us to use CSS
53          left-margin for indenting.
54        #}
55        {% if forum.depth > 0 %}{% for i in 1..forum.depth %}<div class="indented">{% endfor %}{% endif %}
56          <div class="forum__icon forum-status-{{ forum.icon_class }}" title="{{ forum.icon_title }}">
57            <span class="visually-hidden">{{ forum.icon_title }}</span>
58          </div>
59          <div class="forum__name"><a href="{{ forum.link }} " class="forum__name--link">{{ forum.label }}</a></div>
60          {% if forum.description.value %}
61            <div class="forum__description">{{ forum.description.value }}</div>
62          {% endif %}
63          {% if forum.depth > 0 %}{% for i in 1..forum.depth %}</div>{% endfor %}{% endif %}
64      </td>
65      {% if forum.is_container == false %}
66        <td class="forum__topics">
67          {{ forum.num_topics }}
68          {% if forum.new_topics == true %}
69            <br />
70            <a href="{{ forum.new_url }}">{{ forum.new_text }}</a>
71          {% endif %}
72        </td>
73        <td class="forum__posts">{{ forum.num_posts }}</td>
74        <td class="forum__last-reply">{{ forum.last_reply }}</td>
75      {% endif %}
76    </tr>
77  {% endfor %}
78  </tbody>
79</table>
80