"; exit(); } $_GET['id'] = stripslashes(strip_tags($_GET['id'])); $_GET['sort'] = stripslashes(strip_tags($_GET['sort'])); if (!array_key_exists('start', $_GET) || $_GET['start'] < 0) { $_GET['start'] = 0; } $forum = getForum($_GET['id']); $category = getCategory($forum->category); if ($category->is_helpdesk) { $sort_style = $_GET['sort']; if (!$sort_style) { $sort_style = $_COOKIE['hd_sort_style']; } else { setcookie('hd_sort_style', $sort_style, time()+3600*24*365); } if (!$sort_style) $sort_style = 'activity'; page_head('Help Desk'); } else { $sort_style = $_GET['sort']; if (!$sort_style) { $sort_style = $_COOKIE['forum_sort_style']; } else { setcookie('forum_sort_style', $sort_style, time()+3600*24*365); } if (!$sort_style) $sort_style = 'modified-new'; page_head('Message boards : '.$forum->title); } echo "
"; echo "\n"; echo "\n
"; show_forum_title($forum, NULL, $category->is_helpdesk); echo "

\n"; if ($category->is_helpdesk) { echo "Submit a question or problem"; } else { echo "Create a new thread"; } echo "\n

\n
"; if ($category->is_helpdesk) { show_select_from_array("sort", $faq_sort_styles, $sort_style); } else { show_select_from_array("sort", $forum_sort_styles, $sort_style); } echo "
\n
"; // If there are more than the threshold number of threads on the page, // show only the first $n and display links to the rest // show_page_nav($forum); if ($category->is_helpdesk) { start_forum_table(array("Question", "Answers")); } else { start_forum_table(array("Threads", "Posts", "Author", "Views", "Last post")); } // TODO: Move this into its own function? $threads = getThreads($forum->id, $_GET['start'], $n, $sort_style); $n = 0; while ($thread = mysql_fetch_object($threads)) { $user = lookup_user_id($thread->owner); $first_post = getFirstPost($thread->id); $excerpt = sub_sentence($first_post->content, ' ', EXCERPT_LENGTH, true); echo " id, "\">", strip_tags(stripslashes($thread->title)), "
"; $n = ($n+1)%2; if ($category->is_helpdesk) { echo strip_tags(stripslashes($excerpt)); $na = $thread->sufferers + 1; $x = time_diff_str($first_post->timestamp, time()); echo "
Asked $x; asked $na times"; } echo ""; $x = time_diff_str($thread->timestamp, time()); if ($category->is_helpdesk) { if ($thread->replies == 0) $x = "---"; echo " Total: $thread->replies
Last: $x "; } else { echo " ", $thread->replies+1, " ", user_links($user, "../"), " ", $thread->views, " ", $x, " "; } echo ""; } end_forum_table(); if ($forum->threads > $n) { echo $gotoStr; } page_tail(); function show_page_nav($forum) { global $n; if ($forum->threads > $n) { $totalPages = floor($forum->threads / $n); $curPage = floor($_GET['start'] / $n); $pages = array(0, 1, 2); for ($i = -1 ; $i <= 1 ; $i++) { if ($curPage + $i > 0 && $curPage + $i < $totalPages - 1) { array_push($pages, $curPage + $i); } } for ($i = -3 ; $i <= -1 ; $i++) { if ($totalPages + $i > 0) { array_push($pages, $totalPages + $i); } } $pages = array_unique($pages); natsort($pages); $pages = array_values($pages); $gotoStr = '

Go to page '; if ($curPage == 0) { $gotoStr .= '1'; } else { $gotoStr .= '1'; } for ($i = 1 ; $i < count($pages)-1 ; $i++) { if ($curPage == $pages[$i]) { $gotoStr .= ($i > 0 && $pages[$i-1] == $pages[$i] - 1)?', ':' ... '; $gotoStr .= ''.($pages[$i]+1).''; } else { $gotoStr .= ($i > 0 && $pages[$i-1] == $pages[$i] - 1)?', ':' ... '; $gotoStr .= ''; } } if ($curPage == $totalPages-1) { $gotoStr .= ', '.$totalPages.''; } else { $gotoStr .= ', '; $gotoStr .= '