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;
}