Same name and namespace in other branches
  1. 4.6.x modules/forum.module \theme_forum_topic_list()
  2. 4.7.x modules/forum.module \theme_forum_topic_list()
  3. 6.x developer/theme.php \theme_forum_topic_list()

Format the topic listing.

Related topics

1 theme call to theme_forum_topic_list()
theme_forum_display in modules/forum/forum.module
Format the forum body.

File

modules/forum/forum.module, line 977
Enable threaded discussions about general topics.

Code

function theme_forum_topic_list($tid, $topics, $sortby, $forum_per_page) {
  global $forum_topic_list_header;
  $rows = array();
  if ($topics) {
    foreach ($topics as $topic) {

      // folder is new if topic is new or there are new comments since last visit
      if ($topic->tid != $tid) {
        $rows[] = array(
          array(
            'data' => theme('forum_icon', $topic->new, $topic->num_comments, $topic->comment_mode, $topic->sticky),
            'class' => 'icon',
          ),
          array(
            'data' => check_plain($topic->title),
            'class' => 'title',
          ),
          array(
            'data' => l(t('This topic has been moved'), "forum/{$topic->tid}"),
            'colspan' => '3',
          ),
        );
      }
      else {
        $rows[] = array(
          array(
            'data' => theme('forum_icon', $topic->new, $topic->num_comments, $topic->comment_mode, $topic->sticky),
            'class' => 'icon',
          ),
          array(
            'data' => l($topic->title, "node/{$topic->nid}"),
            'class' => 'topic',
          ),
          array(
            'data' => $topic->num_comments . ($topic->new_replies ? '<br />' . l(format_plural($topic->new_replies, '1 new', '@count new'), "node/{$topic->nid}", NULL, NULL, 'new') : ''),
            'class' => 'replies',
          ),
          array(
            'data' => _forum_format($topic),
            'class' => 'created',
          ),
          array(
            'data' => _forum_format(isset($topic->last_reply) ? $topic->last_reply : NULL),
            'class' => 'last-reply',
          ),
        );
      }
    }
  }
  $output = theme('table', $forum_topic_list_header, $rows);
  $output .= theme('pager', NULL, $forum_per_page, 0);
  return $output;
}