From e77047fcf62f407ddb19f580f5e6744cd0b89a78 Mon Sep 17 00:00:00 2001
From: "rastapopoulos@spip.org" <>
Date: Thu, 11 Feb 2010 22:44:08 +0000
Subject: [PATCH] =?UTF-8?q?Une=20fonction=20g=C3=A9n=C3=A9rique=20pour=20v?=
 =?UTF-8?q?=C3=A9rifier=20d'un=20coup=20un=20formulaire=20complet=20d?=
 =?UTF-8?q?=C3=A9crit=20avec=20l'API=20de=20Saisies.=20=C3=87a=20retourne?=
 =?UTF-8?q?=20le=20tableau=20d'erreurs.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inc/verifier.php | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/inc/verifier.php b/inc/verifier.php
index 786847a..231b1ad 100644
--- a/inc/verifier.php
+++ b/inc/verifier.php
@@ -40,4 +40,33 @@ function verifier($valeur, $type, $options=null){
 	return $erreur;
 }
 
+/*
+ * Vérifier tout un formulaire tel que décrit avec les Saisies
+ * @param array $formulaire Le contenu d'un formulaire décrit dans un tableau de Saisies
+ * @return array Retourne un tableau d'erreurs
+ */
+function verifier_saisies($formulaire){
+	$erreurs = array();
+	
+	$saisies = saisies_recuperer_saisies($formulaire);
+	foreach ($saisies as $saisie){
+		$obligatoire = $saisie['options']['obligatoire'];
+		$champ = $saisie['options']['nom'];
+		$verifier = $saisie['verifier'];
+		
+		// On regarde d'abord si le champ est obligatoire
+		if ($obligatoire and $obligatoire != 'non' and ($valeur=_request($champ)) == '')
+			$erreurs[$champ] = _T('info_obligatoire');
+		
+		// On continue seulement si ya pas d'erreur d'obligation et qu'il y a une demande de verif
+		if (!$erreurs[$champ] and is_array($verifier)){
+			// Si le champ n'est pas valide par rapport au test demandé, on ajoute l'erreur
+			if ($erreur_eventuelle = verifier($valeur, $verifier['type'], $verifier['options']))
+				$erreurs[$champ] = $erreur_eventuelle;
+		}
+	}
+	
+	return $erreurs;
+}
+
 ?>
-- 
GitLab