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 :
bab_addEventListener('event_class_name', 'function_name', 'require_file', 'addon_name');
Enlever un listener :
bab_removeEventListener('event_class_name', 'function_name', 'require_file', 'addon_name');
La fonction inscrite dans la colonne function_name sera délarée dans le fichier 'require_file' comme ceci :
function ats_onBabPasswordModified(&$event) {
}
Appel d'événement
Lors de l'appel d'un événement, toutes les fonctions enregistrées dans la tables des "listener" qui ont pour event_class_name, le nom de l'objet ou le nom d'un des parentsde 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 inclu 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
class bab_userModified extends bab_event {
}
class bab_passwordModified extends bab_userModified {
}
$event_obj = new bab_passwordModified();
bab_fireEvent($event_obj);
L'ordre d'appel des fonction enregistrées dans le listener est indéterminé (le premier enregistré est le premier appelé)
Gestion des priorités
DRAFT
Lorsque plusieurs fonction on été enregistrées sur le même événements, 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
| Evenement | 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 |