par
Dans cette partie nous allons automatiser l’installation du plugin et mettre en place les premières interfaces dans l’admin.
Rappel partie 1 Parties suivantes : partie 3 , partie 4 et partie 5
Lors de l’activation d’un plugin, il peut être intéressant d’automatiser certaines actions comme : la création d’une ou plusieurs tables liées au plugin, l’enregistrement de données dans les tables existantes de Thelia ou encore la création de dossiers.
Pour réaliser ces actions, Thelia doit exécuter la méthode init présente dans la classe du plugin.
Dans le cadre du plugin en cours de développement, nous devons créer une table pour enregistrer les commentaires. Cette table aura la structure suivante :
Si vous utilisez des outils comme mysql workbench, vous pouvez directement exporter le SQL permettant la création de la table. Pour cela créez la méthode init et initialisez une variable avec l’instruction SQL :
La classe PluginsClassiques hérite des classes Cnx et Requete, qui permettent de réaliser des opérations sur la base de données.
La méthode query utilisée précédemment fait partie de ces méthodes et permet d’exécuter une instruction SQL. Le second paramètre à true va permettre de soulever une exception si une erreur est rencontrée lors de l’exécution de la requête.
La méthode équivalente existe pour la désactivation d’un plugin. Il s’agit de la méthode destroy qui permet d’automatiser des traitements. Il est donc possible de prévoir la suppression de la table créée lors de la désactivation du plugin.
J’ai pris pour habitude de ne pas le faire, pour plusieurs raisons et la principale est qu’il arrive souvent qu’un commerçant désactive un plugin puis le réactive, les données ayant donc disparues. A vous de voir donc ce que vous souhaitez faire.
Ensuite, activez votre plugin et vérifiez que la table est bien présente dans votre base MySQL.
Nous pouvons à présent créer les écrans dans l’interface d’administration. Le back-office de Thelia n’est pas fait sous forme de templates. Pour rajouter des interfaces dans l’admin, il existe des hooks, points d’entrée permettant d’inclure des fichiers à des endroits précis dans l’admin. Il faut créer un fichier pour chaque hook.
Comment utiliser ces hooks ?
C’est assez facile, il suffit de respecter une règle de nommage pour tous les fichiers de votre plugin :
nomplugin_admin.php sera inclus dans la partie "Modules" de l’admin.
nomplugin_admin_produitmodifier.php sera intégré dans la fiche produit.
nomplugin_admin_rubriquemodifier.php sera inclus sur une fiche rubrique.
Vous trouverez la liste exhaustive des hooks (points d’entrées) sur le wiki
Maintenant que nous savons comment nommer les différents fichiers et quels seront les éléments à intégrer, revenons à la création du plugin et passons à l’ajout du formulaire de commentaire sur la fiche produit. Il nous faut d’abord créer le fichier commentaire_admin_produitmodifier.php.
Ensuite, avant même d’intégrer le formulaire, nous allons régler les autorisations pour chaque administrateur. Ainsi, vous pourrez autoriser tout ou partie des administrateurs à accéder à ce module.
Le premier code à intégrer est donc le suivant :
Notez qu’il n’est pas nécessaire de redéclarer la balise form, le plugin sera inclus dans le form général de la fiche de modification du produit.
Je vous laisse maintenant intégrer le formulaire de commentaire dans votre fichier commentaire_admin_produitmodifier.php, et vous rendre compte par vous-même de l’inclusion sur la fiche produit.
La semaine prochaine, nous verrons comment intégrer la validation du formulaire.
Si vous rencontrez des soucis, aidez-vous du plugin sur GitHub, il est enrichi à chaque partie du tuto : https://github.com/thelia/commentaire
Pour lire la suite, rendez-vous sur la partie 3 du tuto
tags : trucs et astuces