Cet article est la suite est de celui qui présente le fonctionnement de base et qui est consultable ici : https://www.h-hennes.fr/blog/2018/11/15/prestashop-admincontroller-pour-un-module/
Il présente les fonctionnalités avancées disponibles dans un adminController réalisé dans le cadre d’un module et il aura vocation a être modifié ou complété au fur et à mesure.
Voici le détails des points qui seront évoqués :
Général :
- Gestion de la toolbar
- Changement du titre
- Ajout d’un bouton d’action
- Ajouter une action
- Validation spécifique
- Gestion d’images
- Appels Ajax
- Surcharger le template
Listing :
- Champs active / non active
- Ajouter un callback sur un champ
- Ajouter des actions de masse personnalisée
- Récupérer les données de plusieurs tables
Formulaire :
- Lier des champs en ajax
- Afficher des contenus totalement personnalisé
Options :
- Traitement spécifique d’une option
- Ensemble des cas d’affichage d’options
Général :
Gestion de la toolbar :
Ajouter un titre sur la page
Ce point est géré par la fonction initToolbarTitle
/** * Affichage d'un titre personnalisé */ public function initToolbarTitle() { parent::initToolbarTitle(); switch ($this->display) { case '': case 'list': //Titre pour le listing array_pop($this->toolbar_title); $this->toolbar_title[] = $this->module->l('Custom Title for listing'); break; case 'add': //Titre pour l'ajout et l'édition d'un objet case 'edit': array_pop($this->toolbar_title); if (($sample = $this->loadObject(true)) && Validate::isLoadedObject($sample)) { $this->toolbar_title[] = sprintf($this->module->l('Editing sample %s'),$sample->name); } else { $this->toolbar_title[] = $this->module->l('Creating a new sample'); } break; } } |
Ajouter un bouton d’action :
Cet élément est géré par la fonction initPageHeaderToolbar
public function initPageHeaderToolbar() { //Bouton d'ajout ( standard ) $this->page_header_toolbar_btn['new'] = array( 'href' => self::$currentIndex . |