Nous allons désormais ajourer les formulaires nécessaires à l'administration de notre table, le tout via l'interface du grid magento. Dans ce tutoriel nous allons voir une version assez basique pour apprendre les incontournables, nous verrons dans une prochain cours, comment customiser ce module pour obtenir un affichage plus complet et dynamique.
Nous allons commencer par modifier l'appel du grid actuel dans le block produit, Valibus/Gestion/Block/Adminhtml/Produit.php
On ajoute ici un label pour le bouton add que l'on ne supprimer plus, et on active l'option saveparameterinsession. Le headertext est modifié au passage pour plus cohérence mais ce n'est ici que du cosmétique.La même function parameterinsession va d'ailleurs être également ajoutée dans l'édition du fichier Grid.php, Valibus/Gestion/Block/Adminhtml/Produit/Grid.php. On a modifie également la fonction de fin de fichier, getRowUrl pour qu'elle renvoie vers une fiche Produit.
Nous allons maintenant créer l'ensemble des fichiers propres aux formulaires du grid, à commencer par le form container. Créons donc le fichier :
Comme vous le constatez on commence par définir un Id, un block_group et le controller se rapportant à nos fomulaires. On fait également un peu de cosmétique en redéfinissant le label de nos boutons.
La fonction getheaderText est elle implémentée pour afficher une en-tête différent en fonction d'un écran d'édit ou d'ajout. On passe par cela par un test de mage::registry('gestion_data'). Qui correspond pour l'explication à une variable de session.
La partie tabs correspond aux onglet verticaux dans l'écran de gestion de notre Grid (il y en beaucoup d'utilisé lors de la création des produits du catalogue par exemple) Dans ce fichier (Valibus/Gestion/Block/Adminhtml/Produit/Edit/Tabs.php) on construit d'abord le container puis la partie function beforetohtml définie elle l'ajout des tabs proprement dit, via la fonction addTab.
Passons désormais à la création du formulaire lui même, dans le fichier
Cette partie définie donc la création du formulaire, que nous implémentons dans le fichier ci dessous, Valibus/Gestion/Block/Adminhtml/Produit/Edit/Tab/Form.php. On y définie les champs de notre formulaire, ainsi que le préremplissage en cas d'édit à l'aide du registry. (Rappelez vous que l'on utilise le même formulaire que l'on soit en processus d'édition ou d'ajout.)
Terminons ce tutoriel par la modification de notre controller, pour lui ajouter les functions newAction, editAction, saveAction, deleteAction
Deux informations importantes ici, la redirection de l'action new vers edit à l'aide _forward, ainsi que l'utilisation de redirect implémentée pour notre propre controller et non pas avec un simple */*/.
Etape suivante : 9 - Mass Action dans le grid magento
Si ce ne tutoriel ne répond à votre demande plus précise, nous avons également un développeur magento à votre service.
Rendez-vous le 6 avril 2023 pour une journée acquisition, fidélisation et conversion !