Scoof Posted March 9, 2015 Share Posted March 9, 2015 Bonjour à tous, je cherche à rajouter un filtre par type de transporteur dans mon back office, du coup j'ai cherché un peu partout pour pouvoir le faire mais je n'ai pas trouvé pour la dernière mouture de prestashop. Je sais ou ça se passe je vois le principe mais mes connaissances en dev sont nulles et je ne sais pas comment faire. En sachant que je n'ai pas besoin de filtrer par pays et je me suis dit que je pouvais remplacer le filtre par pays par le filtre par transporteur. Si quelqu'un à une solution je vous en serais très reconnaissant merci d'avance Link to comment Share on other sites More sharing options...
Nowis Posted March 9, 2015 Share Posted March 9, 2015 Bonjour, Le principe est donc de surcharger la méthode __construct() pour y ajouter à l'array $this->fields_list un tableau comportant le nom du transporteur. Cet array est directement tiré d'une requête SQL (il faudra donc surcharger la variable $this->_select et $this->_join pour y ajouter les transporteurs) Vous pouvez vous baser sur la fonction __construct de la class AdminOrdersControllerCore 1 Link to comment Share on other sites More sharing options...
Scoof Posted March 9, 2015 Author Share Posted March 9, 2015 Bonjour Nowis et merci pour votre aide.Pour être totalement franc avec vous je suis dans le brouillard le plus complet car comme je le disais je n'y connais pas grand chose et meme si je vois le principe je ne sais pas comment le réaliser... Merci Link to comment Share on other sites More sharing options...
makinero Posted February 3, 2016 Share Posted February 3, 2016 Bonjour, Je remonte ce sujet car je suis également à la recherche d'une solution à ce problème. Merci Link to comment Share on other sites More sharing options...
AlexanderOs Posted February 3, 2016 Share Posted February 3, 2016 Boujour, Pour surcharger un contrôleur vous devez vous rendre dans votre-site/override/controllers/admin Dans ce dossier créer un fichier AdminOrdersController.php et puis y mettre ceci <?php class AdminOrdersController extends AdminOrdersControllerCore { public function __construct() { parent::__construct(); $this->_select .= ', ca.name as carrier_name'; $this->_join .= ' LEFT JOIN `'._DB_PREFIX_.'carrier` ca ON (ca.`id_carrier` = a.`id_carrier`)'; $this->fields_list['carrier_name'] = array( 'title' => $this->l('Transporteur'), 'width' => 200, 'callback' => 'transporteur' ); } public function processFilter() { parent::processFilter(); $this->_filter = str_replace('`carrier_name`', 'ca.name', $this->_filter); } public function transporteur($carrier_name) { if (strpos(strtolower($carrier_name), 'colissimo') !== FALSE) return '<span style="color: #006a32;">' . $carrier_name . '</span>'; else return $carrier_name; } } Vidé le cache de presta et voila ! 1 Link to comment Share on other sites More sharing options...
rachel01 Posted March 8, 2020 Share Posted March 8, 2020 Bonjou On 2/3/2016 at 2:17 PM, AlexanderOs said: Boujour, Pour surcharger un contrôleur vous devez vous rendre dans votre-site/override/controllers/admin Dans ce dossier créer un fichier AdminOrdersController.php et puis y mettre ceci <?php class AdminOrdersController extends AdminOrdersControllerCore { public function __construct() { parent::__construct(); $this->_select .= ', ca.name as carrier_name'; $this->_join .= ' LEFT JOIN `'._DB_PREFIX_.'carrier` ca ON (ca.`id_carrier` = a.`id_carrier`)'; $this->fields_list['carrier_name'] = array( 'title' => $this->l('Transporteur'), 'width' => 200, 'callback' => 'transporteur' ); } public function processFilter() { parent::processFilter(); $this->_filter = str_replace('`carrier_name`', 'ca.name', $this->_filter); } public function transporteur($carrier_name) { if (strpos(strtolower($carrier_name), 'colissimo') !== FALSE) return '<span style="color: #006a32;">' . $carrier_name . '</span>'; else return $carrier_name; } } Vidé le cache de presta et voila ! Merci pour cette astuce mais j'ai cette erreur : Column 'id_carrier' in field list is ambiguous Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now