From 311a9580fefaad05234284f4bbcbb1f96090dc83 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Fri, 2 Jun 2006 11:21:38 +0000
Subject: [PATCH] =?UTF-8?q?crit=C3=A8re=20{pagination=2020}=20et=20pire=20?=
 =?UTF-8?q?encore=20({pagination=20#ENV{pages,5}})?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 dist/inc-petition.html                 |  2 +-
 ecrire/balise/formulaire_signature.php |  2 +-
 ecrire/public/balises.php              |  5 +++--
 ecrire/public/criteres.php             | 10 +++++++++-
 ecrire/public/interfaces.php           |  6 +++---
 5 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/dist/inc-petition.html b/dist/inc-petition.html
index 6956eb889f..f5e78fbf79 100644
--- a/dist/inc-petition.html
+++ b/dist/inc-petition.html
@@ -19,7 +19,7 @@
 		</tr>
 	</thead>
 	<tbody>
-<BOUCLE_signatures(SIGNATURES) {id_article} {par date} {inverse} {pagination}>
+<BOUCLE_signatures(SIGNATURES){id_article} {par date}{inverse} {pagination 20}>
 		<tr>
 		<td class="signature-date">[(#DATE|affdate)]</td>
 		<td class="signature-nom">#NOM[<br /><a href="(#URL_SITE)" class="spip_out"><small>[(#NOM_SITE|sinon{[(#URL_SITE|couper{80})]})</small>]</a>]</td>
diff --git a/ecrire/balise/formulaire_signature.php b/ecrire/balise/formulaire_signature.php
index 3a0de88300..750a0dd1d3 100644
--- a/ecrire/balise/formulaire_signature.php
+++ b/ecrire/balise/formulaire_signature.php
@@ -76,7 +76,7 @@ function balise_FORMULAIRE_SIGNATURE_dyn($id_article, $petition, $texte, $site_o
 		'texte' => $texte,
 		'site_obli' => $site_obli,
 		'message' => $message,
-		'self' => $reponse ? '' : str_replace('&amp;', '&', self()),
+		'self' => $reponse ?'':parametre_url(self(),'debut_signatures','', '&'),
 		'reponse' => $reponse
 	));
 }
diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index e6f6387343..0f1c17818e 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -577,7 +577,6 @@ function balise_PAGINATION_dist($p, $liste='true') {
 		$option = str_replace("'", '', $option);
 	}
 
-	$pas = _PAS > 0 ? _PAS : 10;
 	$p->boucles[$b]->numrows = true;
 
 	if ($option)
@@ -588,7 +587,9 @@ function balise_PAGINATION_dist($p, $liste='true') {
 	$p->code = "pagination(
 	(isset(\$Numrows['$b']['grand_total']) ?
 		\$Numrows['$b']['grand_total'] : \$Numrows['$b']['total']
-	), '$nom_boucle', $pas, $liste)";
+	), '$nom_boucle', "
+	. $p->boucles[$b]->total_parties
+	. ", $liste)";
 
 	$p->interdire_scripts = false;
 	return $p;
diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php
index 80d736f0ed..6ccac11464 100644
--- a/ecrire/public/criteres.php
+++ b/ecrire/public/criteres.php
@@ -91,9 +91,17 @@ function critere_debut_dist($idb, &$boucles, $crit) {
 	  '"' ;
 }
 // {pagination}
+// {pagination 20}
+// {pagination #ENV{pages,5}} etc
 // http://www.spip.net/@pagination
 function critere_pagination_dist($idb, &$boucles, $crit) {
-	$pas = _PAS>0 ? _PAS : 10;
+
+	// definition de la taille de la page
+	$pas = calculer_liste($crit->param[0], array(),
+		$boucles, $boucles[$idb]->id_parent);
+
+	$pas = "((\$a = intval($pas)) ? \$a : 10)"; # par defaut c'est 10
+
 	$boucle = &$boucles[$idb];
 	$boucle->mode_partie = 'p+';
 	$boucle->partie = 'intval(_request("debut'.$idb.'"))';
diff --git a/ecrire/public/interfaces.php b/ecrire/public/interfaces.php
index 663367a8f4..acc0f735de 100644
--- a/ecrire/public/interfaces.php
+++ b/ecrire/public/interfaces.php
@@ -73,9 +73,9 @@ class Boucle {
 	var $id_table;
 	var $primary;
 	var $return;
-	var $numrows = false; 
-	var $cptrows = false; 
-	var $ligne = 0; 
+	var $numrows = false;
+	var $cptrows = false;
+	var $ligne = 0;
 	var $descr =  array(); # noms des fichiers source et but etc
 }
 
-- 
GitLab