$send = true; } else { if ($to_user == 0) { $send = true; } else { $to_user = 0; $send = true; } } // Send message if (isset($send) && (!isset($_SESSION['chat_login']['last_send']) || isset($_SESSION['chat_login']['last_send']) && time() >= $_SESSION['chat_login']['last_send'])) { // Last message sent $_SESSION['chat_login']['last_send'] = $_SERVER['REQUEST_TIME']; // Delete old messages $messages = new MessagesModel(); $messages->setCond('timestamp < "' . date('Y-m-d H:i:s', strtotime('-' . TIME_MESSAGE_OLD . ' minutes')) . '"'); $messages->delete(); // Data $data = new StdClass(); $data->user = Filters::convert($_SESSION['chat_login']['user']); $data->id_user = $_SESSION['chat_login']['id_user']; $data->message = Filters::convert($message); $data->to_user = $to_user; $data->id_room = $_SESSION['chat_login']['id_room']; $data->reserved = $reserved; $data->timestamp = date('Y-m-d H:i:s'); $fields = array_keys((array) $data); // Insert message $messages = new MessagesModel(); $messages->setFields($fields); $messages->setData($data);
require_once 'app/autoload.php'; // Checks if is logged user if (isset($_SESSION['chat_login']['id_user'])) { // Return $return = ''; // Disables users stranded UsersModel::userDeleteIdle(); // Condition $condition = '(to_user = 0 OR id_user = '******'chat_login']['id_user'] . ' '; $condition .= 'OR to_user = '******'chat_login']['id_user'] . ' '; $condition .= 'OR (to_user != ' . $_SESSION['chat_login']['id_user'] . ' AND reserved = 0) '; $condition .= 'OR (id_user = 0 AND to_user = 0)) '; // Load messages $messages = new MessagesModel(); $messages->setCond($condition); $messages->setCond('id_room = ' . $_SESSION['chat_login']['id_room']); $messages->setCond('timestamp >= "' . date('Y-m-d H:i:s', $_SESSION['chat_login']['last']) . '"'); $messages->setOrderBy('timestamp ASC'); $load = $messages->load_all(); $_SESSION['chat_login']['last'] = $_SERVER['REQUEST_TIME']; $_SESSION['chat_login']['messages'] = isset($_SESSION['chat_login']['messages']) ? $_SESSION['chat_login']['messages'] : array(); $_SESSION['chat_login']['last_message'] = isset($_SESSION['chat_login']['last_message']) ? $_SESSION['chat_login']['last_message'] : $_SERVER['REQUEST_TIME']; foreach ($load as $line) { if (in_array($line['id'], $_SESSION['chat_login']['messages'])) { continue; } else { $_SESSION['chat_login']['messages'][] = $line['id']; if ($_SERVER['REQUEST_TIME'] > $_SESSION['chat_login']['last_message'] + 120) { $_SESSION['chat_login']['last_message'] = $_SERVER['REQUEST_TIME']; $_SESSION['chat_login']['messages'] = array();