API du gestionnaire d'événement : Différence entre versions
(→Ovidentia) |
m (→Ovidentia) |
||
| Ligne 192 : | Ligne 192 : | ||
|bab_eventMail | |bab_eventMail | ||
|bab_event | |bab_event | ||
| − | |Événement principal utilisé dans l'API de la messagerie, il regroupe tout les | + | |Événement principal utilisé dans l'API de la messagerie, il regroupe tout les événements appelés lors de l'envoi des emails |
|- | |- | ||
|bab_eventBeforeMailSent | |bab_eventBeforeMailSent | ||
| Ligne 200 : | Ligne 200 : | ||
|bab_eventAfterMailSent | |bab_eventAfterMailSent | ||
|bab_eventMail | |bab_eventMail | ||
| − | |Événement déclenché après l'envoi d'un email, il permet de récupérer | + | |Événement déclenché après l'envoi d'un email, il permet de récupérer en plus le statut de l'envoi |
|- | |- | ||
|bab_eventFmAfterFileUpload | |bab_eventFmAfterFileUpload | ||
|bab_eventFmFile | |bab_eventFmFile | ||
| − | |Événement déclenché lorsqu'un nouveau fichier | + | |Événement déclenché lorsqu'un nouveau fichier devient disponible pour les utilisateurs ayant accès |
|- | |- | ||
|bab_eventFmAfterFileUpdate | |bab_eventFmAfterFileUpdate | ||
|bab_eventFmFile | |bab_eventFmFile | ||
| − | |Événement déclenché lorsqu'un | + | |Événement déclenché lorsqu'un fichier a été modifié |
|- | |- | ||
|bab_eventFmAfterAddVersion | |bab_eventFmAfterAddVersion | ||
|bab_eventFmAfterFileUpdate | |bab_eventFmAfterFileUpdate | ||
| − | |Événement déclenché lorsqu'une nouvelle version d'un fichier | + | |Événement déclenché lorsqu'une nouvelle version d'un fichier a été ajoutée |
|} | |} | ||
Version du 11 mai 2010 à 10:59
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
Afin de gérer l'ordre dans lequel les fonction sont appelées, il est possible d'ajouter une priorité au moment de l'enregistrement dans l'événement
par exemple dans ce cas, la fonction 2 sera appelée avant la fonction 1.
<source lang="php">
bab_addEventListener('event_class_name', 'function_1', 'require_file', 'addon_name', 50); bab_addEventListener('event_class_name', 'function_2', 'require_file', 'addon_name', 100);
</source>
Par défaut, la priorité est à la valeur 0, les appels sont traités dans un ordre indéterminé (qui est probablement l'ordre de l'enregistrement.
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_eventBeforePageCreated | bab_event | L'événement intervient juste avant l'inclusion du code PHP qui gère la page en cours : le corps de la page n'est pas préparé, le template de la page n'est pas traité. |
| 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 collecter tout les liens nécessaires à la création du plan de site, voir l'article Gestion des nœuds du plan du site |
| bab_eventSearchRealms | bab_event | Événement utilisé par l'API de recherche pour collecter tout les environnements de recherche |
| bab_eventMail | bab_event | Événement principal utilisé dans l'API de la messagerie, il regroupe tout les événements appelés lors de l'envoi des emails |
| bab_eventBeforeMailSent | bab_eventMail | Événement déclenché avant l'envoi d'un email, il permet d'annuler l'envoi avec la méthode cancel()
|
| bab_eventAfterMailSent | bab_eventMail | Événement déclenché après l'envoi d'un email, il permet de récupérer en plus le statut de l'envoi |
| bab_eventFmAfterFileUpload | bab_eventFmFile | Événement déclenché lorsqu'un nouveau fichier devient disponible pour les utilisateurs ayant accès |
| bab_eventFmAfterFileUpdate | bab_eventFmFile | Événement déclenché lorsqu'un fichier a été modifié |
| bab_eventFmAfterAddVersion | bab_eventFmAfterFileUpdate | Événement déclenché lorsqu'une nouvelle version d'un fichier a été ajoutée |