Skip to content
Extraits de code Groupes Projets
Valider 9d338d9b rédigé par maieul@maieul.net's avatar maieul@maieul.net
Parcourir les fichiers

Passer les étapes et l'étape courante à la vérif propre à chaque

traitement. Utiliser cette vérif à chaque étape.

Pour le traitement enregistrer, tester l'unicité d'un champ si le champ
est dans l'étape courante.
parent 91e4bd12
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -248,9 +248,9 @@ function formulaires_formidable_verifier_etape_dist($etape, $id, $valeurs = arra ...@@ -248,9 +248,9 @@ function formulaires_formidable_verifier_etape_dist($etape, $id, $valeurs = arra
include_spip('inc/saisies'); include_spip('inc/saisies');
$saisies = saisies_chercher_formulaire('formidable', array($id, $valeurs, $id_formulaires_reponse)); $saisies = saisies_chercher_formulaire('formidable', array($id, $valeurs, $id_formulaires_reponse));
// Seulement si on est à la DERNIÈRE étape, on lance les vérifications propres aux traitements // On lance les vérifications propres aux traitements à chaque étape, pour avoir les messages d'erreurs à chaque étape
if ($saisies and $etapes = saisies_lister_par_etapes($saisies) and $etape==count($etapes)) { if ($saisies and $etapes = saisies_lister_par_etapes($saisies)) {
$erreurs = formulaires_formidable_verifier_traitements($id, $valeurs, $id_formulaires_reponse); $erreurs = formulaires_formidable_verifier_traitements($id, $valeurs, $id_formulaires_reponse, $etapes, $etape);
} }
return $erreurs; return $erreurs;
...@@ -266,11 +266,13 @@ function formulaires_formidable_verifier_etape_dist($etape, $id, $valeurs = arra ...@@ -266,11 +266,13 @@ function formulaires_formidable_verifier_etape_dist($etape, $id, $valeurs = arra
* Exemple : array('hidden_1' => 3) pour que champ identifie "@hidden_1@" soit prerempli * Exemple : array('hidden_1' => 3) pour que champ identifie "@hidden_1@" soit prerempli
* @param int|bool $id_formulaires_reponse * @param int|bool $id_formulaires_reponse
* Identifiant d'une réponse pour forcer la reedition de cette reponse spécifique * Identifiant d'une réponse pour forcer la reedition de cette reponse spécifique
* * @param array $etapes
* Liste des saisies, ordonnées par étape
* @param int|null $etape le numéro de l'étape courante
* @return array * @return array
* Tableau des erreurs * Tableau des erreurs
*/ */
function formulaires_formidable_verifier_traitements($id, $valeurs = array(), $id_formulaires_reponse = false) { function formulaires_formidable_verifier_traitements($id, $valeurs = array(), $id_formulaires_reponse = false, $etapes = array(), $etape = null) {
$erreurs = array(); $erreurs = array();
if ( if (
...@@ -289,6 +291,8 @@ function formulaires_formidable_verifier_traitements($id, $valeurs = array(), $i ...@@ -289,6 +291,8 @@ function formulaires_formidable_verifier_traitements($id, $valeurs = array(), $i
'id_formulaire' => $formulaire['id_formulaire'], 'id_formulaire' => $formulaire['id_formulaire'],
'valeurs' => $valeurs, 'valeurs' => $valeurs,
'id_formulaires_reponse' => $id_formulaires_reponse, 'id_formulaires_reponse' => $id_formulaires_reponse,
'etapes' => $etapes,
'etape' => $etape
), ),
$erreurs $erreurs
); );
......
...@@ -194,8 +194,16 @@ function traiter_enregistrement_verifier_dist($args, $erreurs) { ...@@ -194,8 +194,16 @@ function traiter_enregistrement_verifier_dist($args, $erreurs) {
$id_formulaire = $args['id_formulaire']; $id_formulaire = $args['id_formulaire'];
$options = $args['options']; $options = $args['options'];
$id_formulaires_reponse = $args['id_formulaires_reponse']; $id_formulaires_reponse = $args['id_formulaires_reponse'];
$etape = $args['etape'];
if (($unicite = $options['unicite']) != '' and !$erreurs[$unicite]) { if (($unicite = $options['unicite']) != '' and !$erreurs[$unicite]
and
(
$etape === null
or (
array_key_exists($unicite, saisies_lister_par_nom(array($args['etapes'][$etape])))
)
)
) {
if (!$id_formulaires_reponse) { // si pas de réponse explictement passée au formulaire, on cherche la réponse qui serait édité if (!$id_formulaires_reponse) { // si pas de réponse explictement passée au formulaire, on cherche la réponse qui serait édité
$id_formulaires_reponse = formidable_trouver_reponse_a_editer($id_formulaire, $id_formulaires_reponse, $options); $id_formulaires_reponse = formidable_trouver_reponse_a_editer($id_formulaire, $id_formulaires_reponse, $options);
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter