if (!($messages = messages_get($tid, $pid, $posts_per_page))) { html_draw_error(gettext("That post does not exist in this thread!")); } html_draw_top(array('title' => $thread_data['TITLE'], 'class' => 'window_title', 'js' => array('js/post.js', 'js/poll.js', 'js/messages.js', 'ckeditor/ckeditor.js'), 'base_target' => '_blank')); if (isset($thread_data['STICKY']) && isset($thread_data['STICKY_UNTIL'])) { if ($thread_data['STICKY'] == "Y" && $thread_data['STICKY_UNTIL'] != 0 && time() > $thread_data['STICKY_UNTIL']) { thread_set_sticky($tid, false); $thread_data['STICKY'] = "N"; } } $show_sigs = session::show_sigs(); $page_prefs = session::get_post_page_prefs(); $msg_count = count($messages); $highlight_array = array(); if (isset($_GET['highlight'])) { $highlight_array = search_get_keywords(); } echo "<div align=\"center\">\n"; echo "<table width=\"96%\" border=\"0\">\n"; echo " <tr>\n"; echo " <td align=\"left\">"; messages_top($tid, $pid, $thread_data['FID'], $folder_data['TITLE'], $thread_data['TITLE'], $thread_data['INTEREST'], $folder_data['INTEREST'], $thread_data['STICKY'], $thread_data['CLOSED'], $thread_data['ADMIN_LOCK'], $thread_data['DELETED'] == 'Y', true, $highlight_array); echo " </td>\n"; echo " <td align=\"right\">"; messages_social_links($tid); echo " </td>\n"; echo " </tr>\n"; echo "</table>\n"; if (isset($_GET['markasread']) && is_numeric($_GET['markasread'])) { if ($_GET['markasread'] > 0) { html_display_success_msg(gettext("Thread Read Status Updated Successfully"), '96%', 'center');
function search_fetch_results($page, $sort_by = null, $sort_dir = null) { if (!is_numeric($page) || $page < 1) { $page = 1; } $offset = calculate_page_offset($page, 20); if (!($db = db::get())) { return false; } if (!($table_prefix = get_table_prefix())) { return false; } if (!isset($_SESSION['UID']) || !is_numeric($_SESSION['UID'])) { return false; } $search_keywords = search_get_keywords(); if (!in_array($sort_dir, array(SEARCH_SORT_ASC, SEARCH_SORT_DESC))) { $sort_dir = SEARCH_SORT_ASC; } $sort_dir = $sort_dir == SEARCH_SORT_DESC ? 'DESC' : 'ASC'; $sql = "SELECT SQL_CALC_FOUND_ROWS THREAD.FID, THREAD.TID, POST.PID, THREAD.BY_UID, POST.FROM_UID, "; $sql .= "USER_TRACK.USER_VALUE AS KEYWORDS, UNIX_TIMESTAMP(POST.CREATED) AS CREATED, "; $sql .= "USER.LOGON AS FROM_LOGON, COALESCE(USER_PEER.PEER_NICKNAME, USER.NICKNAME) AS FROM_NICKNAME "; $sql .= "FROM SEARCH_RESULTS INNER JOIN `{$table_prefix}THREAD` THREAD ON (THREAD.TID = SEARCH_RESULTS.TID) "; $sql .= "INNER JOIN `{$table_prefix}FOLDER` FOLDER ON (FOLDER.FID = THREAD.FID) "; $sql .= "INNER JOIN `{$table_prefix}POST` POST ON (POST.TID = SEARCH_RESULTS.TID AND POST.PID = SEARCH_RESULTS.PID) "; $sql .= "INNER JOIN USER ON (USER.UID = POST.FROM_UID) LEFT JOIN `{$table_prefix}USER_PEER` USER_PEER "; $sql .= "ON (USER_PEER.PEER_UID = POST.FROM_UID AND USER_PEER.UID = '{$_SESSION['UID']}') "; $sql .= "LEFT JOIN `{$table_prefix}USER_TRACK` USER_TRACK ON (USER_TRACK.UID = SEARCH_RESULTS.UID "; $sql .= "AND USER_TRACK.USER_KEY = 'LAST_SEARCH_KEYWORDS') "; $sql .= "WHERE SEARCH_RESULTS.UID = '{$_SESSION['UID']}' "; $sql .= "AND ((USER_PEER.RELATIONSHIP & " . USER_IGNORED_COMPLETELY . ") = 0 "; $sql .= "OR USER_PEER.RELATIONSHIP IS NULL) "; $sql .= "AND ((USER_PEER.RELATIONSHIP & " . USER_IGNORED . ") = 0 "; $sql .= "OR USER_PEER.RELATIONSHIP IS NULL) "; switch ($sort_by) { case SEARCH_SORT_RELEVANCE: $sql .= "ORDER BY SEARCH_RESULTS.RELEVANCE {$sort_dir} LIMIT {$offset}, 20"; break; case SEARCH_SORT_NUM_REPLIES: $sql .= "ORDER BY THREAD.LENGTH {$sort_dir} LIMIT {$offset}, 20"; break; case SEARCH_SORT_FOLDER_NAME: $sql .= "ORDER BY FOLDER.TITLE {$sort_dir} LIMIT {$offset}, 20"; break; case SEARCH_SORT_AUTHOR_NAME: $sql .= "ORDER BY FROM_NICKNAME {$sort_dir} LIMIT {$offset}, 20"; break; default: $sql .= "ORDER BY POST.CREATED {$sort_dir} LIMIT {$offset}, 20"; break; } if (!($result = $db->query($sql))) { return false; } $sql = "SELECT FOUND_ROWS() AS ROW_COUNT"; if (!($result_count = $db->query($sql))) { return false; } list($result_count) = $result_count->fetch_row(); if ($result->num_rows == 0 && $result_count > 0 && $page > 1) { return search_fetch_results($page - 1, $sort_by, $sort_dir); } $search_results_array = array(); while (($search_result = $result->fetch_assoc()) !== null) { $search_result['KEYWORDS'] = $search_keywords; if (isset($search_result['FROM_LOGON']) && isset($search_result['PEER_NICKNAME'])) { if (!is_null($search_result['PEER_NICKNAME']) && strlen($search_result['PEER_NICKNAME']) > 0) { $search_result['FROM_NICKNAME'] = $search_result['PEER_NICKNAME']; } } if (!isset($search_result['FROM_LOGON'])) { $search_result['FROM_LOGON'] = gettext("Unknown user"); } if (!isset($search_result['FROM_NICKNAME'])) { $search_result['FROM_NICKNAME'] = gettext("Unknown user"); } $search_results_array[] = $search_result; } return array('result_count' => $result_count, 'result_array' => $search_results_array); }