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);
show_team_forum_title($forum);
break;
}
echo '
';
show_button("forum_post.php?id=$id", "New thread", "Add a new thread to this forum");
echo "
";
echo '
';
echo '
';
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 "