public function renderList() { $this->addRowAction('view'); $this->addRowAction('delete'); $this->_select = ' CONCAT(c.`firstname`," ",c.`lastname`) as customer, cl.`name` as contact, l.`name` as language, group_concat(message) as messages, ( SELECT IFNULL(CONCAT(LEFT(e.`firstname`, 1),". ",e.`lastname`), "--") FROM `' . _DB_PREFIX_ . 'customer_message` cm2 INNER JOIN ' . _DB_PREFIX_ . 'employee e ON e.`id_employee` = cm2.`id_employee` WHERE cm2.id_employee > 0 AND cm2.`id_customer_thread` = a.`id_customer_thread` ORDER BY cm2.`date_add` DESC LIMIT 1 ) as employee'; $this->_join = ' LEFT JOIN `' . _DB_PREFIX_ . 'customer` c ON c.`id_customer` = a.`id_customer` LEFT JOIN `' . _DB_PREFIX_ . 'customer_message` cm ON cm.`id_customer_thread` = a.`id_customer_thread` LEFT JOIN `' . _DB_PREFIX_ . 'lang` l ON l.`id_lang` = a.`id_lang` LEFT JOIN `' . _DB_PREFIX_ . 'contact_lang` cl ON (cl.`id_contact` = a.`id_contact` AND cl.`id_lang` = ' . (int) $this->context->language->id . ')'; $this->_group = 'GROUP BY cm.id_customer_thread'; $this->_orderBy = 'id_customer_thread'; $this->_orderWay = 'DESC'; $contacts = CustomerThread::getContacts(); $categories = Contact::getCategoriesContacts(); $params = array($this->l('Total threads') => $all = CustomerThread::getTotalCustomerThreads(), $this->l('Threads pending') => $pending = CustomerThread::getTotalCustomerThreads('status LIKE "%pending%"'), $this->l('Total number of customer messages') => CustomerMessage::getTotalCustomerMessages('id_employee = 0'), $this->l('Total number of employee messages') => CustomerMessage::getTotalCustomerMessages('id_employee != 0'), $this->l('Unread threads') => $unread = CustomerThread::getTotalCustomerThreads('status = "open"'), $this->l('Closed threads') => $all - ($unread + $pending)); $this->tpl_list_vars = array('contacts' => $contacts, 'categories' => $categories, 'params' => $params); return parent::renderList(); }