-1) { $sql .= ' LIMIT '.$min; if ($nRec > -1) { $sql .= ', '.$nRec; } } else if ($nRec > -1) { $sql .= ' LIMIT '.$nRec; } return mysql_query($sql); } function getPosts($threadID, $min = -1, $nRec = -1, $sort_style="timestamp", $show_hidden = false) { /* Calling function: Set $show_hidden = true when it is a moderator reading */ $sql = 'SELECT * FROM post WHERE thread = '. $threadID; if (!$show_hidden) { $sql .= ' AND hidden = 0'; } switch($sort_style) { case 'timestamp': $sql .= ' ORDER BY timestamp desc'; break; case 'timestamp_asc': $sql .= ' ORDER BY timestamp asc'; break; case 'score': $sql .= ' ORDER BY score DESC'; break; } if ($min > -1) { $sql .= ' LIMIT '.$min; if ($nRec > -1) { $sql .= ', '.$nRec; } } elseif ($nRec > -1) { $sql .= ' LIMIT '.$nRec; } return mysql_query($sql); } /* specific database functions */ function getCategory($categoryID) { $sql = "SELECT * FROM category WHERE id = ".$categoryID; $result = mysql_query($sql); if ($result) { return mysql_fetch_object($result); } else { return NULL; } } function getForum($forumID) { $sql = "SELECT * FROM forum WHERE id = " . $forumID; $result = mysql_query($sql); if ($result) { return mysql_fetch_object($result); } else { return NULL; } } function getThread($threadID) { $sql = "SELECT * FROM thread WHERE id = ".$threadID; $result = mysql_query($sql); if ($result) { return mysql_fetch_object($result); } else { return NULL; } } function getPost($postID) { $sql = "SELECT * FROM post WHERE id = ".$postID; $result = mysql_query($sql); if ($result) { return mysql_fetch_object($result); } else { return NULL; } } // Returns the post that started the thread with id = $threadId function getFirstPost($threadID) { $sql = "SELECT * FROM post WHERE thread = " . $threadID ." ORDER BY id ASC limit 1"; $result = mysql_query($sql); if ($result) { return mysql_fetch_object($result); } else { return NULL; } } function getForumPreferences($user){ $sql = "SELECT * FROM forum_preferences WHERE userid = '".$user->id."'"; $result = mysql_query($sql); if (mysql_num_rows($result)>0) { $prefs=mysql_fetch_object($result); //Todo - find out how to simply merge two objects instead of specifying all the fields manually here $user->avatar=$prefs->avatar; $user->hide_avatars=$prefs->hide_avatars; $user->sorting=$prefs->sorting; $user->images_as_links=$prefs->images_as_links; $user->signature=$prefs->signature; $user->posts=$prefs->posts; $user->avatar_type=$prefs->avatar_type; $user->no_signature_by_default=$prefs->no_signature_by_default; $user->link_popup=$prefs->link_popup; $user->mark_as_read_timestamp=$prefs->mark_as_read_timestamp; $user->special_user=$prefs->special_user; $user->jump_to_unread=$prefs->jump_to_unread; $user->hide_signatures=$prefs->hide_signatures; $user->rated_posts=$prefs->rated_posts; $user->low_rating_threshold=$prefs->low_rating_threshold; $user->high_rating_threshold=$prefs->high_rating_threshold; $user->ignorelist=$prefs->ignorelist; $user->forum_preferences=1; //Set defaults in certain cases: if ($user->low_rating_threshold==0 and $user->high_rating_threshold==0){ $user->low_rating_threshold=DEFAULT_LOW_RATING_THRESHOLD; $user->high_rating_threshold=DEFAULT_HIGH_RATING_THRESHOLD; } } else { mysql_query("insert into forum_preferences set userid='".$user->id."'"); $user->forum_preferences=0; } return $user; } /* Check if user has special user bit enabled */ function isSpecialUser($user, $specialbit){ return (substr($user->special_user, $specialbit,1)==1); } function getHasRated($user, $postid){ return (strstr($user->rated_posts,"|".$postid)); } function setHasRated($user, $postid){ mysql_query("UPDATE forum_preferences SET rated_posts = concat('|$postid',rated_posts) WHERE userid = '".$user->id."'"); return mysql_error(); } function getSortStyle($user,$place){ if ($user->id!=""){ list($forum,$thread,$faq,$answer)=explode("|",$user->sorting); } else { list($forum,$thread,$faq,$answer)=explode("|",$_COOKIE['sorting']); } return $$place; } function setSortStyle($user,$place,$new_style){ if ($user->id!=""){ list($forum,$thread,$faq,$answer)=explode("|",$user->sorting); $$place=$new_style; $user->sorting=implode("|",array($forum,$thread,$faq,$answer)); $sql = "UPDATE forum_preferences SET sorting = '".$user->sorting."' where userid = '".$user->id."'"; mysql_query($sql); } else { list($forum,$thread,$faq,$answer)=explode("|",$_COOKIE['sorting']); $$place=$new_style; setcookie('sorting', implode("|",array($forum,$thread,$faq,$answer)), time()+3600*24*365); } } function getThreadLastVisited($user, $thread){ if ($user->id==""){ //Disable read/unread stuff for users that are not logged in $user->thread_last_visited=time(); //Always display as visited return $user; } $sql = "SELECT timestamp from forum_logging where userid='".$user->id."' and threadid='".$thread->id."'"; $result = mysql_query($sql); if ($result) { $data=mysql_fetch_object($result); $user->thread_last_visited=$data->timestamp; } else { } $user->thread_last_visited= max(time()-MAX_FORUM_LOGGING_TIME,$user->thread_last_visited,$user->mark_as_read_timestamp); //echo $user->thread_last_visited." - ".time(); return $user; } function setThreadLastVisited($user, $thread, $timestamp=""){ if ($timestamp==""){$timestamp=time();}; $sql = "REPLACE DELAYED into forum_logging set userid='".$user->id."', threadid='".$thread->id."', timestamp='$timestamp'"; mysql_query($sql); } function incThreadViews($threadID) { $sql = "UPDATE thread SET views = views + 1 WHERE id = " . $threadID . " LIMIT 1"; mysql_query($sql); } function cleanup_forum_log(){ $sql = "SELECT timestamp FROM forum_logging where userid=0 and threadid=0"; $result=mysql_query($sql); if (mysql_num_rows($result)>0) { $data=mysql_fetch_object($result); if ($data->timestamp
"; } } else if ($forum && !$thread) { echo ""; if ($helpdesk) { echo "", " Questions and problems : "; } else { echo "", " Message boards : "; } echo $forum->title; echo "