c3e4754afe8d5146c066f03482fa4496d1a0e163
[ldapsaisie.git] / doc / contrib / contrib.docbook
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <chapter>
3
4 <title>Contribution</title>
5
6 <para>Comme tout projet libre qui se respecte, les contributions à LdapSaisie sont les bienvenues. Ce chapitre explique les possibilités de contribution.</para>
7
8 <sect1 id="contrib-LSaddons">
9   <title>LSaddons</title>
10   <para>Les &LSaddons; sont utilisés pour implémenter dans &LdapSaisie; des fonctionnalités spécifiques telque le support du famille d'attribut spécifiques (POSIX, Samba, ...) ou encore des tâches communes et génériques (envoi de mails, connexion FTP, ...). Les &LSaddons; vont permettront également d'adapter &LdapSaisie; à vos besoins en écrivrant par exemple les fonctions appelées par les déclencheurs.</para>
11
12 <sect2 id="contrib-LSaddons-structure">
13   <title>Structure d'écriture</title>
14
15   <para>L'écriture d'un &LSaddon; doit respecter une structure suffisament souple afin de ne pas être un frein à vos contributions, tout en permettant d'assurer la bonne intégration de votre contibution au projet. Le code que vous ecrirez sera répartis dans deux fichiers :</para>
16 <variablelist>
17
18 <varlistentry>
19   <term>conf/LSaddons/config.LSaddons.[addon name].php</term>
20   <listitem><simpara>Ce fichier contiendra la configuration de votre LSadons. On y retrouvera la déclaration de constances et/ou variables de configuration permettant d'adapter votre LSaddon à une installation et à un environement.</simpara></listitem>
21 </varlistentry>
22
23 <varlistentry>
24   <term>includes/addons/LSaddons.[addon name].php</term>
25   <listitem><simpara>Ce fichier contiendra le code à proprement dit de votre LSaddons.</simpara></listitem>
26 </varlistentry>
27
28 </variablelist>
29
30 <programlisting linenumbering="unnumbered">
31   <citetitle>Structure du fichier includes/addons/LSaddons.[addon name].php</citetitle>
32 <![CDATA[<?php
33
34 // Messages d'erreur
35
36 // Support
37 LSerror :: defineError('MYADDON_SUPPORT_01',
38   _("MYADDON Support : first support error...")
39 );
40
41 LSerror :: defineError('MYADDON_SUPPORT_02',
42   _("MYADDON Support : second support error...")
43 );
44
45 // Autres erreurs
46 LSerror :: defineError('MYADDON_01',
47   _("MYADDON_01 : an error : %{msg}.")
48 );
49
50 LSerror :: defineError('MYADDON_02',
51   _("MYADDON_02 : an other error : %{msg}")
52 );
53
54 // Constantes
55
56 // Un constante
57 define('LS_MYADDON_CONST01',XXXXXXXX);
58
59 /**
60  * Verify support of my addon by LdapSaisie
61  * 
62  * @author My Name <my.email@example.com>
63  *
64  * @retval boolean true if my addon is totaly supported, false in other cases
65  **/
66 function LSaddon_myaddon_support() {
67
68   $retval=true;
69
70   // Dependance de librairie
71   if ( !class_exists('mylib') ) {
72     if ( !LSsession::includeFile(LS_LIB_DIR . 'class.mylib.php') ) {
73       LSerror :: addErrorCode('MYADDON_SUPPORT_01');
74       $retval=false;
75     }
76   }
77
78
79   $MUST_DEFINE_CONST= array(
80     'LS_MYADDON_CONF_O1',
81     'LS_MYADDON_CONF_O2',
82     ...
83   );
84
85   foreach($MUST_DEFINE_CONST as $const) {
86     if ( (!defined($const)) || (constant($const) == "")) {
87       LSerror :: addErrorCode('MYADDON_SUPPORT_02',$const);
88       $retval=false;
89     }
90   }
91
92   // Other check ...
93
94   return $retval;
95 }
96
97 /**
98  * Ma première fonction.
99  * 
100  * Ce qu'elle fait.
101  * 
102  * @author My Name <my.email@example.com>
103  * 
104  * @retval [type valeur retournée] [Signification de la valeur retournée]
105  **/
106 function myaddon_first_function($arg1,$arg2) {
107
108   ...
109
110 }
111
112 ?>
113 ]]>
114 </programlisting>
115
116 </sect2>
117
118 </sect1>
119  
120 </chapter>