Файл: adultscript-2.0.3-pro/files/modules/message/components/inbox.php
Строк: 59
<?php
defined('_VALID') or die('Restricted Access!');
class VComponent_message_inbox extends VModule_message
{
    public function __construct()
    {
        parent::__construct();
    }
    
    public function render()
    {
        VAuth::check('Registered');
        
        VLanguage::load('frontend.user');
        
        $user_id     = (int) $_SESSION['user_id'];
        
        $errors        = array();
        $messages    = array();
        if (isset($_POST['action'])) {
            $action = trim($_POST['action']);
            $msg_id = (isset($_POST['id'])) ? (int) trim($_POST['id']) : 0;
            if ($msg_id) {
                switch ($action) {
                    case 'delete':
                        $this->delete($msg_id, 0, $user_id);
                        $messages[] = __('msg-delete-success');
                        break;
                    default:
                        $errors[] = 'Invalid action! What exactly did you click!?';
                }
            } else {
                $errors[] = 'Invalid message! Are you sure this message exists!?';
            }
        }
        
        if (isset($_POST['submit-actions'])) {
            $ids     = $this->get_checked_ids();
            if ($ids) {
                $action    = trim($_POST['actions']);
                if ($action == 'delete') {
                    $this->db->query("DELETE FROM #__message
                                      WHERE msg_id IN (".implode(',', array_values($ids)).")
                                      AND receiver_id = ".$user_id);
                    $messages[] = __('msgs-delete-success');
                } else {
                    $errors[] = __('action-invalid');
                }
            } else {
                $errors[] = __('msgs-empty');
            }
        }
        
        $page            = (isset($_GET['page'])) ? (int) trim($_GET['page']) : 1;
        $sql_count        = "SELECT COUNT(DISTINCT sender_id) AS total_msgs
                           FROM #__message
                           WHERE receiver_id = ".$user_id."
                           AND status IN (1, 2, 3)";
        $total_msgs        = $this->db->get_field($sql_count, 'total_msgs');
        $pagination        = VPagination::get($page, $total_msgs, 20);
        $sql            = "SELECT m.msg_id, m.sender_id, m.receiver_id, m.subject,
                                  m.message, m.send_time, m.status,
                                  u.username, u.avatar, u.gender
                           FROM #__message AS m
                           LEFT JOIN #__user AS u ON (u.user_id = m.sender_id)
                           WHERE m.receiver_id = ".$user_id."
                           AND m.status IN (1, 2, 3)
                           GROUP BY m.sender_id
                           ORDER BY m.msg_id DESC
                           LIMIT ".$pagination['limit'];
        $msgs            = $this->db->get_rows($sql);
    
        $this->tpl->menu        = 'home';
        $this->tpl->submenu        = 'user-message-inbox';
        $this->tpl->colmenu        = 'manage';
        
        $this->tpl->title        = __('inbox-title');
        $this->tpl->meta_title    = __('inbox-meta-title');
        
        $this->tpl->errors        = $errors;
        $this->tpl->messages    = $messages;
        $this->tpl->msgs        = $msgs;
        $this->tpl->pagination    = $pagination;
        
        $this->tpl->load(array('header', 'user_messages', 'footer'));
        $this->tpl->display();
    }
}