diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 2bc58e3764a3581a776dfd7316b7f02478a373a4..36560b6b5d75a74a959457b6f4216b77d5403669 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 4f706468b5e08f13863bf86fed16b5f45b1d743a..c718d1bf6d19983cf48c754569eb49540ebba49a 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 //