diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index c450452a49c5b57e0cd510152166ac48da91e481..981eb6d3649e8076a46b425fe5533da1c44a4f1f 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -489,8 +489,6 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) { $newdescr, $boucles, $id_boucle); $apres = calculer_liste($p->apres, $newdescr, $boucles, $id_boucle); - if ($boucles[$nom]->mode_partie=='p+') - $ahah_out = array($nom,$descr['nom']); $newdescr['niv']--; $altern = calculer_liste($p->altern, $newdescr, $boucles, $id_boucle); @@ -544,11 +542,18 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) { $code = "((strval($t = $code)!='')" ." ?\n\t$tab($res) :\n\t$tab($altern))"; } - if ($ahah_out!==false){ - $code = "'<div id=\"$ahah_out[0]_$ahah_out[1]\" class=\"bloc_ahah_pagination\">' - .(\$ahah = $code). - ((\$_GET['ahah_id']=='$ahah_out[0]_$ahah_out[1]')?die(\$ahah):'').'</div>'"; + + // gestion d'une boucle-fragment (ahah) + if (strlen($p->fragment)) { + $code = '(($fragment = '.$code.')? + \'<div id="'.$p->fragment.'" class="fragment">\' + .$fragment + ."</div>":""). + (($_GET["fragment"]=="'.$p->fragment.'")? + die(charset2unicode($fragment)):"" + )'; } + } if ($code != "''") $codes[]= (($mode == 'validation') ? diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php index a88295231627af2038aa9ffaa240a946bbdd0a09..630ac425a2e7d09f4a3dce65b69371ca01952c26 100644 --- a/ecrire/public/criteres.php +++ b/ecrire/public/criteres.php @@ -105,8 +105,19 @@ function critere_pagination_dist($idb, &$boucles, $crit) { $boucle->mode_partie = 'p+'; $boucle->partie = 'intval(_request("debut'.$idb.'"))'; $boucle->total_parties = $pas; + if (!isset($boucle->fragment)) $boucle->fragment = $idb; } +// {fragment} +// http://www.spip.net/@fragment +function critere_fragment_dist($idb, &$boucles, $crit) { + if (!($param = $crit->param[0][0]->texte)) + $param = 'fragment'.$idb; + if ($crit->not) + $param = false; + $boucle = &$boucles[$idb]; + $boucle->fragment = $param; +} // {recherche} diff --git a/ecrire/public/interfaces.php b/ecrire/public/interfaces.php index acc0f735def334247f3d7eda4aead6ade4f7f229..26f02dee1f115b1b0f6d77f5797bdc772da49cd1 100644 --- a/ecrire/public/interfaces.php +++ b/ecrire/public/interfaces.php @@ -49,6 +49,7 @@ class Boucle { var $jointures_explicites = false; var $doublons; var $partie, $total_parties,$mode_partie; + var $fragment; # definir un fragment de page var $externe = ''; # appel a partir d'une autre boucle (recursion) // champs pour la construction de la requete SQL var $tout = false;