diff --git a/doc/conf/LSobject/LSform.docbook b/doc/conf/LSobject/LSform.docbook
index ca05d4de..637e2a3f 100644
--- a/doc/conf/LSobject/LSform.docbook
+++ b/doc/conf/LSobject/LSform.docbook
@@ -8,7 +8,7 @@
-Via la configuration des attributs : La configuration des attributs
+Via la configuration des attributs : La configuration des attributs
détermine la présence ou non des attributs dans les formulaires. Elle permet
également de définir si on souhaite bloquer leur présence en lecture seulement.
@@ -22,7 +22,7 @@ apparaîtra en lecture-écriture ou en lecture uniquement voir pas du tout.
-Via la configuration au niveau de chaque type d'&LSobject; : il y est
+Via la configuration au niveau de chaque type d'&LSobject; : il y est
possible de définir le comportement globale du formulaire comme la validation
via Ajax ou encore la disposition logique des attributs dans le formulaire.
@@ -68,8 +68,8 @@ via Ajax ou encore la disposition logique des attributs dans le formulaire.
Tableau contenant la configuration des masques de saisie : il est
possible de définir des masques de saisie pour faire en sorte que lors de la
- création d'un objet, seul un certain nombre d'élements soit demandé à
- l'utilisateur. Voir la
+ création d'un objet, seul un certain nombre d'élements soit demandé à
+ l'utilisateur. Voir la
section concernée.
@@ -78,13 +78,13 @@ via Ajax ou encore la disposition logique des attributs dans le formulaire.
-
+
Configuration de l'affichage
-La configuration des layout se situe dans la
+La configuration des layout se situe dans la
configuration des &LSobjects;, dans la variable layout
($GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSform']['layout']).
Cette variable est un tableau associatif dont la clé est l'identifiant de l'onglet
@@ -134,7 +134,7 @@ et dont la valeur associée est la configuration de l'onglet.
Lorsqu'un layout est défini, celui-ci
-est "suivi à la lettre" pour l'affichage du &LSform;.
+est "suivi à la lettre" pour l'affichage du &LSform;.
Ainsi, si un attribut est défini dans la configuration de l'objet comme présent
dans le &LSform; courant, mais que celui-ci n'est pas présent dans le
layout, il ne sera pas du tout affiché.
@@ -143,7 +143,7 @@ layout, il ne sera pas du tout affiché.
Configuration des masques de saisie
-La configuration des masques de saisie (dataEntryForm) se situe dans la
+La configuration des masques de saisie (dataEntryForm) se situe dans la
configuration des &LSobjects;, dans la variable dataEntryForm
($GLOBALS['LSobjects']['[nom du type d'LSobject]']['LSform']['dataEntryForm']).
Cette variable est un tableau associatif dont la clé est l'identifiant du masque de saisie
@@ -153,23 +153,28 @@ et dont la valeur associée est sa configuration.
array(
'label' => '[label du masque de saisie]',
- 'disabledLayout' => [booleen],
+ 'disabledLayout' => [booleen],
'displayedElements' => array (
- 'arg1',
- 'arg2',
+ 'attr1',
+ 'attr2',
...
),
'defaultValues' => array (
- 'arg3' => [value],
- 'arg4' => [value],
+ 'attr3' => [value],
+ 'attr4' => [value],
...
),
'requiredAllAttributes' => [booleen],
'requiredAttributes' => array (
- 'arg1',
- 'arg2',
+ 'attr1',
+ 'attr2',
...
- )
+ ),
+ 'forceGeneration' => array (
+ 'attr1',
+ 'attr2',
+ ...
+ ),
),
...
);]]>
@@ -208,7 +213,7 @@ et dont la valeur associée est sa configuration.
attributs. Les valeurs multiples sont possibles en utilisant des
tableaux.
Les valeurs seront vue comme des valeurs retournées par
- le formulaire et non comme des valeurs des attribus LDAP eux-même. Ainsi
+ le formulaire et non comme des valeurs des attribus LDAP eux-même. Ainsi
et par exemple, un attribut traité comme un booléen dans un formulaire pourra
prendre comme valeur par défaut yes ou
no.
@@ -234,6 +239,14 @@ et dont la valeur associée est sa configuration.
+
+ forceGeneration
+
+ Tableau contenant la liste des attributs dont la génération sera forcée lors de la
+ validation du formation.
+
+
+
diff --git a/src/includes/class/class.LSldapObject.php b/src/includes/class/class.LSldapObject.php
index 43b4856c..68e522dd 100644
--- a/src/includes/class/class.LSldapObject.php
+++ b/src/includes/class/class.LSldapObject.php
@@ -492,6 +492,14 @@ class LSldapObject extends LSlog_staticLoggerClass {
else {
$LSform=false;
}
+
+ $forceGeneration = (
+ $LSform && $LSform -> dataEntryForm?
+ LSconfig::get(
+ 'forceGeneration', array(), 'array', $LSform -> dataEntryFormConfig
+ ):array()
+ );
+
foreach($this -> attrs as $attr_name => $attr) {
$attr_values = $attr -> getValue();
if (!$attr -> isValidate()) {
@@ -500,7 +508,10 @@ class LSldapObject extends LSlog_staticLoggerClass {
$retval = false;
}
}
- else if( (empty($attr_values)) && ($attr -> isRequired()) ) {
+ else if(
+ in_array($attr_name, $forceGeneration)
+ || (empty($attr_values) && $attr -> isRequired())
+ ) {
if ( $attr -> canBeGenerated()) {
if ($attr -> generateValue()) {
if (!$this -> validateAttrData($LSform, $attr, $justCheck)) {