From da5a33aa3a3b230b3d9d430a5b76e28adf0eff7c Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Sat, 12 Jan 2008 18:39:32 +0000 Subject: [PATCH] =?UTF-8?q?Le=20compilateur=20accepte=20=20{{{=20<BOUCLEno?= =?UTF-8?q?m(type){critere}=20/>=20}}}=20pour=20=C3=A9crire=20une=20boucle?= =?UTF-8?q?=20vide=20(surtout=20r=C3=A9cursive,=20pour=20remplir=20un=20cr?= =?UTF-8?q?it=C3=A8re=20doublons=20ou=20calculer=20un=20#TOTAL=5FBOUCLE).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/public/compiler.php | 4 ++-- ecrire/public/phraser_html.php | 25 +++++++++++++++---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 2bc58e3764..36560b6b5d 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -267,6 +267,7 @@ function calculer_boucle_nonrec($id_boucle, &$boucles) { } else { $corps = $init . ' + $SP++; // RESULTATS while ($Pile[$SP] = @sql_fetch($result,"' . @@ -287,8 +288,7 @@ function calculer_boucle_nonrec($id_boucle, &$boucles) { (!$flag_cpt ? "" : "\n \$Numrows['$id_boucle']['compteur_boucle'] = 0;") . ' - $t0 = ""; - $SP++;' + $t0 = "";' . $corps . "\n @sql_free(\$result,'" . diff --git a/ecrire/public/phraser_html.php b/ecrire/public/phraser_html.php index 4f706468b5..c718d1bf6d 100644 --- a/ecrire/public/phraser_html.php +++ b/ecrire/public/phraser_html.php @@ -595,9 +595,9 @@ function public_phraser_html($texte, $id_parent, &$boucles, $nom, $ligne=1) { if ($soustype == 'sites') $soustype = 'syndication' ; # alias - phraser_args($milieu,">","",$all_res,$result); + phraser_args($milieu,"/>","",$all_res,$result); $params = substr($milieu,0,@strpos($milieu,$result->apres)); - $milieu = substr($result->apres,1); + $milieu = $result->apres; $result->apres = ""; // @@ -611,7 +611,6 @@ function public_phraser_html($texte, $id_parent, &$boucles, $nom, $ligne=1) { array_unshift($args, substr($type, strlen(TYPE_RECURSIF))); $result->param = $args; -# $milieu = substr($milieu, strpos($milieu, '>')+1); } else { $result->type_requete = $soustype; phraser_criteres($result->param, $result); @@ -620,16 +619,22 @@ function public_phraser_html($texte, $id_parent, &$boucles, $nom, $ligne=1) { // // Recuperer la fin : // - $s = BALISE_FIN_BOUCLE . $id_boucle . ">"; - $p = strpos($milieu, $s); - if ($p === false) { - erreur_squelette(_T('zbug_erreur_boucle_syntaxe'), + if ($milieu[0] === '/') { + $suite = substr($milieu,2); + $milieu = ''; + } else { + $milieu = substr($milieu,1); + $s = BALISE_FIN_BOUCLE . $id_boucle . ">"; + $p = strpos($milieu, $s); + if ($p === false) { + erreur_squelette(_T('zbug_erreur_boucle_syntaxe'), _T('zbug_erreur_boucle_fermant', array('id'=>$id_boucle))); - } + } - $suite = substr($milieu, $p + strlen($s)); - $milieu = substr($milieu, 0, $p); + $suite = substr($milieu, $p + strlen($s)); + $milieu = substr($milieu, 0, $p); + } // // 1. Recuperer la partie conditionnelle apres // -- GitLab