public function main($user) { //loadLanguageFile('play'); include '../lang/English.php'; include '../lang/sk/play.php'; $msg = array(); $pm['messages'] = array(); $page = 'Pages/Messages'; // was 151 // If logged in if ($user['login_status'] == 1) { // TASK = VIEW if (isset($this->request[0]) && $this->request[0] == 'view') { $id = $this->request[1]; $sql = Query::query('SELECT * FROM messages WHERE id=' . $id . ' LIMIT 1'); if ($row = $sql->fetch_array()) { $this->set('reply', '<a href="' . 'messages/send/&id=' . $row['sender_id'] . '&re=' . $row['id'] . '">' . PM_REPLY . '</a>'); $this->set('delete', '<a href="' . 'messages/delete/' . $row['id'] . '">' . PM_DELETE_MESSAGE . '</a>'); $this->set('unread', '<a href="' . 'messages/unread/' . $row['id'] . '">' . PM_MARK_UNREAD . '</a>'); $this->set('subject', $row['title']); $this->set('img', 'uploads/avatars/' . $row['sender_id'] . '.jpg'); $this->set('date', $row['date']); $this->set('profile', 'profile&id=' . $row['sender_id']); $this->set('username', $row['sender_name']); $this->set('message', str_replace("\n", "<br>", $row['message'])); if ($row['opened'] == 0) { Query::query('UPDATE messages SET opened=1 WHERE messages.id=' . $id . ' LIMIT 1'); // Update user messages counter $msg_count = Query::query('SELECT COUNT(*) as Num FROM messages WHERE user_id=' . $user['id'] . ' AND opened=0')->fetch_assoc()['Num']; $update = Query::query('UPDATE tbl_users SET messages=' . $msg_count . ' WHERE id=' . $user['id']) or die(mysql_error()); } } $page .= 'Pages/View'; } // TASK = SEND if (isset($this->request[0]) && $this->request[0] == 'send') { $id = $this->request[1]; if (isset($this->request[2])) { $re = intval($this->request[2]); $re2 = Query::query("SELECT * FROM messages WHERE id={$re} AND user_id={$user['id']}")->fetch_assoc(); $this->set('subject', 'Re: ' . $re2['title']); $this->set('msg', "\n\n\n" . $re2['sender_name'] . " wrote:\n> " . str_replace("<br />", "\n>", preg_replace('/\\s+/', ' ', nl2br($re2['message'])))); } else { $this->set('subject', ''); $this->set('msg', ''); } $this->set('action', 'messages/sent/' . $id); $page .= 'Pages/Send'; } // TASK = SENT if (isset($this->request[0]) && $this->request[0] == 'sent') { $id = $this->request[1]; // Give it a title if it lacks one if ($_POST['message_title'] == "") { $title = 'Untitled'; } else { $title = Query::secure($_POST['message_title']); } $message = Query::secure($_POST['message']); $date = date("F j Y, G:i"); $read = 0; Query::query("INSERT INTO messages (user_id, sender_id, sender_name, title, message, date, ip) \r\n\t\t\t\t VALUES ('{$id}', '{$user['id']}', '{$user['username']}', '{$title}', '{$message}', '{$date}', '{$_SERVER['REMOTE_ADDR']}')"); echo 'Message sent!<br><br> <a href="profile/' . $id . '">Return to user profile</a><br> <a href="messages">Go to inbox</a>'; // Update user messages counter $msg_count = Query::query('SELECT COUNT(opened) as Num FROM messages WHERE user_id=' . $user['id'] . ' AND opened=0')->fetch_assoc()['Num']; $update = Query::query("UPDATE tbl_users SET messages={$msg_count} WHERE id='{$user['id']}'") or die(mysql_error()); } // TASK = DELETE if (isset($this->request[0]) && $this->request[0] == 'delete') { $id = $this->request[1]; $result = Query::query('DELETE FROM messages WHERE id=' . $id . ' AND user_id=' . $user['id']); // Update user messages counter $msg_count = Query::query('SELECT COUNT(opened) as Num FROM messages WHERE user_id=' . $user['id'] . ' AND opened=0')->fetch_assoc()['Num']; $update = Query::query("UPDATE tbl_users SET messages={$msg_count} WHERE id='{$user['id']}'") or die(mysql_error()); echo '<div id="pm_task_complete">' . PM_DELETED . '</div>'; } // TASK = UNREAD if (isset($this->request[0]) && $this->request[0] == 'unread') { $id = $this->request[1]; $read = Query::query('SELECT opened FROM messages WHERE id=' . $id . ' LIMIT 1')->fetch_assoc()['opened']; if ($read == 1) { Query::query('UPDATE messages SET opened = 0 WHERE messages.id = ' . $id . ' LIMIT 1'); // Update user messages counter $msg_count = Query::query('SELECT COUNT(opened) as Num FROM messages WHERE user_id=' . $user['id'] . ' AND opened=0')->fetch_assoc()['Num']; $update = Query::query("UPDATE tbl_users SET messages={$msg_count} WHERE id='{$user['id']}'") or die(mysql_error()); echo '<div id="pm_task_complete">' . PM_MAU . '</div>'; } } // TASK = READ if (isset($this->request[0]) && $this->request[0] == 'read') { $id = $this->request[1]; $read = Query::query('SELECT opened FROM messages WHERE id=' . $id . ' LIMIT 1')->fetch_assoc()['opened']; if ($read == 0) { Query::query('UPDATE messages SET opened = 1 WHERE messages.id = ' . $id . ' LIMIT 1'); // Update user messages counter $msg_count = Query::query('SELECT COUNT(opened) as Num FROM messages WHERE user_id=' . $user['id'] . ' AND opened=0')->fetch_assoc()['Num']; $update = Query::query("UPDATE tbl_users SET messages={$msg_count} WHERE id='{$user['id']}'") or die(mysql_error()); echo '<div id="pm_task_complete">' . PM_MAU . ' read</div>'; } } // Get all messages $msgs = Query::query("SELECT COUNT(opened) as Num FROM messages WHERE user_id={$user['id']}")->fetch_assoc()['Num']; if ($msgs >= 1) { $sql = Query::query("SELECT * FROM messages WHERE user_id={$user['id']} ORDER BY id desc"); while ($row = $sql->fetch_assoc()) { if ($row['opened'] == 0) { $link_class = 'unread_pm_link'; } else { $link_class = 'read_pm_link'; } $profile_url = Utils::ProfileUrl($row['sender_id'], $row['sender_name']); $msg['profile_url'] = $profile_url; $msg['url'] = 'messages/view/' . $row['id']; $msg['title'] = $row['title']; $msg['date'] = $row['date']; $msg['sender_name'] = $row['sender_name']; $msg['link_class'] = $link_class; $msg['reply'] = 'messages/reply/re=' . $row['id'] . '&id=' . $row['sender_id']; $msg['unread'] = 'messages/unread/' . $row['id']; $msg['read'] = 'messages/read/' . $row['id']; $msg['delete'] = 'messages/delete/' . $row['id']; $msg['reply_img'] = 'img/msg-reply.png'; $msg['unread_img'] = 'img/msg-unread.png'; $msg['read_img'] = 'img/msg-read.png'; $msg['delete_img'] = 'img/msg-delete.png'; array_push($pm['messages'], $msg); } } } else { header("Location: login"); } $this->set('messages', $pm['messages']); $this->render($page); }