diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 5b33bf79f3a17cacb61e5f1ab70ae5257a0ba047..f37fd4d55a2e2323c94b976714f172cde6d4cb8c 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -492,11 +492,6 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) { $newdescr['niv']--; $altern = calculer_liste($p->altern, $newdescr, $boucles, $id_boucle); - if ($boucles[$nom]->fragment) - $fragment = $boucles[$nom]->fragment; - // si le nom du fragment n'a pas ete impose, - // ajouter le hash du squelette pour assurer l'unicite dans la page html produite - if ($fragment==$nom) $fragment.=$descr['nom']; break; case 'idiome': @@ -549,12 +544,15 @@ function compile_cas($tableau, $descr, &$boucles, $id_boucle) { } // gestion d'une boucle-fragment (ahah) - if ($fragment) { + if (strlen($p->fragment)) { + static $nombre_fragments = array(); + $fragment = $p->fragment; + $fragment .= $nombre_fragments[$p->fragment]++; $code = '(($fragment = '.$code.')? \'<div id="'.$fragment.'" class="fragment">\' .$fragment ."</div>":""). - (($_GET["fragment"]=="'.$fragment.'")? + (($Pile[0]["fragment"]=="'.$fragment.'")? exporter_fragment($fragment):"" )'; } diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php index 630ac425a2e7d09f4a3dce65b69371ca01952c26..9252cebab9af25b3488de628f444ca84edaedeba 100644 --- a/ecrire/public/criteres.php +++ b/ecrire/public/criteres.php @@ -105,14 +105,14 @@ 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; + $boucle->fragment = 'fragment_'.$boucle->descr['nom'].$idb; } // {fragment} // http://www.spip.net/@fragment function critere_fragment_dist($idb, &$boucles, $crit) { if (!($param = $crit->param[0][0]->texte)) - $param = 'fragment'.$idb; + $param = 'fragment_'.$boucle->descr['nom'].$idb; if ($crit->not) $param = false; $boucle = &$boucles[$idb];