<?xml 
version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://www.spip.net/spip.php?page=backend.xslt" ?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>

<channel xml:lang="fr">
	<title>SPIP</title>
	<link>https://www.spip.net/</link>
	<description>Syst&#232;me de Publication pour Internet</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>
	<atom:link href="https://www.spip.net/spip.php?id_auteur=219&amp;page=backend" rel="self" type="application/rss+xml" />

	<image>
		<title>SPIP</title>
		<url>https://www.spip.net/local/cache-vignettes/L144xH107/siteon0-0ecda.png?1615902774</url>
		<link>https://www.spip.net/</link>
		<height>107</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>Le syst&#232;me de pagination</title>
		<link>https://www.spip.net/fr_article3367.html</link>
		<guid isPermaLink="true">https://www.spip.net/fr_article3367.html</guid>
		<dc:date>2006-07-01T08:06:14Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Fil, Fran&#231;ois Schreuer, James, Ma&#239;eul</dc:creator>


		<dc:subject>debut_...</dc:subject>
		<dc:subject>#SELF</dc:subject>
		<dc:subject>#TOTAL_BOUCLE</dc:subject>
		<dc:subject>#PAGINATION</dc:subject>
		<dc:subject>pagination</dc:subject>
		<dc:subject>#GRAND_TOTAL</dc:subject>
		<dc:subject>#ANCRE_PAGINATION</dc:subject>

		<description>
