name = 'ordercolumns'; $this->tab = 'administration'; $this->version = '1.0.4'; $this->author = 'DepannPC64'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Order Columns'); $this->description = $this->l('Add custom columns to admin orders list.'); } public function install() { return parent::install() && $this->registerHook('actionAdminListModifier') && $this->registerHook('actionAdminListColumns'); } public function hookActionAdminListModifier($params) { if ($params['controller'] == 'AdminOrders') { $params['defaults']['telephone'] = array('selected' => 1, 'title' => $this->l('Téléphone')); $params['defaults']['langue_drapeau'] = array('selected' => 1, 'title' => $this->l('Langue')); $params['defaults']['suivi_commande'] = array('selected' => 1, 'title' => $this->l('Suivi')); $params['defaults']['transporteur_nom'] = array('selected' => 1, 'title' => $this->l('Transporteur')); $params['defaults']['note_interne'] = array('selected' => 1, 'title' => $this->l('Note interne')); } } public function hookActionAdminListColumns($params) { if ($params['controller'] != 'AdminOrders') { return; } if ($params['key'] == 'telephone') { $params['select'] .= ', address.`phone` AS `telephone`'; $params['join'] .= ' LEFT JOIN `'._DB_PREFIX_.'address` address ON(address.`id_address` = a.`id_address_delivery`)'; $params['fields_list']['telephone'] = array( 'title' => $this->l('Téléphone'), 'filter_key' => 'address!phone', 'class' => $params['auto_width'] ? '' : 'fixed-width-md' ); } if ($params['key'] == 'langue_drapeau') { $params['select'] .= ', a.`id_lang` AS `id_lang`, a.`id_lang` AS `langue_drapeau`'; $params['fields_list']['langue_drapeau'] = array( 'title' => $this->l('Langue'), 'type' => 'select', 'list' => $this->getLanguagesList(), 'filter_key' => 'a!id_lang', 'filter_type' => 'int', 'image' => 'l', 'image_id' => 'id_lang', 'height' => 16, 'class' => 'fixed-width-xs' ); } if ($params['key'] == 'suivi_commande') { $params['select'] .= ', IFNULL(oct.`tracking_number`, "") AS `suivi_commande`'; $params['fields_list']['suivi_commande'] = array( 'title' => $this->l('Suivi'), 'filter_key' => 'oct!tracking_number', 'order_key' => 'suivi_commande', 'callback' => 'buildTrackingLink', 'remove_onclick' => true, 'class' => $params['auto_width'] ? '' : 'fixed-width-md' ); } if ($params['key'] == 'transporteur_nom') { $params['select'] .= ', carrier.`name` AS `transporteur_nom`'; $params['fields_list']['transporteur_nom'] = array( 'title' => $this->l('Transporteur'), 'filter_key' => 'carrier!name', 'order_key' => 'transporteur_nom', 'class' => $params['auto_width'] ? '' : 'fixed-width-md' ); } if ($params['key'] == 'note_interne') { $params['select'] .= ', c.`note` AS `note_interne`'; $params['fields_list']['note_interne'] = array( 'title' => $this->l('Note interne'), 'filter_key' => 'c!note', 'class' => $params['auto_width'] ? '' : 'fixed-width-lg' ); } } public function getLanguagesList() { $languages_array = array(); $languages = Language::getLanguages(false); foreach ($languages as $language) { $languages_array[$language['id_lang']] = $language['name']; } return $languages_array; } }