Aujourd'hui nous allons voir la réalisation d'un petit plugin, que j'ai développé dans mon cadre professionnel, partant du principe que, avec mes soucis de santé et de mémorisation, j'oubliais régulièrement une action "non-joomla" après ajout d'un l'article dans joomla content. 

Le besoin métier 

 En effet, à chaque ajout ou modification d'une fiche qui correspond à certains critères professionnels, je dois en avertir plusieurs personnes afin que des mises à jour soit effectués dans d'autres outils logiciels.

Le fonctionnement

Afin de mener à bien cette action, je me suis basé sur les actions de l'API de Joomla, et qui propose la possibilité de mettre dans une queue de messages à afficher à l'utilisateur, son propre message personnalisé.
Comme je veux afficher ce message uniquement au moment où l'utilisateur clique sur le bouton Enregistrer, cette action répond à un événement de utilisateur.  J'utilise donc un plugin qui va répondre à un événement système point cet événement est lancé après chaque enregistrement d'une fiche. C'est ainsi que j'ai utilisé événement onContenteAfterSave.

Le paramètre du plugin

Lorsque l'événement est effectué, Joomla va renvoyer un message accompagné textuel d'une image (du HTML tout simple en fait).  Cette image est figée dans le code, en revanche le message est personnalisable dans la console d'administration du plugin.

Un test particulier dans le code du plugin

Un plugin étant chargé que l'on soit côté Front Office ou back office, il fallait que je puisse afficher ce message uniquement si cet enregistrement était lancé à partir de la console d'administration de Joomla, en d'autres termes l'administrator.
C'est la raison pour laquelle vous pourrez trouver en ligne 14, un test qui permet de savoir si je lance mon exception système avec le raiseNotice ou pas.
Vous remarquerez que lorsque l'exception est lancée, j'intègre au message d'erreur une petite image, dont l'URL est récupérée de la console d'administration.

Mon Github

slhuilli1's GitHub repositories