Nouvel évènement onAfterSaveEvent
De la même manière que onBeforeSaveEvent, l'évènement onAfterSaveEvent permet "d'écouter" AllEvents et de réagir en fonction.
onAfterSaveEvent est exécuté par AllEvents après la sauvegarde d'un évènement dans la table xxxx_allevents_events (table des évènements). Dans le cas d'un nouvel évènement, le ID de l'évènement est seulement connu après la sauvegarde. Si vous avez besoin de cet ID, c'est donc onAfterSaveEvent qu'il faut écouter.
Contrairement à onBeforeSaveEvent, vous n'avez pas la possibilité d'interdire la sauvegarde puisque cette dernière a déjà eu lieue.
Création d'un plug-in pour gérer onBeforeSaveEvent
AllEvents va progressivement implémenter ses propres évènements afin de permettre à des développeurs de créer des plug-ins pour y répondre. Ainsi, l'évènement onBeforeSaveEvent est appelé par la table de classe AllEvents_Events, fonction store() et va informer les plug-ins à l'écoute qu'un évènement est sur le point d'être sauvé.
Les plug-ins pourront répondre en exécutant leur propre code pour retourner deux valeurs :
- une valeur booléenne true/false pour autoriser ou non la sauvegarde
- une valeur texte qui sera affichée par AllEvents dès lors que la sauvegarde est interdite
Ci-dessous un code minimaliste d'un plug-in pour gérer onBeforeSaveEvent :
Explications :
Ligne 5 : Vérification que AllEvents est bien installé et publié sur le site. Ceci afin de garantir que le site Joomla ne vas pas "planter" si on installe le plug-in alors même que AllEvents n'est pas présent.
Ligne 6 : Inclusion de la classe de gestion des plugins de AllEvents (classe AEPlugin).
Ligne 10 : Nom du plug-in. Ce nom est utilisé par la classe AEPlugin.
Lignes 19 à 26 : Constructeur du plug-in. Mettez-y le code d'initialisation de vos variables, de contrôle de présence de certains fichiers, etc.
Ligne 39 : Nom de la fonction = nom de l'évènement traité. Deux paramètres sont transmis par AllEvents : une variable objet $event qui reprend l'évènement étant sur le point d'être sauvé et $param qui est une variable optionnelle.
Lignes 41 et 42 : initialisation des variables retours. Votre code doit complété $bReturn soit par True si vous autorisez la sauvegarde soit par False si vous souhaitez que AllEvents l'interdise. Et, dans ce dernier cas, la variable $msg doit reprendre un texte qui sera affiché pour informer l'utilisateur pourquoi l'évènement n'a pas été sauvé. Les lignes 41 et 42 proposées ici sont évidemment à titre purement indicatif.
Ligne 43 : retour des deux variables au code appelant (il s'agit p.ex. de la fonction store() de la table de classe AllEvents_Events; mais pas forcément).
Le plug-in AllEvents - OnBeforeSaveEventSample est intégré dans la package Premium.