&lt;p&gt;Lorsqu'une boucle renvoie plusieurs dizaines d'articles (ou, pour une p&#233;tition, plusieurs milliers de signatures), il n'est pas souhaitable, voire impossible, de tout afficher sur une seule page. &lt;br class='autobr' /&gt; La pagination permet de r&#233;partir des r&#233;sultats trop nombreux sur plusieurs pages. &lt;br class='autobr' /&gt;
SPIP propose donc un syst&#232;me simplifi&#233; de pagination des r&#233;sultats d'une boucle. &lt;br class='autobr' /&gt;
Syntaxe de base Au plus simple, ce syst&#232;me est compos&#233; d'un crit&#232;re et d'une balise : le crit&#232;re pagination s'ajoute sur la boucle (&#8230;)&lt;/p&gt;


-
&lt;a href="https://www.spip.net/fr_rubrique469.html" rel="directory"&gt;Autres fonctions avanc&#233;es&lt;/a&gt;

/ 
&lt;a href="https://www.spip.net/@debut_" rel="tag"&gt;debut_...&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@self" rel="tag"&gt;#SELF&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@total_boucle" rel="tag"&gt;#TOTAL_BOUCLE&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@pagination" rel="tag"&gt;#PAGINATION&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@pagination" rel="tag"&gt;pagination&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@grand_total" rel="tag"&gt;#GRAND_TOTAL&lt;/a&gt;, 
&lt;a href="https://www.spip.net/@ancre_pagination" rel="tag"&gt;#ANCRE_PAGINATION&lt;/a&gt;

		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;Lorsqu'une boucle renvoie plusieurs dizaines d'articles (ou, pour une p&#233;tition, plusieurs milliers de signatures), il n'est pas souhaitable, voire impossible, de tout afficher sur une seule page.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;!--sommaire--&gt;&lt;div class=&#034;well nav-sommaire nav-sommaire-9&#034; id=&#034;nav6a10dbd6247aa7.56710522&#034;&gt;
&lt;h2&gt;Sommaire&lt;/h2&gt;&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; &lt;a id=&#034;s-Syntaxe-de-base&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Syntaxe-de-base&#034; class=&#034;spip_ancre&#034;&gt;Syntaxe de base&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Ancres-de-pagination&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Ancres-de-pagination&#034; class=&#034;spip_ancre&#034;&gt;Ancres de pagination&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Acces-direct-a-un-element-particulier&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Acces-direct-a-un-element-particulier&#034; class=&#034;spip_ancre&#034;&gt;Acc&#232;s direct &#224; un &#233;l&#233;ment particulier&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Le-nombre-total-de-resultats&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Le-nombre-total-de-resultats&#034; class=&#034;spip_ancre&#034;&gt;Le nombre total de r&#233;sultats&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Changer-le-pas-de-la&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Changer-le-pas-de-la&#034; class=&#034;spip_ancre&#034;&gt;Changer le pas de la &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{pagination}&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-La-pagination-dans-les-squelettes-inclus&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#La-pagination-dans-les-squelettes-inclus&#034; class=&#034;spip_ancre&#034;&gt;La pagination dans les squelettes inclus&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Styles-de-la-pagination&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Styles-de-la-pagination&#034; class=&#034;spip_ancre&#034;&gt;Styles de la pagination&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Choisir-le-modele-de-pagination&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Choisir-le-modele-de-pagination&#034; class=&#034;spip_ancre&#034;&gt;Choisir le mod&#232;le de pagination&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;a id=&#034;s-Personnaliser-le-modele-de-pagination&#034;&gt;&lt;/a&gt;&lt;a href=&#034;#Personnaliser-le-modele-de-pagination&#034; class=&#034;spip_ancre&#034;&gt;Personnaliser le mod&#232;le de pagination&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;!--/sommaire--&gt;&lt;p&gt;La pagination permet de r&#233;partir des r&#233;sultats trop nombreux sur plusieurs pages.&lt;/p&gt;
&lt;p&gt;SPIP propose donc un syst&#232;me simplifi&#233; de pagination des r&#233;sultats d'une boucle.&lt;/p&gt;
&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Syntaxe-de-base&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Syntaxe-de-base'&gt;Syntaxe de base&lt;a class='sommaire-back sommaire-back-9' href='#s-Syntaxe-de-base' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Au plus simple, ce syst&#232;me est compos&#233; d'un crit&#232;re et d'une balise :&lt;/p&gt;
&lt;ul class=&#034;spip&#034; role=&#034;list&#034;&gt;&lt;li&gt; le crit&#232;re &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{pagination}&lt;/code&gt;&lt;/strong&gt; s'ajoute sur la boucle &#224; paginer ;&lt;/li&gt;&lt;li&gt; la balise &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION&lt;/code&gt;&lt;/strong&gt;, plac&#233;e dans une des parties optionnelles (&#171; avant &#187; ou &#171; apr&#232;s &#187;) de la boucle, affiche la &#171; pagination &#187;.&lt;/li&gt;&lt;/ul&gt;&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;B_page&gt; [&lt;nav role=&#034;navigation&#034; class=&#034;pagination&#034;&gt;(#PAGINATION)&lt;/nav&gt;] &lt;ul&gt; &lt;BOUCLE_page(ARTICLES){par date}{pagination}&gt; &lt;li&gt;#TITRE&lt;/li&gt; &lt;/BOUCLE_page&gt; &lt;/ul&gt; &lt;/B_page&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Si le site comporte 90 articles publi&#233;s, cette boucle affichera la liste des dix plus anciens articles, surplomb&#233;e de liens conduisant vers la page qui affiche les dix suivants, les dix d'apr&#232;s, etc. Ces liens sont num&#233;rot&#233;s comme suit :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;&lt;p class=&#034;pagination&#034;&gt;&lt;span class=&#034;on&#034;&gt;0&lt;/span&gt; | &lt;a href=&#034;#debut_articles=10&#034;&gt;10&lt;/a&gt; | &lt;a href=&#034;#debut_articles=20&#034;&gt;20&lt;/a&gt; | &lt;a href=&#034;#debut_articles=30&#034;&gt;30&lt;/a&gt; | &lt;a href=&#034;#debut_articles=40&#034;&gt;40&lt;/a&gt; | &lt;a href=&#034;#debut_articles=50&#034;&gt;50&lt;/a&gt; | &lt;a href=&#034;#debut_articles=60&#034;&gt;60&lt;/a&gt; | &lt;a href=&#034;#debut_articles=70&#034;&gt;70&lt;/a&gt; | &lt;a href=&#034;#debut_articles=80&#034;&gt;80&lt;/a&gt; | &lt;a href=&#034;#debut_articles=1020&#034;&gt;...&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Le num&#233;ro &#224; partir duquel les r&#233;sultats sont affich&#233;s est pass&#233; dans l'url via un param&#232;tre &lt;a id=&#034;debut_---&#034;&gt;&lt;/a&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{debut_page=x}&lt;/code&gt; portant le m&#234;me nom (ici, &#171; page &#187;) que la boucle concern&#233;e. (Ce param&#232;tre est exploitable dans une autre boucle via le crit&#232;re classique &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{debut_page,10}&lt;/code&gt;.)&lt;/p&gt;
&lt;p&gt;A noter : le nombre total de liens affich&#233;s est limit&#233; ; des points de suspension permettent, le cas &#233;ch&#233;ant, d'aller directement &#224; la toute fin de la liste, ou de revenir au tout-d&#233;but.&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;ancre&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Ancres-de-pagination&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Ancres-de-pagination'&gt;Ancres de pagination&lt;a class='sommaire-back sommaire-back-9' href='#s-Ancres-de-pagination' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La balise &lt;tt&gt;#PAGINATION&lt;/tt&gt; comporte une ancre HTML qui permet au navigateur d'afficher directement la partie de la page qui est pagin&#233;e ; toutefois si l'on veut mettre les liens de pagination &lt;i&gt;en dessous&lt;/i&gt; de la liste des articles, il faut pouvoir placer l'ancre &lt;i&gt;au-dessus&lt;/i&gt; de la liste.&lt;/p&gt;
&lt;p&gt;C'est &#224; cela que sert la balise &lt;i&gt;&lt;a href='https://www.spip.net/fr_article4328.html' class=&#034;spip_in&#034;&gt;#ANCRE_PAGINATION&lt;/a&gt;&lt;/i&gt;, qui retourne l'ancre en question, et interdit &#224; la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION&lt;/code&gt; suivante d'afficher son ancre.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;B_page&gt; #ANCRE_PAGINATION &lt;ul&gt; &lt;BOUCLE_page(ARTICLES){par date}{pagination}&gt; &lt;li&gt;#TITRE&lt;/li&gt; &lt;/BOUCLE_page&gt; &lt;/ul&gt; [&lt;nav role=&#034;navigation&#034; class=&#034;pagination&#034;&gt;(#PAGINATION)&lt;/nav&gt;] &lt;/B_page&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Inversement, pour ne pas ancrer, on pr&#233;cisera &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;[(#ANCRE_PAGINATION|vide)]&lt;/code&gt; dans la boucle.&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;acces_direct&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Acces-direct-a-un-element-particulier&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Acces-direct-a-un-element-particulier'&gt;Acc&#232;s direct &#224; un &#233;l&#233;ment particulier&lt;a class='sommaire-back sommaire-back-9' href='#s-Acces-direct-a-un-element-particulier' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Pour permettre de donner une URL permanente vers un &#233;l&#233;ment pr&#233;cis d'une liste pagin&#233;e on utilisera &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&amp;debut_abc=@xxx&lt;/code&gt; o&#249; &#171; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;abc&lt;/code&gt; &#187; est le nom de la boucle de pagination et &#171; &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;xxx&lt;/code&gt; &#187; l'id de l'objet dans la table sur laquelle porte la pagination.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple&lt;/strong&gt; : Dans une boucle&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;B_pagi&gt; [&lt;nav role=&#034;navigation&#034; class=&#034;pagination&#034;&gt;(#PAGINATION)&lt;/nav&gt;] &lt;ul&gt; &lt;BOUCLE_pagi(ARTICLES){par titre}{pagination}&gt; &lt;li&gt;#ID_ARTICLE : #TITRE&lt;/li&gt; &lt;/BOUCLE_pagi&gt; &lt;/ul&gt; &lt;/B_pagi&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&amp;debut_pagi=10&lt;/code&gt; place la pagination sur la deuxi&#232;me page (&#224; partir du &lt;i&gt;dixi&#232;me&lt;/i&gt; &#233;l&#233;ment de la liste)&lt;br class='manualbr' /&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;&amp;debut_pagi=@231&lt;/code&gt; place la pagination sur la page qui contient l'id_article &#171; 231 &#187;.&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;grand_total&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Le-nombre-total-de-resultats&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Le-nombre-total-de-resultats'&gt;Le nombre total de r&#233;sultats&lt;a class='sommaire-back sommaire-back-9' href='#s-Le-nombre-total-de-resultats' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Dans une boucle avec le crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{pagination}&lt;/code&gt;, &lt;a href='https://www.spip.net/fr_article4334.html' class=&#034;spip_in&#034;&gt;#TOTAL_BOUCLE&lt;/a&gt; affiche le nombre d'&#233;l&#233;ments effectivement retourn&#233;s, c'est-&#224;-dire 10 sur les pages pleines, et 10 ou moins sur la derni&#232;re page de r&#233;sultats.&lt;/p&gt;
&lt;p&gt;Pour afficher le nombre d'&#233;l&#233;ments qui &lt;strong&gt;auraient &#233;t&#233; retourn&#233;s&lt;/strong&gt; si le crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{pagination}&lt;/code&gt; n'avait pas &#233;t&#233; l&#224;, utilisez la balise &lt;strong&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#GRAND_TOTAL&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;B_pagination&gt; #ANCRE_PAGINATION &lt;BOUCLE_pagination (ARTICLES) {pagination}&gt; #TITRE &lt;br&gt; &lt;/BOUCLE_pagination&gt; Il y a au total #GRAND_TOTAL articles, cette page en affiche #TOTAL_BOUCLE &lt;/B_pagination&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;indiquera : &#171; Il y a au total 1578 articles, cette page en affiche 10. &#187;&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;pas&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Changer-le-pas-de-la&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Changer-le-pas-de-la'&gt;Changer le pas de la &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{pagination}&lt;/code&gt;&lt;a class='sommaire-back sommaire-back-9' href='#s-Changer-le-pas-de-la' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Le nombre standard de 10 &#233;l&#233;ments par page peut &#234;tre modifi&#233; par un param&#232;tre suppl&#233;mentaire dans le crit&#232;re.&lt;/p&gt;
&lt;p&gt;Ainsi&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_page(ARTICLES){pagination 5}&gt; #TITRE&lt;br&gt; &lt;/BOUCLE_page&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;retournera les titres de cinq articles &#224; partir de &lt;i&gt;debut_page&lt;/i&gt;.&lt;/p&gt;
&lt;p&gt;Le param&#232;tre en question peut lui-m&#234;me &#234;tre compos&#233; comme on le souhaite &#224; partir d'autres balises, notamment &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#ENV{xx}&lt;/code&gt;, ce qui permet de faire un affichage &#224; la demande tr&#232;s complet.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;La-pagination-dans-les-squelettes-inclus&#034;&gt;&lt;h2 class=&#034;h2&#034; id='La-pagination-dans-les-squelettes-inclus'&gt; La pagination dans les squelettes inclus&lt;a class='sommaire-back sommaire-back-9' href='#s-La-pagination-dans-les-squelettes-inclus' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Si votre pagination doit fonctionner dans un squelette inclus, vous &lt;strong&gt;devez&lt;/strong&gt; passer en param&#232;tre de la commande &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;INCLURE&lt;/code&gt; la formulation &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{ajax, env}&lt;/code&gt; ; ceci permet au squelette inclus de se calculer avec la bonne valeur du param&#232;tre &lt;tt&gt;debut_xxx&lt;/tt&gt;, et se justifie qui plus est par un besoin de s&#233;curit&#233; (la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION&lt;/code&gt; est en effet calcul&#233;e &#224; partir de l'URL compl&#232;te de la page).&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;nommer_critere&#034;&gt;&lt;/a&gt;&lt;br class='autobr' /&gt;
&lt;strong&gt;Nommer le crit&#232;re de pagination&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Lorsque l'on utilise des squelettes inclus plusieurs fois dans la m&#234;me page comme :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;BOUCLE_incluse(ARTICLES){id_rubrique}{par titre}&gt; &lt;INCLURE{fond=motsgroupe5,id_article,ajax,env}&gt; &lt;/BOUCLE_incluse&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;et que cet &lt;i&gt;INCLURE&lt;/i&gt; poss&#232;de une pagination (d'o&#249; l'utilisation du crit&#232;re &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{env}&lt;/code&gt;), lorsque vous cliquerez sur une pagination, vous verrez toutes les paginations se modifier en m&#234;me temps.&lt;/p&gt;
&lt;p&gt;Pour &#233;viter cela, il suffit de &lt;strong&gt;nommer le crit&#232;re pagination&lt;/strong&gt; &#224; l'int&#233;rieur du fichier inclu par un nom qui sera diff&#233;rent &#224; chaque inclusion :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;B_groupe5&gt; #ANCRE_PAGINATION &lt;BOUCLE_groupe5(MOTS){id_groupe=5}{pagination 15, #ID_ARTICLE}&gt; #TITRE&lt;br&gt; &lt;/BOUCLE_groupe5&gt; [&lt;nav role=&#034;navigation&#034; class=&#034;pagination&#034;&gt;(#PAGINATION)&lt;/nav&gt;] &lt;/B_groupe5&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;On peut aussi vouloir sp&#233;cifier d&#232;s l'appel de l'INCLURE le nom que l'on veut donner au crit&#232;re pagination :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;INCLURE{fond=page_paginee, env, nom_p=_abc}&gt; &lt;INCLURE{fond=page_paginee, env, nom_p=_def}&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;dans page_paginee.html :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;&lt;B_a&gt; #ANCRE_PAGINATION &lt;BOUCLE_a(ARTICLES){pagination 25, #ENV{nom_p}}&gt; #TITRE&lt;br&gt; &lt;/BOUCLE_a&gt; [&lt;nav role=&#034;navigation&#034; class=&#034;pagination&#034;&gt;(#PAGINATION)&lt;/nav&gt;] &lt;/B_a&gt; &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Styles-de-la-pagination&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Styles-de-la-pagination'&gt;Styles de la pagination&lt;a class='sommaire-back sommaire-back-9' href='#s-Styles-de-la-pagination' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La pagination est constitu&#233;e d'une s&#233;rie de liens, et d'un num&#233;ro de page correspondant &#224; la page actuelle dot&#233; de la class &#171; .on &#187; : on d&#233;finira donc les styles pour &lt;tt&gt;a&lt;/tt&gt; et &lt;tt&gt;.on&lt;/tt&gt; pour en personnaliser l'apparence.&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Choisir-le-modele-de-pagination&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Choisir-le-modele-de-pagination'&gt;Choisir le mod&#232;le de pagination&lt;a class='sommaire-back sommaire-back-9' href='#s-Choisir-le-modele-de-pagination' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;La balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION&lt;/code&gt; accepte un param&#232;tre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;{modele}&lt;/code&gt;, qui permet de modifier le r&#233;sultat de la balise.&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;pagination_articles&#034;&gt;&lt;/a&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION{precedent_suivant}&lt;/code&gt; affichera des liens vers les pages pr&#233;c&#233;dentes et suivantes. Les liens seront les suivants&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;&lt;p class=&#034;pagination&#034;&gt;&lt;a href='#pagination_articles' class='lien_pagination'&gt;page pr&#233;c&#233;dente&lt;/a&gt; | &lt;a href='#pagination_articles' class='lien_pagination'&gt;page suivante&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a id=&#034;debut_articles&#034;&gt;&lt;/a&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION{page}&lt;/code&gt; affichera quelque chose de la forme suivante&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;&lt;p class=&#034;pagination&#034;&gt;&lt;span class=&#034;on&#034;&gt;1&lt;/span&gt; | &lt;a href=&#034;#debut_articles=10&#034;&gt;2&lt;/a&gt; | &lt;a href=&#034;#debut_articles=20&#034;&gt;3&lt;/a&gt; | &lt;a href=&#034;#debut_articles=30&#034;&gt;4&lt;/a&gt; | &lt;a href=&#034;#debut_articles=40&#034;&gt;5&lt;/a&gt; | &lt;a href=&#034;#debut_articles=50&#034;&gt;6&lt;/a&gt; | &lt;a href=&#034;#debut_articles=60&#034;&gt;7&lt;/a&gt; | &lt;a href=&#034;#debut_articles=70&#034;&gt;8&lt;/a&gt; | &lt;a href=&#034;#debut_articles=80&#034;&gt;9&lt;/a&gt; | &lt;a href=&#034;#debut_articles=1020&#034;&gt;...&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a id=&#034;autre_pagination_articles&#034;&gt;&lt;/a&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION{page_precedent_suivant}&lt;/code&gt; affichera quelque chose comme&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;&lt;p class=&#034;pagination&#034;&gt;&lt;a href='#pagination_articles' class='lien_pagination'&gt;page pr&#233;c&#233;dente&lt;/a&gt; &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;1&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;2&lt;/a&gt; | &lt;span class=&#034;on&#034;&gt;3&lt;/span&gt;	| &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;4&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;5&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;6&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;page suivante&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a id=&#034;pagination_prive&#034;&gt;&lt;/a&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION{prive}&lt;/code&gt; affichera quelque chose comme&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;&lt;p class=&#034;pagination&#034;&gt;&lt;span class=&#034;pages&#034;&gt;&lt;strong class=&#034;on&#034;&gt;0&lt;/strong&gt;&lt;span class=&#034;sep&#034;&gt; | &lt;/span&gt;&lt;a rel=&#034;nofollow&#034; class=&#034;lien_pagination bind-ajax&#034; href='https://www.spip.net/?debut_liste_art=10#pagination_liste_art'&gt;10&lt;/a&gt;&lt;span class=&#034;sep&#034;&gt; | &lt;/span&gt;&lt;a rel=&#034;nofollow&#034; class=&#034;lien_pagination bind-ajax&#034; href='https://www.spip.net/?debut_liste_art=20#pagination_liste_art'&gt;20&lt;/a&gt;&lt;span class=&#034;sep&#034;&gt; | &lt;/span&gt;&lt;a rel=&#034;nofollow&#034; class=&#034;lien_pagination bind-ajax&#034; href='https://www.spip.net/?debut_liste_art=30#pagination_liste_art'&gt;30&lt;/a&gt;&lt;/span&gt; &lt;span class=&#034;all&#034;&gt;&lt;span class=&#034;sep&#034;&gt; | &lt;/span&gt;&lt;a rel=&#034;nofollow&#034; class=&#034;lien_pagination bind-ajax&#034; href='https://www.spip.net/?debut_liste_art=-1#pagination_liste_art'&gt;Tout afficher&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Il est possible de d&#233;finir d'autres mod&#232;les de pagination dans le dossiers &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;modeles/&lt;/code&gt; de votre jeu de squelettes. Ils devront s'appeler &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;pagination_nomdumodele&lt;/code&gt;. On pourra, pour les fabriquer, s'inspirer de ceux livr&#233;s de base avec SPIP et situ&#233;s dans le r&#233;pertoire &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;prive/modeles/&lt;/code&gt;&lt;/p&gt;
&lt;/section&gt;&lt;section class=&#034;sommaire-section sommaire-section_niveau1 sommaire-section_h2&#034; aria-labelledby=&#034;Personnaliser-le-modele-de-pagination&#034;&gt;&lt;h2 class=&#034;h2&#034; id='Personnaliser-le-modele-de-pagination'&gt;Personnaliser le mod&#232;le de pagination&lt;a class='sommaire-back sommaire-back-9' href='#s-Personnaliser-le-modele-de-pagination' title='Retour au sommaire'&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Chaque mod&#232;le poss&#232;de des param&#232;tres qu'il est possible de personnaliser.&lt;/p&gt;
&lt;p&gt;Par exemple, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION{page_precedent_suivant}&lt;/code&gt; affiche par d&#233;faut :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;&lt;p class=&#034;pagination&#034;&gt;&lt;a href='#pagination_articles' class='lien_pagination'&gt;page pr&#233;c&#233;dente&lt;/a&gt; &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;1&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;2&lt;/a&gt; | &lt;span class=&#034;on&#034;&gt;3&lt;/span&gt;	| &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;4&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;5&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;6&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;page suivante&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION{page_precedent_suivant, label_precedent=&lt;, label_suivant=&gt;}&lt;/code&gt; affiche :&lt;/p&gt;
&lt;blockquote class=&#034;spip&#034;&gt;&lt;p class=&#034;pagination&#034;&gt;&lt;a href='#pagination_articles' class='lien_pagination'&gt;&lt;&lt;/a&gt; &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;1&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;2&lt;/a&gt; | &lt;span class=&#034;on&#034;&gt;3&lt;/span&gt;	| &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;4&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;5&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;6&lt;/a&gt; | &lt;a href='#autre_pagination_articles' class='lien_pagination'&gt;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Configurer l'adresse des liens de #PAGINATION&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&#192; partir de SPIP 3.2.8, il devient possible de sp&#233;cifier quelle URL doit servir de base pour les liens g&#233;n&#233;r&#233;s par la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Par exemple, cela permet, si n&#233;cessaire, de nettoyer une variable d'URL ind&#233;sirable : &lt;br class='autobr' /&gt;
&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION{prive,self=#SELF|parametre_url{...}}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Configurer le nombre de liens &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Depuis SPIP 4.0, les diff&#233;rents mod&#232;les de pagination acceptent un param&#232;tre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nombre_liens_max&lt;/code&gt; qui, pass&#233; a la balise &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION&lt;/code&gt; permet de d&#233;finir le nombre de lien de pagination maximum affich&#233; par le mod&#232;le. On peut &#233;galement employer la constante &lt;a href='https://www.spip.net/fr_article6642.html' class=&#034;spip_in&#034;&gt;&lt;code class='spip_code spip_code_inline' dir='ltr'&gt;_PAGINATION_NOMBRE_LIENS_MAX&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;D&#233;finir un nouveau mod&#232;le de pagination&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il est possible de surcharger un mod&#232;le de pagination existant ou d'en d&#233;finir un nouveau dans le dossier &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;modeles&lt;/code&gt; de votre squelette ou plugin. Pour cela, cr&#233;ez le fichier de ce nouveau mod&#232;le avec le nom d&#233;sir&#233;. Ainsi le mod&#232;le &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;legere.html&lt;/code&gt;, vous permet d'utiliser &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;#PAGINATION{legere}&lt;/code&gt; dans vos squelettes.&lt;/p&gt;
&lt;p&gt;Les mod&#232;les de paginations re&#231;oivent des variables d'environnement dont ils peuvent faire usage : &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;page_courante&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nombre_pages&lt;/code&gt;, &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;bloc_ancre&lt;/code&gt;. Ils peuvent aussi utiliser le filtre &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;|bornes_pagination&lt;/code&gt; qui renvoie les bornes de la pagination cr&#233;&#233;e.&lt;br class='autobr' /&gt;
Pour vous faciliter la t&#226;che, vous pouvez commencer en reprenant le code d'un mod&#232;le de pagination livr&#233; avec SPIP et l'adapter &#224; vos besoins.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ne pas enregistrer dans l'historique du navigateur&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Il faut pour cela associer la classe CSS &lt;code class='spip_code spip_code_inline' dir='ltr'&gt;nohistory&lt;/code&gt; au lien ajax (voir &lt;a href='https://www.spip.net/fr_article3753.html#Modalites-complementaires' class=&#034;spip_in&#034;&gt;`&lt;i&gt;ajax&lt;/i&gt;` pour les `inclure`&lt;/a&gt;) :&lt;/p&gt;
&lt;div class=&#034;precode&#034;&gt;&lt;pre data-language=&#034;spip&#034; class='spip_code spip_code_block language-spip' dir='ltr' style='text-align:left;'&gt;&lt;code&gt;[&lt;nav role=&#034;navigation&#034; class=&#034;pagination&#034;&gt; (#PAGINATION{precedent_suivant}|replace{lien_pagination,lien_pagination nohistory}) &lt;/nav&gt;] &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/section&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
