From 6e363a3f595ae9f9228ab20840b5bb2ee82b09bf Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Wed, 31 Mar 2021 11:54:28 +0200
Subject: [PATCH] Les liens precedent/suivant deviennent une option du modele
 de pagination par defaut, activables via afficher_lien_precedent et
 afficher_lien_suivant. Le modele pagination_page_precedent_suivant deisparait
 donc car plus necessaire

---
 ecrire/public/fonctions.php                   | 13 +++--
 prive/modeles/pagination.html                 | 26 ++++++++--
 .../pagination_page_precedent_suivant.html    | 49 -------------------
 3 files changed, 33 insertions(+), 55 deletions(-)
 delete mode 100644 prive/modeles/pagination_page_precedent_suivant.html

diff --git a/ecrire/public/fonctions.php b/ecrire/public/fonctions.php
index a0b0b9d8ac..e065aaf2c2 100644
--- a/ecrire/public/fonctions.php
+++ b/ecrire/public/fonctions.php
@@ -255,6 +255,16 @@ function filtre_bornes_pagination_dist($courante, $nombre, $max = 10) {
 }
 
 function filtre_pagination_affiche_page($type_pagination, $numero_page, $rang_item) {
+	if ($numero_page === 'tous') {
+		return '+';
+	}
+	if ($numero_page === 'prev') {
+		return '&lt;';
+	}
+	if ($numero_page === 'next') {
+		return '&gt;';
+	}
+
 	switch ($type_pagination) {
 		case 'resultats':
 			return $rang_item + 1; // 1 11 21 31...
@@ -266,9 +276,6 @@ function filtre_pagination_affiche_page($type_pagination, $numero_page, $rang_it
 		case 'page':
 		case 'prive':
 		default:
-			if ($numero_page === '*') {
-				return '+';
-			}
 			return $numero_page; // 1 2 3 4 5...
 	}
 }
diff --git a/prive/modeles/pagination.html b/prive/modeles/pagination.html
index 3e1af50727..f99281f404 100644
--- a/prive/modeles/pagination.html
+++ b/prive/modeles/pagination.html
@@ -6,7 +6,17 @@
 #SET{type,#ENV{type_pagination,page}}
 <B_pages>
 	[<span class="pagination-label"><span class="label">(#ENV{label})</span></span>]
-	<ul class="pagination-items pagination_#GET{type}">
+	<ul class="pagination-items pagination_#GET{type}">[
+		(#ENV{afficher_lien_precedent,0}|ou{#GET{type}|=={page_precedent_suivant}})
+		[(#SET{item, #ENV{page_courante}|moins{2}|mult{#ENV{pas}} })]
+		[<li class="pagination-item prev[(#ENV{page_courante}|<={1}|oui)disabled]">(#ENV{url_precedent,#ENV{url}
+				|parametre_url{#ENV{debut},#GET{item}|?{#GET{item}}}}
+				|ancre_url{#ENV{ancre}}
+				|lien_ou_expose{#ENV{label_precedent,#GET{type}|pagination_affiche_page{prev,#GET{item}}},#ENV{page_courante}|<={1}|?{span.pagination-lien},'pagination-lien lien_pagination','',nofollow}
+				|inserer_attribut{title,<:public:page_precedente:>}
+				|inserer_attribut{rel,prev}
+				)</li>]
+		]
 		[<li class="pagination-item"><a
 	      href="[(#ENV{url}|parametre_url{#ENV{debut},''}|ancre_url{#ENV{ancre}})]"
 				class="pagination-lien lien_pagination"
@@ -32,8 +42,18 @@
 		[<li class="pagination-item all[(#ENV{page_courante}|=={0}|oui)on active]">(#ENV{url}
 			|parametre_url{#ENV{debut},-1}
 			|ancre_url{#ENV{ancre}}
-			|lien_ou_expose{#ENV{label_tous,#GET{type}|pagination_affiche_page{*,#GET{item}}},#ENV{page_courante}|=={0}|?{span.pagination-lien},pagination-lien lien_pagination,'',nofollow}
+			|lien_ou_expose{#ENV{label_tous,#GET{type}|pagination_affiche_page{tous,#GET{item}}},#ENV{page_courante}|=={0}|?{span.pagination-lien},pagination-lien lien_pagination,'',nofollow}
 		  |inserer_attribut{title,<:lien_tout_afficher:>}
-		)</li>]]
+		)</li>]][
+		(#ENV{afficher_lien_suivant,0}|ou{#GET{type}|=={page_precedent_suivant}})
+		[(#SET{item, #ENV{page_courante}|mult{#ENV{pas}} })]
+		[<li class="pagination-item next[(#ENV{page_courante}|>={#ENV{nombre_pages}}|oui)disabled]">(#ENV{url_suivant,#ENV{url}
+				|parametre_url{#ENV{debut},#GET{item}|?{#GET{item}}}}
+				|ancre_url{#ENV{ancre}}
+				|lien_ou_expose{#ENV{label_suivant,#GET{type}|pagination_affiche_page{next,#GET{item}}},#ENV{page_courante}|>={#ENV{nombre_pages}}|?{span.pagination-lien},'pagination-lien lien_pagination','',nofollow}
+				|inserer_attribut{title,<:public:page_suivante:>}
+				|inserer_attribut{rel,next}
+				)</li>]
+		]
 	</ul>
 </B_pages>
diff --git a/prive/modeles/pagination_page_precedent_suivant.html b/prive/modeles/pagination_page_precedent_suivant.html
deleted file mode 100644
index 31ae9a53d0..0000000000
--- a/prive/modeles/pagination_page_precedent_suivant.html
+++ /dev/null
@@ -1,49 +0,0 @@
-#ENV*{bloc_ancre}
-#SET{bornes,#ENV{page_courante}|bornes_pagination{#ENV{nombre_pages},#ENV{nombre_liens_max,#CONST{_PAGINATION_NOMBRE_LIENS_MAX}}|moins{2}|max{1}}}
-#SET{premiere, #GET{bornes}|reset}
-#SET{derniere, #GET{bornes}|end}
-#SET{pages,#GET{premiere}|range{#GET{derniere}}}
-#SET{sep,#ENV{separateur,' | '}}
-<B_pages>
-	[<span class="pagination-label"><span class="label">(#ENV{label})</span></span>]
-	<ul class="pagination-items pagination_page">[
-
-	  (#SET{item, #ENV{page_courante}|moins{2}|mult{#ENV{pas}} })
-
-	 ][<li class="pagination-item prev[(#ENV{page_courante}|<={1}|oui)disabled]">(#ENV{url_precedent,#ENV{url}
-		|parametre_url{#ENV{debut},#GET{item}|?{#GET{item}}}}
-		|ancre_url{#ENV{ancre}}
-		|lien_ou_expose{#ENV{label_precedent,&lt;},#ENV{page_courante}|<={1}|?{span.pagination-lien},'pagination-lien lien_pagination','',nofollow}
-		|inserer_attribut{title,<:public:page_precedente:>}
-		|inserer_attribut{rel,prev}
-		)</li>]
-		[<li class="pagination-item"><a
-				href="[(#ENV{url}|parametre_url{#ENV{debut},''}|ancre_url{#ENV{ancre}})]"
-				class="pagination-lien lien_pagination"
-				rel="nofollow">(#GET{premiere}|>{1}|?{1})</a></li><li
-				class="pagination-item tbc disabled"><span class="pagination-lien">...</span></li>]
-		<BOUCLE_pages(POUR){tableau #GET{pages}}>[
-		(#SET{item, #VALEUR|moins{1}|mult{#ENV{pas}} })
-		][<li class="pagination-item[(#VALEUR|=={#ENV{page_courante}}|oui)on active]">(#ENV{url}
-		|parametre_url{#ENV{debut},#GET{item}|?{#GET{item}}}
-		|ancre_url{#ENV{ancre}}
-		|lien_ou_expose{#VALEUR,#VALEUR|=={#ENV{page_courante}}|?{span.pagination-lien},pagination-lien lien_pagination,'',nofollow})</li>]
-		</BOUCLE_pages>
-
-		[<li class="pagination-item tbc disabled"><span class="pagination-lien">...</span></li>
-		<li class="pagination-item"><a
-		  href="[(#ENV{url}|parametre_url{#ENV{debut},#ENV{nombre_pages}|moins{1}|mult{#ENV{pas}}}|ancre_url{#ENV{ancre}})]"
-		  class="pagination-lien lien_pagination"
-		  rel="nofollow">(#GET{derniere}|<{#ENV{nombre_pages}}|?{#ENV{nombre_pages}})</a></li>][
-
-		(#SET{item, #ENV{page_courante}|mult{#ENV{pas}} })
-
-		][<li class="pagination-item next[(#ENV{page_courante}|>={#ENV{nombre_pages}}|oui)disabled]">(#ENV{url_suivant,#ENV{url}
-		|parametre_url{#ENV{debut},#GET{item}|?{#GET{item}}}}
-		|ancre_url{#ENV{ancre}}
-		|lien_ou_expose{#ENV{label_suivant,&gt;},#ENV{page_courante}|>={#ENV{nombre_pages}}|?{span.pagination-lien},'pagination-lien lien_pagination','',nofollow}
-		|inserer_attribut{title,<:public:page_suivante:>}
-		|inserer_attribut{rel,next}
-		)</li>]
-	</ul>
-</B_pages>
-- 
GitLab