Example #1
0
function mothership_preprocess_forum_list(&$variables)
{
    global $user;
    $row = 0;
    $count = 0;
    $count2 = 0;
    // Sanitize each forum so that the template can safely print the data.
    foreach ($variables['forums'] as $id => $forum) {
        $variables['forums'][$id]->description = !empty($forum->description) ? filter_xss_admin($forum->description) : '';
        $variables['forums'][$id]->link = url("forum/{$forum->tid}");
        $variables['forums'][$id]->name = check_plain($forum->name);
        $variables['forums'][$id]->is_container = !empty($forum->container);
        $variables['forums'][$id]->zebra = $row % 2 == 0 ? 'odd' : 'even';
        $row++;
        //     $variables['forums'][$id]->depth == 1
        // make a count of the non container forums
        if ($variables['forums'][$id]->depth) {
            if (!$variables['forums'][$id]->is_container) {
                $variables['forums'][$id]->count = $count;
                $count++;
            }
        } else {
            if (!$variables['forums'][$id]->is_container) {
                $variables['forums'][$id]->count = $count2;
                $count2++;
            }
        }
        $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->uid) {
            $variables['forums'][$id]->new_topics = _forum_topics_unread($forum->tid, $user->uid);
            if ($variables['forums'][$id]->new_topics) {
                $variables['forums'][$id]->new_text = format_plural($variables['forums'][$id]->new_topics, '1 new', '@count new');
                $variables['forums'][$id]->new_url = url("forum/{$forum->tid}", array('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;
        }
        $variables['forums'][$id]->last_reply = theme('forum_submitted', array('topic' => $forum->last_post));
    }
    // $tid = term id.
    if (isset($variables['tid'])) {
        $variables['forum_id'] = $variables['tid'];
        unset($variables['tid']);
    }
}
function _scratchy_forum_list($forums, $parents, $tid)
{
    global $user;
    if ($forums) {
        $header = array(t('Forum'), t('Topics'), t('Posts'), t('Last post'));
        foreach ($forums as $forum) {
            if ($forum->container) {
                $description = '<div style="margin-left: ' . $forum->depth * 30 . "px;\">\n";
                $description .= ' <div class="name">' . l($forum->name, "forum/{$forum->tid}") . "</div>\n";
                if ($forum->description) {
                    $description .= ' <div class="description">' . filter_xss_admin($forum->description) . "</div>\n";
                }
                $description .= "</div>\n";
                $rows[] = array(array('data' => $description, 'class' => 'container', 'colspan' => '4'));
            } else {
                $new_topics = _forum_topics_unread($forum->tid, $user->uid);
                $forum->old_topics = $forum->num_topics - $new_topics;
                if (!$user->uid) {
                    $new_topics = 0;
                }
                $description = '<div style="margin-left: ' . $forum->depth * 30 . "px;\">\n";
                $description .= ' <div class="name">' . l($forum->name, "forum/{$forum->tid}") . "</div>\n";
                if ($forum->description) {
                    $description .= ' <div class="description">' . filter_xss_admin($forum->description) . "</div>\n";
                }
                $description .= "</div>\n";
                $rows[] = array(array('data' => $description, 'class' => 'forum'), array('data' => $forum->num_topics . ($new_topics ? '<br />' . l(format_plural($new_topics, '1 new', '@count new'), "forum/{$forum->tid}", NULL, NULL, 'new') : ''), 'class' => 'topics'), array('data' => $forum->num_posts, 'class' => 'posts'), array('data' => _forum_format($forum->last_post), 'class' => 'last-reply'));
            }
        }
        //return print_r($rows,true);
        return '<div class="node"><div class="content forum">' . theme('table', $header, $rows) . '</div></div>
  ';
    }
}
Example #3
0
/**
 * Number of new forum topics for user
 * @see forum.module
 */
function _authcache_forum_topic_new($vars) {
  global $user;
  $new = array();
  
  drupal_bootstrap(DRUPAL_BOOTSTRAP_PATH);
  include_once './modules/node/node.module';  // Need NODE_NEW_LIMIT definition
  include_once './modules/forum/forum.module';
  
  foreach($vars as $tid) {
    $new_topics = (int)_forum_topics_unread($tid, $user->uid);
    if($new_topics) {
      $new[$tid] = format_plural($new_topics, '1 new', '@count new');
    }
  }
  return $new;
}