API du gestionnaire d'événement

De OviWiki
Révision de 15 février 2008 à 16:58 par Paul (discussion | contributions) (Ovidentia)

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 :

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 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 inclu 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

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 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

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
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 à été rafraîchie, l'événement interviens après l'inclusion de la page php en cours et avant le traitement des sections

Module