Beispiel #1
0
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');
Beispiel #2
0
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);
}