API du gestionnaire d'événement

De OviWiki
Révision de 30 octobre 2009 à 13:29 par Paul (discussion | contributions) (Gestion des priorités)

Aller à : navigation, rechercher


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 :

  1. si 'addon_name' est un nom de module valide, le contexte du module est créé
  2. le nom du fichier contenu dans 'require_file' est inclus avec la fonction require_once
  3. 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 Evenement utilisé par l'API de recherche pour collecter tout les environnements de recherche