API du gestionnaire d'événement
Sommaire
table des listener
- id
- event_class_name
- function_name
- require_file
- addon_name
- priority
event_class_name est le nom d'une classe héritée de bab_event
function_name est le nom d'une fonction déclarée dans le ficher spécifié dans la colonne require_file
le paramètre require_file est le chemin relatif au noyau d'ovidentia d'un fichier php
le paramètre priority (optionnel) permet de régler l'ordre d'appel des fonctions enregistrés pour un même événement
Ajouter un listener :
<source lang="php"> global $babInstallPath; include_once $babInstallPath.'utilit/eventincl.php'; bab_addEventListener('event_class_name', 'function_name', 'require_file', 'addon_name'); </source>
Enlever un listener :
<source lang="php"> bab_removeEventListener('event_class_name', 'function_name', 'require_file', 'addon_name'); </source>
La fonction inscrite dans la colonne function_name sera délarée dans le fichier 'require_file' comme ceci :
<source lang="php"> function ats_onBabPasswordModified(&$event) {
} </source>
Déclencher un événement
Lorsqu'un événement est déclenché, toutes les fonctions enregistrées dans la table des "listener" qui ont pour event_class_name le nom de l'objet ou le nom d'un des parents de l'objet sont appelés ; pour chaque enregistrement, on effectue les actions suivantes :
- si 'addon_name' est un nom de module valide, le contexte du module est créé
- le nom du fichier contenu dans 'require_file' est inclus avec la fonction require_once
- la fonction 'function_name' est appelée avec un seul paramètre qui est l'instance de l'événement
<source lang="php">
class bab_userModified extends bab_event {
}
class bab_passwordModified extends bab_userModified {
}
$event_obj = new bab_passwordModified();
bab_fireEvent($event_obj);
</source>
L'ordre d'appel des fonctions enregistrées dans le listener est indéterminé (le premier enregistré est le premier appelé)
Gestion des priorités
DRAFT
Lorsque plusieurs fonctions ont été enregistrées sur le même événement, il doit être possible de gérer l'ordre d'appel des différents listeners avec le paramètre 'priority' renseigné lors de l'enregistrement de la fonction
Tous les événements disponibles
Ovidentia
| Événement | Parent | Description |
| bab_eventBeforePeriodsCreated | bab_event | Événement appelé au moment de la création d'un planning (agenda, planning de congés...), il est utilisé pour collecter les événements à afficher pour une période donnée |
| bab_eventPeriodModified | bab_event | Événement appelé lors de la modification d'un ou plusieurs événements sur une période donnée |
| bab_eventBeforeWaitingItemsDisplayed | bab_event | Événement appelé lors de l'affichage des instances d'approbation en attente sur la page "approbations" |
| bab_eventDirectory | bab_event | Événement appelé lors d'une intervention sur une fiche d'annuaire ou d'un utilisateur d'ovidentia |
| bab_eventDirectoryEntryCreated | bab_eventDirectory | Événement appelé lors de la création d'une fiche d'annuaire |
| bab_eventDirectoryEntryModified | bab_eventDirectory | Événement appelé lors de la modification d'une fiche d'annuaire |
| bab_eventDirectoryEntryDeleted | bab_eventDirectory | Événement appelé lors de la suppression d'une fiche d'annuaire |
| bab_eventUserCreated | bab_eventDirectory | Événement appelé lors de la création d'un utilisateur |
| bab_eventUserModified | bab_eventDirectory | Événement appelé lors de la modification d'un utilisateur |
| bab_eventUserDeleted | bab_eventDirectory | Événement appelé lors de la suppression d'un utilisateur |
| bab_eventGroupDeleted | bab_event | Événement appelé lors de la suppression d'un groupe |
| bab_eventEditorContentToEditor | bab_event | Événement appelé lors de l'affichage d'un éditeur de contenu |
| bab_eventEditorRequestToContent | bab_event | Événement appelé pour récupérer le contenu enregistré par un éditeur de contenu |
| bab_eventEditorContentToHtml | bab_event | Événement appelé pour afficher du contenu saisi par un éditeur de contenu |
| bab_eventEditors | bab_event | Événement appelé pour afficher la liste des implémentations de l'éditeur de contenu |
| bab_eventEditorFunctions | bab_event | Événement appelé lors de l'affichage de la liste des fonctionnalités d'ovidentia qui peuvent insérer des fragments de html dans un éditeur de contenu |
| bab_eventUserAttachedToGroup | bab_eventDirectory | Un utilisateur est ajouté dans un groupe |
| bab_eventUserDetachedFromGroup | bab_eventDirectory | Un utilisateur est enlevé d'un groupe |
| bab_eventPageRefreshed | bab_event | La page a été rafraîchie, l'événement intervient après l'inclusion de la page php en cours et avant le traitement du template page.html |
| bab_eventFunctionalityRegistered | bab_event | Une fonctionnalité a été ajoutée |
| bab_eventFunctionalityUnregistered | bab_event | Une fonctionnalité a été supprimée |
| bab_eventBeforeSiteMapCreated | bab_event | Avant la création du plan de site, c'est un événement qui sert a collecté tout les liens nécessaires à la création du plan de site |
| bab_eventSearchRealms | bab_event | Evenement utilisé par l'API de recherche pour collecter tout les environnements de recherche |