- LSeepeople -> LSpeople
[ldapsaisie.git] / doc / conf / LSobject / triggers.docbook
1 <sect2 id="config-LSobject-triggers">
2   <title>Déclencheurs</title>
3   <para>Cette section décrit la manière de paramétrer des déclencheurs afin que
4   &LdapSaisie; exécute durant ses processus, et à des moments bien précis des
5   traitements d'un &LSobject;, des fonctions que vous pourrez développer vous
6   même. De plus, le résultat de l'exécution de vos fonctions pourra influer
7   sur le déroulement des processus.</para>
8   
9   <para>Actuellement, les évenements suivant sont gérés :
10
11 <informaltable>
12  <tgroup cols="3"> <!-- on décrit le nombre de colonnes -->
13    <thead> <!-- on passe au "header" du tableau -->
14      <row>
15        <entry>Nom</entry>
16        <entry>Description</entry>
17        <entry>Bloquant</entry>
18      </row>
19    </thead>
20    <tbody> <!-- et on remplit les lignes -->
21      <row>
22        <entry><literal>before_create</literal></entry>
23        <entry><simpara>Avant la création du LSobject.</simpara></entry>
24        <entry><simpara>Oui</simpara></entry>
25      </row>
26      <row>
27        <entry><literal>after_create</literal></entry>
28        <entry><simpara>Après la création du LSobject.</simpara></entry>
29        <entry><simpara>Non</simpara></entry>
30      </row>
31      <row>
32        <entry><literal>before_modify</literal></entry>
33        <entry><simpara>Avant la modification du LSobject</simpara></entry>
34        <entry><simpara>Oui</simpara></entry>
35      </row>
36      <row>
37        <entry><literal>after_modify</literal></entry>
38        <entry><simpara>Après la modification du LSobject</simpara></entry>
39        <entry><simpara>Non</simpara></entry>
40      </row>
41      <row>
42        <entry><literal>before_rename</literal></entry>
43        <entry><simpara>Avant de renommer le LSobject</simpara></entry>
44        <entry><simpara>Oui</simpara></entry>
45      </row>
46      <row>
47        <entry><literal>after_rename</literal></entry>
48        <entry><simpara>Après avoir renommé le LSobject</simpara></entry>
49        <entry><simpara>Non</simpara></entry>
50      </row>
51      <row>
52        <entry><literal>before_delete</literal></entry>
53        <entry><simpara>Avant la suppression du LSobject</simpara></entry>
54        <entry><simpara>Oui</simpara></entry>
55      </row>
56      <row>
57        <entry><literal>after_delete</literal></entry>
58        <entry><simpara>Après la suppression du LSobject</simpara></entry>
59        <entry><simpara>Non</simpara></entry>
60      </row>
61    </tbody>
62  </tgroup>
63 </informaltable>
64 <note><simpara>Si un événement est dit <emphasis>bloquant</emphasis>, lors de
65 l'exécution des actions liées, si une des fonctions retourne <literal>false
66 </literal>, le processus s'arrêtera.</simpara></note>
67   </para>
68   <sect3>
69     <title>Configuration</title>
70     <para>La configuration des déclencheurs se fait dans la définition des types
71     d'&LSobjects;. Par exemple, pour définir les fonctions à exécuter après la 
72     modification des LSobjects de type <emphasis>LSpeople</emphasis>, c'est à
73     dire lors de leur évènement <literal>after_modify</literal>, il faut définir
74     la variable suivante :
75     <programlisting linenumbering="unnumbered"><![CDATA[$GLOBALS['LSobjects']['[nom du type d'LSobject]']['after_modify']]]></programlisting>
76     Cette variable peut contenir soit une chaine de caractères correspondant au
77     nom de la fonction à exécuter, soit un tableau de chaînes de caractères
78     correspondant aux noms des fonctions à exécuter.</para>
79   </sect3>
80   <sect3>
81     <title>Ecriture d'une fonction</title>
82     <para>Une fonction exécuté par un déclencheur d'un LSobject se déclare de la
83     manière suivante :
84     <programlisting linenumbering="unnumbered"><![CDATA[
85 /*
86  * Ma fonction à exécuter lors de l'evenement [event]
87  *
88  * Paramètre :
89  *     - $object : Le LSobject sur lequel l'évènement survient
90  *
91  * Valeurs retournées :
92  *     - True : Tout s'est bien passé
93  *     - False : Une erreur est survenue ou la fonction souhaite bloquer le
94  *               processus lors d'un évènement bloquant.
95  */
96 function maFonction ($object) {
97
98   // Actions
99
100 }
101     ]]></programlisting>
102 Cette fonction doit prendre pour seul paramètre, le LSobject sur lequel l'évènement
103 survient et doit retourner soit <literal>True</literal> si tout s'est bien passé,
104 soit <literal>False</literal> en cas de problème. Dans le cas d'un événement
105 bloquant, si la fonction retourne <literal>False</literal>, le processus est 
106 arrêté.</para>
107   </sect3>
108
109 </sect2>