Messages::getList PHP Method

getList() private method

private getList ( $data, $filter )
    private function getList($data, $filter)
    {
        if ($this->input->post('message_state')) {
            if ($this->_updateMessageState($this->input->post('message_state'), $this->user->getStaffId(), $filter['filter_folder']) === TRUE) {
                redirect(current_url());
            }
        }
        $url = '?';
        if ($this->input->get('page')) {
            $filter['page'] = (int) $this->input->get('page');
        } else {
            $filter['page'] = '';
        }
        if ($this->config->item('page_limit')) {
            $filter['limit'] = $this->config->item('page_limit');
        }
        if ($this->input->get('filter_search')) {
            $filter['filter_search'] = $data['filter_search'] = $this->input->get('filter_search');
            $url .= 'filter_search=' . $filter['filter_search'] . '&';
        } else {
            $data['filter_search'] = '';
        }
        if ($this->input->get('filter_recipient')) {
            $filter['filter_recipient'] = $data['filter_recipient'] = $this->input->get('filter_recipient');
            $url .= 'filter_recipient=' . $filter['filter_recipient'] . '&';
        } else {
            $filter['filter_recipient'] = $data['filter_recipient'] = '';
        }
        if ($this->input->get('filter_type')) {
            $filter['filter_type'] = $data['filter_type'] = $this->input->get('filter_type');
            $url .= 'filter_type=' . $filter['filter_type'] . '&';
        } else {
            $filter['filter_type'] = $data['filter_type'] = '';
        }
        $filter['filter_staff'] = $this->user->getStaffId();
        if ($this->input->get('filter_date')) {
            $filter['filter_date'] = $data['filter_date'] = $this->input->get('filter_date');
            $filter['filter_date'];
            $url .= 'filter_date=' . $filter['filter_date'] . '&';
        } else {
            $filter['filter_date'] = $data['filter_date'] = '';
        }
        if ($this->input->get('sort_by')) {
            $filter['sort_by'] = $data['sort_by'] = $this->input->get('sort_by');
        } else {
            $filter['sort_by'] = $data['sort_by'] = 'messages.date_added';
        }
        if ($this->input->get('order_by')) {
            $filter['order_by'] = $data['order_by'] = $this->input->get('order_by');
            $data['order_by_active'] = $this->input->get('order_by') . ' active';
        } else {
            $filter['order_by'] = $data['order_by'] = 'DESC';
            $data['order_by_active'] = 'DESC';
        }
        $order_by = (isset($filter['order_by']) and $filter['order_by'] == 'ASC') ? 'DESC' : 'ASC';
        $data['sort_type'] = site_url($data['page_uri'] . $url . 'sort_by=send_type&order_by=' . $order_by);
        $data['sort_date'] = site_url($data['page_uri'] . $url . 'sort_by=messages.date_added&order_by=' . $order_by);
        $message_state = $data['filter_folder'] === 'inbox' ? 'message message-unread active' : 'message';
        $data['messages'] = array();
        $results = $this->Messages_model->getList($filter);
        foreach ($results as $result) {
            $date_added = time_elapsed($result['date_added']);
            if (strpos($date_added, 'month') !== 'FALSE' or strpos($date_added, 'year') !== 'FALSE') {
                $date_added = mdate('%d %M %y', strtotime($result['date_added']));
            }
            if (empty($result['deleted']) and $result['message_status'] == '1' and $result['item'] === 'staff_id') {
                $folder = 'inbox';
            } else {
                if (empty($result['message_status']) and $result['sender_id'] == $this->user->getStaffId()) {
                    $folder = 'draft';
                } else {
                    if (empty($result['deleted']) and $result['message_status'] === '1' and $result['item'] === 'sender_id' and $result['sender_id'] == $this->user->getStaffId()) {
                        $folder = 'sent';
                    } else {
                        $folder = 'archive';
                    }
                }
            }
            $data['messages'][] = array('message_id' => $result['message_id'], 'message_meta_id' => isset($result['message_meta_id']) ? $result['message_meta_id'] : 0, 'from' => $result['staff_name'], 'send_type' => $result['send_type'], 'send_type_class' => (isset($result['send_type']) and $result['send_type'] === 'account') ? 'fa-user' : 'fa-at', 'subject' => strip_tags(html_entity_decode($result['subject'], ENT_QUOTES, 'UTF-8')), 'recipient' => ucwords(str_replace('_', ' ', $result['recipient'])), 'date_added' => $date_added, 'folder' => $folder, 'body' => strlen($result['body']) > 40 ? substr(strip_tags(html_entity_decode($result['body'], ENT_QUOTES, 'UTF-8')), 0, 40) . '..' : strip_tags(html_entity_decode($result['body'], ENT_QUOTES, 'UTF-8')), 'state' => (isset($result['state']) and $result['state'] === '1') ? 'message message-read' : $message_state, 'view' => $filter['filter_folder'] === 'draft' ? site_url('messages/compose?id=' . $result['message_id']) : site_url('messages/view?id=' . $result['message_id'] . '&folder=' . $data['filter_folder']));
        }
        $message_unread = $this->user->unreadMessageTotal();
        $data['folders'] = array('inbox' => array('title' => $this->lang->line('text_inbox'), 'icon' => 'fa-inbox', 'badge' => $message_unread, 'url' => site_url('messages')), 'draft' => array('title' => $this->lang->line('text_draft'), 'icon' => 'fa-file-text-o', 'badge' => '', 'url' => site_url('messages/draft')), 'sent' => array('title' => $this->lang->line('text_sent'), 'icon' => 'fa-paper-plane-o', 'badge' => '', 'url' => site_url('messages/sent')), 'all' => array('title' => $this->lang->line('text_all'), 'icon' => 'fa-briefcase', 'badge' => '', 'url' => site_url('messages/all')), 'archive' => array('title' => $this->lang->line('text_archive'), 'icon' => 'fa-archive', 'badge' => '', 'url' => site_url('messages/archive')));
        $data['labels'] = array('account' => array('title' => $this->lang->line('text_account'), 'icon' => 'fa-user', 'url' => page_url() . '?filter_type=account'), 'email' => array('title' => $this->lang->line('text_email'), 'icon' => 'fa-at', 'url' => page_url() . '?filter_type=email'));
        $data['message_dates'] = array();
        $message_dates = $this->Messages_model->getMessageDates();
        foreach ($message_dates as $message_date) {
            $month_year = $message_date['year'] . '-' . $message_date['month'];
            $data['message_dates'][$month_year] = mdate('%F %Y', strtotime($message_date['date_added']));
        }
        if ($this->input->get('sort_by') and $this->input->get('order_by')) {
            $url .= 'sort_by=' . $filter['sort_by'] . '&';
            $url .= 'order_by=' . $filter['order_by'] . '&';
        }
        $config['base_url'] = site_url($data['page_uri'] . $url);
        $config['total_rows'] = $this->Messages_model->getCount($filter);
        $config['per_page'] = $filter['limit'];
        $this->pagination->initialize($config);
        $data['pagination'] = array('info' => $this->pagination->create_infos(), 'links' => $this->pagination->create_links());
        return $data;
    }

