2009-03-17 20:21:10 +01:00
|
|
|
<sect2 id="config-LSobject-triggers">
|
|
|
|
<title>Déclencheurs</title>
|
|
|
|
<para>Cette section décrit la manière de paramétrer des déclencheurs afin que
|
|
|
|
&LdapSaisie; exécute durant ses processus, et à des moments bien précis des
|
|
|
|
traitements d'un &LSobject;, des fonctions que vous pourrez développer vous
|
|
|
|
même. De plus, le résultat de l'exécution de vos fonctions pourra influer
|
|
|
|
sur le déroulement des processus.</para>
|
2021-04-13 18:45:47 +02:00
|
|
|
|
2009-03-17 20:21:10 +01:00
|
|
|
<para>Actuellement, les évenements suivant sont gérés :
|
|
|
|
|
|
|
|
<informaltable>
|
|
|
|
<tgroup cols="3"> <!-- on décrit le nombre de colonnes -->
|
|
|
|
<thead> <!-- on passe au "header" du tableau -->
|
|
|
|
<row>
|
|
|
|
<entry>Nom</entry>
|
|
|
|
<entry>Description</entry>
|
|
|
|
<entry>Bloquant</entry>
|
|
|
|
</row>
|
|
|
|
</thead>
|
|
|
|
<tbody> <!-- et on remplit les lignes -->
|
|
|
|
<row>
|
|
|
|
<entry><literal>before_create</literal></entry>
|
|
|
|
<entry><simpara>Avant la création du LSobject.</simpara></entry>
|
|
|
|
<entry><simpara>Oui</simpara></entry>
|
|
|
|
</row>
|
|
|
|
<row>
|
|
|
|
<entry><literal>after_create</literal></entry>
|
|
|
|
<entry><simpara>Après la création du LSobject.</simpara></entry>
|
|
|
|
<entry><simpara>Non</simpara></entry>
|
|
|
|
</row>
|
|
|
|
<row>
|
|
|
|
<entry><literal>before_modify</literal></entry>
|
|
|
|
<entry><simpara>Avant la modification du LSobject</simpara></entry>
|
|
|
|
<entry><simpara>Oui</simpara></entry>
|
|
|
|
</row>
|
|
|
|
<row>
|
|
|
|
<entry><literal>after_modify</literal></entry>
|
|
|
|
<entry><simpara>Après la modification du LSobject</simpara></entry>
|
|
|
|
<entry><simpara>Non</simpara></entry>
|
|
|
|
</row>
|
|
|
|
<row>
|
|
|
|
<entry><literal>before_rename</literal></entry>
|
|
|
|
<entry><simpara>Avant de renommer le LSobject</simpara></entry>
|
|
|
|
<entry><simpara>Oui</simpara></entry>
|
|
|
|
</row>
|
|
|
|
<row>
|
|
|
|
<entry><literal>after_rename</literal></entry>
|
|
|
|
<entry><simpara>Après avoir renommé le LSobject</simpara></entry>
|
|
|
|
<entry><simpara>Non</simpara></entry>
|
|
|
|
</row>
|
|
|
|
<row>
|
|
|
|
<entry><literal>before_delete</literal></entry>
|
|
|
|
<entry><simpara>Avant la suppression du LSobject</simpara></entry>
|
|
|
|
<entry><simpara>Oui</simpara></entry>
|
|
|
|
</row>
|
|
|
|
<row>
|
|
|
|
<entry><literal>after_delete</literal></entry>
|
|
|
|
<entry><simpara>Après la suppression du LSobject</simpara></entry>
|
|
|
|
<entry><simpara>Non</simpara></entry>
|
|
|
|
</row>
|
|
|
|
</tbody>
|
|
|
|
</tgroup>
|
|
|
|
</informaltable>
|
|
|
|
<note><simpara>Si un événement est dit <emphasis>bloquant</emphasis>, lors de
|
|
|
|
l'exécution des actions liées, si une des fonctions retourne <literal>false
|
|
|
|
</literal>, le processus s'arrêtera.</simpara></note>
|
|
|
|
</para>
|
2021-04-13 18:45:47 +02:00
|
|
|
<sect3 id="config-LSobject-triggers-config">
|
2009-03-17 20:21:10 +01:00
|
|
|
<title>Configuration</title>
|
|
|
|
<para>La configuration des déclencheurs se fait dans la définition des types
|
2021-04-13 18:45:47 +02:00
|
|
|
d'&LSobjects;. Par exemple, pour définir les fonctions à exécuter après la
|
2009-04-17 12:39:03 +02:00
|
|
|
modification des LSobjects de type <emphasis>LSpeople</emphasis>, c'est à
|
2009-03-17 20:21:10 +01:00
|
|
|
dire lors de leur évènement <literal>after_modify</literal>, il faut définir
|
|
|
|
la variable suivante :
|
|
|
|
<programlisting linenumbering="unnumbered"><![CDATA[$GLOBALS['LSobjects']['[nom du type d'LSobject]']['after_modify']]]></programlisting>
|
|
|
|
Cette variable peut contenir soit une chaine de caractères correspondant au
|
|
|
|
nom de la fonction à exécuter, soit un tableau de chaînes de caractères
|
|
|
|
correspondant aux noms des fonctions à exécuter.</para>
|
|
|
|
</sect3>
|
2021-04-13 18:45:47 +02:00
|
|
|
<sect3 id="config-LSobject-triggers-writing">
|
2009-03-17 20:21:10 +01:00
|
|
|
<title>Ecriture d'une fonction</title>
|
|
|
|
<para>Une fonction exécuté par un déclencheur d'un LSobject se déclare de la
|
|
|
|
manière suivante :
|
|
|
|
<programlisting linenumbering="unnumbered"><![CDATA[
|
|
|
|
/*
|
|
|
|
* Ma fonction à exécuter lors de l'evenement [event]
|
|
|
|
*
|
|
|
|
* Paramètre :
|
|
|
|
* - $object : Le LSobject sur lequel l'évènement survient
|
|
|
|
*
|
|
|
|
* Valeurs retournées :
|
|
|
|
* - True : Tout s'est bien passé
|
|
|
|
* - False : Une erreur est survenue ou la fonction souhaite bloquer le
|
|
|
|
* processus lors d'un évènement bloquant.
|
|
|
|
*/
|
|
|
|
function maFonction ($object) {
|
|
|
|
|
|
|
|
// Actions
|
|
|
|
|
|
|
|
}
|
|
|
|
]]></programlisting>
|
|
|
|
Cette fonction doit prendre pour seul paramètre, le LSobject sur lequel l'évènement
|
|
|
|
survient et doit retourner soit <literal>True</literal> si tout s'est bien passé,
|
|
|
|
soit <literal>False</literal> en cas de problème. Dans le cas d'un événement
|
2021-04-13 18:45:47 +02:00
|
|
|
bloquant, si la fonction retourne <literal>False</literal>, le processus est
|
2009-03-17 20:21:10 +01:00
|
|
|
arrêté.</para>
|
|
|
|
</sect3>
|
|
|
|
|
|
|
|
</sect2>
|