Example #1
0
    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/&amp;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&amp;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'] . '&amp;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);
    }