Je vous propose aujourd'hui un plugin qui sort un petit peu de l'ordinaire, car même si est un plugin de contenu, ce plugin a pour principal fonctionnalités d'alerter, au moment où vous cliquez sur le bouton Enregistrer de votre article dans la console d'administration de votre CMS, en affichant un message personnalisé.
Dans mon cadre professionnel, ce plugin avait pour but de me faire penser, à chaque fois que j'enregistre un document, d'alerter un collègue que la dernière mise à jour a été mise en place.
Fonctionnement du plugin
Au moment où l'utilisateur va cliquer sur le bouton Enregistrer, je voulais simplement intégrer un message personnalisé spécifiant une action particulière à faire au moment de l'enregistrement. Après avoir récupéré l'image que je souhaite afficher à l'utilisateur, je lance dans le cas où l'utilisateur se place du côté de la console d'administration de Joomla, une exception par la commande RaiseError de l'API de Joomla, l'affichage d'une image coupée au message spécifique que nous avons défini dans la console d'administration du planning. Ainsi, ce plugin m'affiche un message au moment de l'enregistrement de l'article.
alerte.php
<?php
defined('_JEXEC') or die('Access deny');
use Joomla\CMS\Factory;
class plgContentAlerte extends JPlugin
{
public function onContentAfterSave($context, &$article, $isNew)
{
$app = Factory::getApplication();
$uri = substr(JURI::base(),0,-14).'plugins/content/alerte/alerte.png';
$app = JFactory::getApplication();
if ($app->isAdmin()) {
JError::raiseNotice( 100,'<img src="'.$uri.'">'.$this->params->get('messageSiat'));
}
}
}
alerte.xml
<?xml version="1.0" encoding="utf-8"?>
<extension version="1.0" type="plugin" group="Content">
<name>Alerte</name>
<author>Sebastien LHUILLIER</author>
<creationDate>Novembre 2023</creationDate>
<copyright>Sébastien LHUILLIER</copyright>
<license>GNU General Public License version 2 or later; see LICENSE.txt</license>
<authorEmail>Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.</authorEmail>
<authorUrl>www.sebastien-lhuillier.com</authorUrl>
<version>1.0</version>
<description>Ce plugin rappelle à l'opérateur de prévenir la cellule XXXX de chacune des mises à jour faites dans Joomla</description>
<files>
<filename plugin="alerte">alerte.php</filename>
<filename>alerte.xml</filename>
</files>
<config>
<fields name="params">
<fieldset name="basic">
<field name="messageSiat" type="textarea" default="default" label="Message a afficher" description="" rows="10" cols="5" />
</fieldset>
</fields>
</config>
</extension>
