From ba919d0ee8c5d54190cd2e65c995b478e881c794 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Mon, 10 Aug 2009 09:06:55 +0000
Subject: [PATCH] =?UTF-8?q?Aussi=20un=20503=20si=20un=20crit=C3=A8re=20mzl?=
 =?UTF-8?q?=20=C3=A9crit.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/public/criteres.php     | 2 ++
 ecrire/public/phraser_html.php | 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php
index 3f73b400e8..116bd8feb0 100644
--- a/ecrire/public/criteres.php
+++ b/ecrire/public/criteres.php
@@ -631,6 +631,8 @@ function calculer_criteres ($idb, &$boucles)
 	$boucle = $boucles[$idb];
 	$table = strtoupper($boucle->id_table);
 	$defaut = charger_fonction('DEFAUT', 'calculer_critere');
+	// s'il y avait une erreur de syntaxe, propager cette info
+	if (!is_array($boucle->criteres)) return array(); 
 	foreach($boucle->criteres as $crit) {
 		$critere = $crit->op;
 		// critere personnalise ?
diff --git a/ecrire/public/phraser_html.php b/ecrire/public/phraser_html.php
index 3a461813ba..805992f50b 100644
--- a/ecrire/public/phraser_html.php
+++ b/ecrire/public/phraser_html.php
@@ -421,6 +421,7 @@ function phraser_vieux(&$champ)
 // http://doc.spip.org/@phraser_criteres
 function phraser_criteres($params, &$result) {
 
+	$msg = ''; // indiquera s'il y a eu une erreur
 	$args = array();
 	$type = $result->type_requete;
 	$doublons = array();
@@ -556,7 +557,8 @@ function phraser_criteres($params, &$result) {
 	// pour que la variable $doublon_index ait la bonne valeur
 	// cf critere_doublon
 	if ($doublons) $args= array_merge($args, $doublons);
-	$result->criteres = $args;
+	// Si erreur, laisser la chaine dans ce champ pour le HTTP 503
+	if (!$msg) $result->criteres = $args;
 }
 
 // http://doc.spip.org/@phraser_critere_infixe
-- 
GitLab