1459bb1ffbced7b7f79d447f69a89004f0fb5de5
[ldapsaisie.git] / doc / conf / LSobject / LSform.docbook
1 <sect2 id="config-LSobject-LSform">
2   <title>LSform</title>
3   <para>Cette section décrit la manière de paramétrer les formulaires d'&LdapSaisie;
4   pour un type &LSobject; donné. Pour chaque type d'&LSobject;, il faut configurer
5   plusieurs formulaires correspondant aux vues gérées par &LdapSaisie; (création,
6   modification, ...). Les formulaires se configurent par plusieurs biais :
7
8 <itemizedlist>
9
10 <listitem>
11 <para>Via la configuration des attributs : La configuration des attributs 
12 détermine la présence ou non des attributs dans les formulaires. Elle permet
13 également de définir si on souhaite bloquer leur présence en lecture seulement.
14 </para>
15 </listitem>
16
17 <listitem>
18 <para>Via les droits de l'utilisateur connecté sur les attributs de l'objet
19 à éditer : en fonction des droits de l'utilisateur sur un attribut, celui-ci
20 apparaîtra en lecture-écriture ou en lecture uniquement voir pas du tout.
21 </para>
22 </listitem>
23
24 <listitem>
25 <para>Via la configuration au niveau de chaque type d'&LSobject; : il y est 
26 possible de définir le comportement globale du formulaire comme la validation
27 via Ajax ou encore la disposition logique des attributs dans le formulaire.</para>
28
29 <programlisting>
30 <citetitle>Structure</citetitle>
31 <![CDATA[$GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSform'] = array (
32   'ajaxSubmit' => [booléen],
33   'layout' => array (
34     // Configuration de la disposition logique des attributs
35   ),
36   'dataEntryForm' => array (
37     // Configuration des masques de saisie
38   )
39
40 );]]>
41 </programlisting>
42
43 <variablelist>
44 <title>Paramètres de configuration</title>
45
46 <varlistentry>
47   <term>ajaxSubmit</term>
48   <listitem>
49     <simpara>Booléen définissant si le formulaire sera envoyé via une requête
50     Ajax plutôt qu'à travers un rafraîchissement de la page. Par défaut :
51     <emphasis>VRAI</emphasis>.</simpara>
52   </listitem>
53 </varlistentry>
54
55 <varlistentry>
56   <term>layout</term>
57   <listitem>
58     <simpara>Tableau contenant la configuration de l'affichage du formulaire :
59     il est possible de définir la disposition des attributs dans le formulaire
60     en les regroupant dans des onglets et en les faisant apparaître dans un
61     ordre logique.<link linkend='config-LSobject-LSform-layout'>Voir la section
62     concernée.</link></simpara>
63   </listitem>
64 </varlistentry>
65
66 <varlistentry>
67   <term>dataEntryForm</term>
68   <listitem>
69     <simpara>Tableau contenant la configuration des masques de saisie : il est
70     possible de définir des masques de saisie pour faire en sorte que lors de la
71     création d'un objet, seul un certain nombre d'élements soit demandé à 
72     l'utilisateur. <link linkend='config-LSobject-LSform-dataEntryForm'>Voir la 
73     section concernée.</link></simpara>
74   </listitem>
75 </varlistentry>
76
77 </variablelist>
78
79 </listitem>
80
81 </itemizedlist>  
82 </para>
83
84 <sect3 id="config-LSobject-LSform-layout">
85 <title>Configuration de l'affichage</title>
86
87 <para>La configuration des <emphasis>layout</emphasis> se situe dans la 
88 configuration des &LSobjects;, dans la variable <varname>layout</varname>
89 (<emphasis>$GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSform']['layout']</emphasis>).
90 Cette variable est un tableau associatif dont la clé est l'identifiant de l'onglet
91 et dont la valeur associée est la configuration de l'onglet.
92 <programlisting>
93 <citetitle>Structure</citetitle>
94 <![CDATA[$GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSform']['layout'] = array (
95   'onglet1' => array(
96     'label' => '[label de l'onglet]',
97     'img' => 1, // Valeur possible 1 ou 0
98     'args' => array (
99       'arg1',
100       'arg2',
101       ...
102     )
103   ),
104   ...
105 );]]>
106 </programlisting>
107
108 <variablelist>
109 <title>Paramètres de configuration</title>
110
111 <varlistentry>
112   <term>label</term>
113   <listitem>
114     <simpara>Le label de l'onglet.</simpara>
115   </listitem>
116 </varlistentry>
117
118 <varlistentry>
119   <term>img</term>
120   <listitem>
121     <simpara>Affiche ou non l'image d'un éventuel attribut de type HTML
122     <link linkend="config-LSattr_html_image">LSattr_html_image</link>.</simpara>
123   </listitem>
124 </varlistentry>
125
126 <varlistentry>
127   <term>args</term>
128   <listitem>
129     <simpara>Tableau associatif contenant une liste ordonnée des attributs qui
130     apparaîtront dans l'onglet.</simpara>
131   </listitem>
132 </varlistentry>
133
134 </variablelist>
135 </para>
136 <important><simpara>Lorsqu'un <emphasis>layout</emphasis> est défini, celui-ci
137 est <emphasis>"suivi à la lettre"</emphasis> pour l'affichage du &LSform;. 
138 Ainsi, si un attribut est défini dans la configuration de l'objet comme présent
139 dans le &LSform; courant, mais que celui-ci n'est pas présent dans le <emphasis>
140 layout</emphasis>, il ne sera pas du tout affiché.</simpara></important>
141 </sect3>
142
143 <sect3 id="config-LSobject-LSform-dataEntryForm">
144 <title>Configuration des masques de saisie</title>
145
146 <para>La configuration des masques de saisie (<emphasis>dataEntryForm</emphasis>) se situe dans la 
147 configuration des &LSobjects;, dans la variable <varname>dataEntryForm</varname>
148 (<emphasis>$GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSform']['dataEntryForm']</emphasis>).
149 Cette variable est un tableau associatif dont la clé est l'identifiant du masque de saisie
150 et dont la valeur associée est sa configuration.
151 <programlisting>
152 <citetitle>Structure</citetitle>
153 <![CDATA[$GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSform']['dataEntryForm'] = array (
154   'masque1' => array(
155     'label' => '[label du masque de saisie]',
156     'disabledLayout' => [booleen], 
157     'displayedElements' => array (
158       'arg1',
159       'arg2',
160       ...
161     ),
162     'defaultValues' => array (
163       'arg3' => [value],
164       'arg4' => [value],
165       ...
166     ),
167     'requiredAttributes' => array (
168       'arg1',
169       'arg2',
170       ...
171     )
172   ),
173   ...
174 );]]>
175 </programlisting>
176
177 <variablelist>
178 <title>Paramètres de configuration</title>
179
180 <varlistentry>
181   <term>label</term>
182   <listitem>
183     <simpara>Le label du masque de saisie.</simpara>
184   </listitem>
185 </varlistentry>
186
187 <varlistentry>
188   <term>disabledLayout</term>
189   <listitem>
190     <simpara>Active ou non les  <link linkend="config-LSobject-LSform-layout">layouts</link>
191     pour ce masque de saisie.</simpara>
192   </listitem>
193 </varlistentry>
194
195 <varlistentry>
196   <term>displayedElements</term>
197   <listitem>
198     <simpara>Tableau contenant la liste des attributs qui devront être saisie
199     dans le masque de saisie.</simpara>
200   </listitem>
201 </varlistentry>
202
203 <varlistentry>
204   <term>defaultValues</term>
205   <listitem>
206     <simpara>Tableau associatif contenant la liste des valeurs par défaut des
207     attributs. Les valeurs multiples sont possibles en utilisant des
208     tableaux.</simpara>
209     <important><simpara>Les valeurs seront vue comme des valeurs retournées par
210     le formulaire et non comme des valeurs des attribus LDAP eux-même. Ainsi 
211     et par exemple, un attribut traité comme un booléen dans un formulaire pourra
212     prendre comme valeur par défaut <emphasis>yes</emphasis> ou
213     <emphasis>no</emphasis>.</simpara></important>
214   </listitem>
215 </varlistentry>
216
217 <varlistentry>
218   <term>requiredAttributes</term>
219   <listitem>
220     <simpara>Tableau contenant la liste des attributs obligatoires du masque de saisie.
221     Cette liste d'attributs obligatoires viendra en complément de la configuration
222     des attributs. Il est ainsi possible de rendre des attributs obligatoires durant la
223     saisie d'un masque tout en les laissant facultatif le reste du temps.</simpara>
224   </listitem>
225 </varlistentry>
226
227 </variablelist>
228 </para>
229 </sect3>
230
231
232 </sect2>