W3cubDocs

/Drupal 8

function template_preprocess_forum_list

template_preprocess_forum_list(&$variables)

Prepares variables for forum list templates.

Default template: forum-list.html.twig.

Parameters

array $variables: An array containing the following elements:

  • forums: An array of all forum objects to display for the given taxonomy term ID. If tid = 0 then all the top-level forums are displayed.
  • parents: An array of taxonomy term objects that are ancestors of the current term ID.
  • tid: Taxonomy term ID of the current forum.

File

core/modules/forum/forum.module, line 542
Provides discussion forums.

Code

function template_preprocess_forum_list(&$variables) {
  $user = \Drupal::currentUser();
  $row = 0;
  // Sanitize each forum so that the template can safely print the data.
  foreach ($variables['forums'] as $id => $forum) {
    $variables['forums'][$id]->description = array('#markup' => $forum->description->value);
    $variables['forums'][$id]->link = forum_uri($forum);
    $variables['forums'][$id]->name = $forum->label();
    $variables['forums'][$id]->is_container = !empty($forum->forum_container->value);
    $variables['forums'][$id]->zebra = $row % 2 == 0 ? 'odd' : 'even';
    $row++;

    $variables['forums'][$id]->new_text = '';
    $variables['forums'][$id]->new_url = '';
    $variables['forums'][$id]->new_topics = 0;
    $variables['forums'][$id]->old_topics = $forum->num_topics;
    $variables['forums'][$id]->icon_class = 'default';
    $variables['forums'][$id]->icon_title = t('No new posts');
    if ($user->isAuthenticated()) {
      $variables['forums'][$id]->new_topics = \Drupal::service('forum_manager')->unreadTopics($forum->id(), $user->id());
      if ($variables['forums'][$id]->new_topics) {
        $variables['forums'][$id]->new_text = \Drupal::translation()->formatPlural($variables['forums'][$id]->new_topics, '1 new post<span class="visually-hidden"> in forum %title</span>', '@count new posts<span class="visually-hidden"> in forum %title</span>', array('%title' => $variables['forums'][$id]->label()));
        $variables['forums'][$id]->new_url = \Drupal::url('forum.page', ['taxonomy_term' => $forum->id()], ['fragment' => 'new']);
        $variables['forums'][$id]->icon_class = 'new';
        $variables['forums'][$id]->icon_title = t('New posts');
      }
      $variables['forums'][$id]->old_topics = $forum->num_topics - $variables['forums'][$id]->new_topics;
    }
    $forum_submitted = array('#theme' => 'forum_submitted', '#topic' => $forum->last_post);
    $variables['forums'][$id]->last_reply = drupal_render($forum_submitted);
  }

  $variables['pager'] = array(
    '#type' => 'pager',
  );

  // Give meaning to $tid for themers. $tid actually stands for term ID.
  $variables['forum_id'] = $variables['tid'];
  unset($variables['tid']);
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!modules!forum!forum.module/function/template_preprocess_forum_list/8.1.x