prefs->forum_sorting; } else { if (isset($_COOKIE['sorting'])) { list($sort_style,$thread_style)=explode("|",$_COOKIE['sorting']); } } } else { // set the sort style if ($user){ $user->prefs->forum_sorting = $sort_style; $user->prefs->update("forum_sorting=$sort_style"); } else { list($old_style,$thread_style)=explode("|",$_COOKIE['sorting']); setcookie('sorting', implode("|",array($sort_style,$thread_style)), time()+3600*24*365); } } switch ($forum->parent_type) { case 0: $category = BoincCategory::lookup_id($forum->category); if ($category->is_helpdesk){ page_head(tra("Questions and Answers").' : '.$forum->title); echo ''; } else { page_head(tra("Message boards").' : '.$forum->title); echo ''; } show_forum_header($user); show_forum_title($category, $forum, NULL); break; case 1: $team = BoincTeam::lookup_id($forum->category); page_head("Team message board for id>$team->name"); show_forum_header($user); break; } echo '

"; echo ''; echo "
'; show_button("forum_post.php?id=$id", "New thread", "Add a new thread to this forum"); if ($user) { $return = urlencode(current_url()); $tokens = url_tokens($user->authenticator); $url = "forum_index.php?read=1$tokens&return=$return"; show_button($url, "Mark all threads as read", "Mark all threads in this forum as 'read'."); } echo "

'; echo '
'; echo select_from_array("sort", $forum_sort_styles, $sort_style); echo '
"; show_forum($forum, $start, $sort_style, $user); page_tail(); // This function shows the threads for the given forum // Starting from $start, // using the given $sort_style (as defined in forum.php) // and using the features for the logged in user in $user. // function show_forum($forum, $start, $sort_style, $user) { $gotoStr = ""; $nav = show_page_nav($forum, $start); if ($nav) { $gotoStr = "

$nav

"; } echo $gotoStr; // Display the navbar start_forum_table(array("", tra("Threads"), tra("Posts"), tra("Author"), tra("Views"), "".tra("Last post")."")); $sticky_first = !$user || !$user->prefs->ignore_sticky_posts; // Show hidden threads if logged in user is a moderator // $show_hidden = is_moderator($user, $forum); $threads = get_forum_threads( $forum->id, $start, THREADS_PER_PAGE, $sort_style, $show_hidden, $sticky_first ); if ($user) { $subs = BoincSubscription::enum("userid=$user->id"); } // Run through the list of threads, displaying each of them $n = 0; $i=0; foreach ($threads as $thread) { $owner = BoincUser::lookup_id($thread->owner); $unread = thread_is_unread($user, $thread); //if ($thread->status==1){ // This is an answered helpdesk thread if ($user && is_subscribed($thread, $subs)) { echo ''; } else { // Just a standard thread. echo ''; } echo ""; if ($user && ($thread->rating()>$user->prefs->high_rating_threshold)) { show_image(EMPHASIZE_IMAGE, "This message has a high average rating", "Highly rated"); } if ($user && ($thread->rating()<$user->prefs->low_rating_threshold)) { show_image(FILTER_IMAGE, "This message has a low average rating", "Low rated"); } if ($thread->hidden) { echo "[hidden]"; } if ($unread) { if ($thread->sticky) { if ($thread->locked) { show_image(NEW_IMAGE_STICKY_LOCKED, "This thread is sticky and locked, and you haven't read it yet", "sticky/locked/unread"); } else { show_image(NEW_IMAGE_STICKY, "This thread is sticky and you haven't read it yet", "sticky/unread"); } } else { if ($thread->locked) { show_image(NEW_IMAGE_LOCKED, "You haven't read this thread yet, and it's locked", "unread/locked"); } else { show_image(NEW_IMAGE, "You haven't read this thread yet", "unread"); } } } else { if ($thread->sticky) { if ($thread->locked) { show_image(IMAGE_STICKY_LOCKED, "This thread is sticky and locked", "sticky/locked"); } else { show_image(IMAGE_STICKY, "This thread is sticky", "sticky"); } } else { if ($thread->locked) { show_image(IMAGE_LOCKED, "This thread is locked", "locked"); } } } echo ""; $titlelength = 48; $title = $thread->title; if (strlen($title) > $titlelength) { $title = substr($title,0,$titlelength)."..."; } $title = cleanup_title($title); echo ''.$title.'
'; $n = ($n+1)%2; echo ' '.($thread->replies+1).'
'.user_links($owner).'
'.$thread->views.' '.time_diff_str($thread->timestamp, time()).' '; flush(); } end_table(); echo "
$gotoStr"; // show page links } ?>