Usage Example

Example #1
0
        $messages->flagMessage($flagHash);
    }
}
// Delete messages if the delete button was pressed
if (!empty($_REQUEST["delete"]) && !empty($_REQUEST["msg"])) {
    foreach (array_keys($_REQUEST["msg"]) as $msg_id) {
        $messages->expunge($gBitUser->mUserId, $msg_id);
    }
}
if (!empty($_REQUEST['filter'])) {
    if ($_REQUEST['flags'] != '') {
        $parts = explode('_', $_REQUEST['flags']);
        $_REQUEST['flag'] = substr($_REQUEST['flags'], 0, strrpos($_REQUEST['flags'], '_'));
        $_REQUEST['flagval'] = substr($_REQUEST['flags'], strrpos($_REQUEST['flags'], '_') + 1);
    }
}
if (empty($_REQUEST["sort_mode"])) {
    $_REQUEST['sort_mode'] = 'msg_date_desc';
} else {
    $_REQUEST['sort_mode'] = $_REQUEST["sort_mode"];
}
if (isset($_REQUEST["find"])) {
    $find = $_REQUEST["find"];
} else {
    $find = '';
}
$listHash = $_REQUEST;
$items = $messages->getList($listHash);
$gBitSmarty->assign('items', $items);
$gBitSmarty->assign('listInfo', $listHash['listInfo']);
$gBitSystem->display('bitpackage:messages/mailbox.tpl', 'Message box', array('display_mode' => 'display'));