} $conversation->messages[$message->msg_id] = $message; } return $conversations; } $dao = new DAO(false); if (isset($_POST["user_id"])) { if ($_POST["user_id"] == "-1") { //Get an array of all the conversations $conversations_query = "(SELECT user_id2 AS user_id FROM chat_msg WHERE user_id1={$user->user_id} GROUP BY user_id2) \n\t\t\t\t\t\t\t\t\tUNION \n\t\t\t\t\t\t\t\t\t(SELECT user_id1 AS user_id FROM chat_msg WHERE user_id2={$user->user_id} GROUP BY user_id1)"; $dao->myquery($conversations_query); $conversation_requests = $dao->fetch_all_part(array("user_id")); $conversations = array(); foreach ($conversation_requests as $request) { $c = get_conversations($dao, $request["user_id"], -1, -1)[$request["user_id"]]; $conversations[$request["user_id"]] = $c; } echo json_encode_strip($conversations); } else { $conversations = get_conversations($dao, $_POST["user_id"], -1, -1)[$_POST["user_id"]]; echo json_encode_strip($conversations); } } else { $conversation_requests = $_POST; $conversations = array(); foreach ($conversation_requests as $request) { $c = get_conversations($dao, $request["user_id"], $request["latest_pulled"], $request["latest_seen_by_u2"])[$request["user_id"]]; $conversations[$request["user_id"]] = $c; } echo json_encode_strip($conversations); }
function codopm_do_route() { if (isset($_GET['do'])) { require 'config.php'; $conf = new Config(codopm::$db); codopm::$config = $conf->get_config(); require 'getmessages.php'; $do = $_GET['do']; if ($do == 'get_config') { echo json_encode(codopm::$config); } else { if ($do == 'send') { if (!isset($_POST['to'])) { $resp = new response(); $resp->has_error = true; $resp->msg = "file size exceeded maximum post size, please remove some files"; echo json_encode($resp); return; } send_message((int) $_GET['id'], (int) $_POST['to'], strip_tags($_POST['message'])); } else { if ($do == 'get_messages') { $id = (int) $_GET['id']; $my_name = save_my_details($id); $per_page = codopm::$config['msgs_per_page']; $start = (int) $_GET['range']['from']; $end = (int) $_GET['range']['to']; $resp = new response(); if ($_GET['type'] == 'default') { $start = 0; } else { if ($_GET['type'] == 'next') { $start += $per_page; } else { if ($_GET['type'] == 'previous') { $start -= $per_page; } else { exit; } } } $messages = get_messages($id, $start); $msg_cnt = count($messages); $count = get_message_count($id); $cnt = $count[0]["count"]; if ($msg_cnt < $per_page) { $end = $cnt; } else { $end = $start + $per_page - 1; } if ($start === 0 && $cnt != 0) { $start = 1; $end = $per_page; } if ($end > $cnt || $end < $cnt && $cnt < $per_page) { $end = $cnt; } $resp->has_error = false; $resp->start = $start; $resp->end = $end; $resp->per_page = $per_page; $resp->messages = $messages; $resp->my_name = $my_name; $resp->count = $cnt; echo json_encode($resp); } else { if ($do == 'get_conversations') { $to = (int) $_GET['msg_to']; $from = (int) $_GET['msg_from']; $offset = codopm::$config['conv_load_offset']; $res = get_conversations($to, $from, (int) $_GET['id'], codopm::$config['conv_per_page'] + 1); $conversations = $res['conversations']; $count = $res['count']; set_message_read($to, $from, (int) $_GET['id']); $resp = new response(); $resp->has_error = false; if ($count > codopm::$config['conv_per_page']) { array_pop($conversations); $resp->read_more = 'yes'; } else { $resp->read_more = 'no'; } $resp->conversations = $conversations; $resp->offset = $offset; echo json_encode($resp); } else { if ($do == 'delete_conversation') { delete_conversation((int) $_POST['msg_id']); $resp = new response(); $resp->has_error = false; echo json_encode($resp); } else { if ($do == 'load_more_conversations') { $to = (int) $_GET['msg_to']; $from = (int) $_GET['msg_from']; $offset = (int) $_GET['msg_offset']; $res = get_conversations($to, $from, (int) $_GET['id'], codopm::$config['conv_load_offset'] + 1, $offset); $conversations = $res['conversations']; $count = $res['count']; $resp = new response(); $resp->has_error = false; if ($count > codopm::$config['conv_load_offset']) { array_pop($conversations); $resp->read_more = 'yes'; } else { $resp->read_more = 'no'; } $resp->conversations = $conversations; $resp->offset = $offset; echo json_encode($resp); } else { if ($do == 'autocomplete') { $results = array(); if (isset($_GET['term'])) { $terms = strip_tags($_GET['term']); if (strpos($terms, ",") !== FALSE) { $_term = explode(",", $terms); $term = trim(end($_term)); } else { $term = $terms; } $query = "SELECT name,username FROM " . codopm::$db_prefix . "users " . "WHERE (username LIKE :term1 OR name LIKE :term2)"; $sth = codopm::$db->prepare($query); $variable_array = array(":term1" => $term . '%', ":term2" => $term . '%'); $sth->execute($variable_array); $result = $sth->fetchAll(); foreach ($result as $res) { $label = $res['name']; if (empty($label)) { $label = $res['username']; } else { if ($res['name'] != $res['username']) { $label = $res['name'] . " " . "(" . $res['username'] . ")"; } } $results[] = array("id" => $res['username'], "label" => $label, "value" => $res['username']); } } echo json_encode($results); } } } } } } } } else { die("CODOPM SAYS: Invalid Req"); } }