Mélusine et Lut m'ont souvent demandé comment mettre un système de numérotation des pages qui permette à ce qu'en cliquant par exemple sur le numéro 5, on aille à la page 5 du blog (le 5ème article récemment publié).
Je suis tombé ce matin sur une astuce de Mohamed Rias qui permet d'arriver à cette fin. Voyez l'image pour vous en convaincre.

Vous pouvez aussi voir l'astuce en live sur Blogger accessories.
Comment intégrer la numérotation des pages pour naviguer au travers des articles sur Blogger ?
1. Se connecter sur son compte, puis aller sur "mise en page", "modifier le code html" (pas besoin de cocher sur "développer des modèles de gadget".
2. Mettre le code suivant avant la balise ]]></b:skin>
1. Se connecter sur son compte, puis aller sur "mise en page", "modifier le code html" (pas besoin de cocher sur "développer des modèles de gadget".
2. Mettre le code suivant avant la balise ]]></b:skin>
.showpageArea {font-size: 11px; width:470px;background: url(http://i263.photobucket.com/albums/ii150/mohamedrias/ShowPagenavbar.jpg) no-repeat left top; padding-top:10px;padding-bottom:10px;padding-right:15px;padding-left:30px; color:#003366;text-align:left;
}
.showpageArea a {
color:#0F0;
text-decoration:underline;
}
.showpageNum a {
text-decoration:none;
color:#0F0;
border:1px solid #FFF;
margin:0 10px;
padding:0 5px 0 8px;
}
.showpageNum a:hover {
color:#FE8314;
border:1px solid #0071A5;
background-color:#FFF;
}
.showpagePoint {
color:#FE8314;
margin:0 8px 0 4px;
}
.showpage a {
text-decoration:none;
color:#FFF;
padding:0 2px 0 4px;
}
.showpage a:hover {
color:#FE8314;
text-decoration:underline;
} .showpageNum a:link,.showpage a:link {
text-decoration:none;
color:#cc0000;
}
Vous pouvez enlever l'url de l'image si vous préférez ne pas la mettre.
3. Trouvez la portion les codes suivants :
<b:section class='main' id='main' showaddelement='yes'>
<b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog'/>
</b:section>
4. Mettre la partie ci-après juste après </b:section>
<script type="text/javascript">
function showpageCount(json) {
var thisUrl = location.href;
var htmlMap = new Array();
var isFirstPage = thisUrl.substring(thisUrl.length-14,thisUrl.length)==".blogspot.com/";
var isLablePage = thisUrl.indexOf("/search/label/")!=-1;
var isPage = thisUrl.indexOf("/search?updated")!=-1;
var thisLable = isLablePage ? thisUrl.substr(thisUrl.indexOf("/search/label/")+14,thisUrl.length) : "";
thisLable = thisLable.indexOf("?")!=-1 ? thisLable.substr(0,thisLable.indexOf("?")) : thisLable;
var thisNum = 1;
var postNum=1;
var itemCount = 0;
var fFlag = 0;
var eFlag = 0;
var html= '';
var upPageHtml ='';
var downPageHtml ='';
var pageCount = 2;
var displayPageNum = 3;
var upPageWord = 'Précedente';
var downPageWord = 'Suivante';
var labelHtml = '<span class="showpageNum"><a href="/search/label/'+thisLable+'?&max-results='+pageCount+'">';
for(var i=0, post; post = json.feed.entry[i]; i++) {
var timestamp = post.published.$t.substr(0,10);
var title = post.title.$t;
if(isLablePage){
if(title!=''){
if(post.category){
for(var c=0, post_category; post_category = post.category[c]; c++) {
if(encodeURIComponent(post_category.term)==thisLable){
if(itemCount==0 || (itemCount % pageCount ==(pageCount-1))){
if(thisUrl.indexOf(timestamp)!=-1 ){
thisNum = postNum;
}
postNum++;
htmlMap[htmlMap.length] = '/search/label/'+thisLable+'?updated-max='+timestamp+'T00%3A00%3A00%2B08%3A00&max-results='+pageCount;
}
}
}
}//end if(post.category){
itemCount++;
}
}else{
if(title!=''){
if(itemCount==0 || (itemCount % pageCount ==(pageCount-1))){
if(thisUrl.indexOf(timestamp)!=-1 ){
thisNum = postNum;
}
if(title!='') postNum++;
htmlMap[htmlMap.length] = '/search?updated-max='+timestamp+'T00%3A00%3A00%2B08%3A00&max-results='+pageCount;
}
}
itemCount++;
}
}
for(var p =0;p< htmlMap.length;p++){
if(p>=(thisNum-displayPageNum-1) && p<(thisNum+displayPageNum)){
if(fFlag ==0 && p == thisNum-2){
if(thisNum==2){
if(isLablePage){
upPageHtml = labelHtml + upPageWord +'</a></span>';
}else{
upPageHtml = '<span class="showpage"><a href="/">'+ upPageWord +'</a></span>';
}
}else{
upPageHtml = '<span class="showpage"><a href="'+htmlMap[p]+'">'+ upPageWord +'</a></span>';
}
fFlag++;
}
if(p==(thisNum-1)){
html += '<span class="showpagePoint"><u>'+thisNum+'</u></span>';
}else{
if(p==0){
if(isLablePage){
html = labelHtml+'1</a></span>';
}else{
html += '<span class="showpageNum"><a href="/">1</a></span>';
}
}else{
html += '<span class="showpageNum"><a href="'+htmlMap[p]+'">'+ (p+1) +' </a></span>';
}
}
if(eFlag ==0 && p == thisNum){
downPageHtml = '<span class="showpage"> <a href="'+htmlMap[p]+'">'+ downPageWord +'</a></span>';
eFlag++;
}
}//end if(p>=(thisNum-displayPageNum-1) && p<(thisNum+displayPageNum)){
}//end for(var p =0;p< htmlMap.length;p++){
if(thisNum>1){
if(!isLablePage){
html = '<span class="showpage"><a href="/"></a></span>'+upPageHtml+' '+html +' ';
}else{
html = ''+labelHtml + +' </a></span>'+upPageHtml+' '+html +' ';
}
}
html = '<div class="showpageArea"><span style="COLOR: #000;" class="showpage"> Pages ('+(postNum-1)+'): </span>'+html;
if(thisNum<(postNum-1)){
html += downPageHtml;
}
if(postNum==1) postNum++;
html += '</div>';
if(isPage || isFirstPage || isLablePage){
var pageArea = document.getElementsByName("pageArea");
var blogPager = document.getElementById("blog-pager");
if(postNum <= 2){
html ='';
}
for(var p =0;p< pageArea.length;p++){
pageArea[p].innerHTML = html;
}
if(pageArea&&pageArea.length>0){
html ='';
}
if(blogPager){
blogPager.innerHTML = html;
}
}
}
</script>
<script src="/feeds/posts/summary?alt=json-in-script&callback=showpageCount&max-results=99999"; type="text/javascript"></script><div style='text-align:right;font-size:10px;color:000000;margin-top:15px;'> <a href="http://rias-techno-wizard.blogspot.com/">Blogger accessories</a><a href='http://blogger-au-bout-du-doigt.blogspot.com/2008/08/numeroter-les-pages-sur-blogger.html'>Obtenir ce Widget ~ </a> </div>
Dans le code ci-haut, vous pouvez changer les lignes en rouge à votre souhait.
1 : var pageCount = 2;
Le chiffre en rouge représente le nombre d'article qui sera affiché sur une page. Vous pouvez changer le nombre pour afficher plus de 2 articles sur la page ou moins de 2 articles (1, pas O).
2 : var displayPageNum = 3;
Le chiffre en rouge ci-haut représente le nombre de page à afficher entre Précedente et suivante.
Par exemple, si vous choisissez 7, vous aurez quelque chose du genre :
Précendente 1,2,3,4,5,6,7 Suivante
3 :
var upPageWord = 'Précedente';
var downPageWord = 'Suivante
Vous pouvez changer le terme précedente et suivante par ceux que vous désirez.
Enregistrez le modèle.
Si vous avez mis un Widget libellé, vous remarquerez que tous les articles s'afficeront sur les pages de libellé quand on clique sur l'un d'eux. Pour remedier à ce problème :
5. Cocher sur la case "Développer des modèles de gadget"
6. Trouver la ligne de code suivante :
<b:widget id='Label1' locked='false' title='Labels' type='Label'>
Dans ce widget, trouvez la portion de suivante :
<a expr:dir='data:blog.languageDirection' expr:href='data:label.url'>
<data:label.name/>
</a>
</b:if>
<span dir='ltr'>(<data:label.count/>)</span>
Remplacez le code ci-haut par celui-ci :
<a expr:dir='data:blog.languageDirection' expr:href='data:label.url + "?max-results=2"'>
<data:label.name/>
<span dir='ltr'>(<data:label.count/>)</span>
</a>
</b:if>
Le chiffre en rouge représente le nombre d'article à afficher sur une page libellé. Changez-le par un autre si vous désirez et enregistrez le modèle.
A+
Bonjour,
RépondreSupprimerj'ai essayer de faire marquer ça chez moi mais rien à faire ! Impossible d'enregistrer le blog après le copier/coller du code à mettre "juste avant </b:section>". Le blog me dit : "Message d'erreur XML : The reference to entity "max-results" must end with the ';' delimiter."
Alors j'ai chercher de toutes les manières possibles comment fermer ce code, mais rien à faire ! Alors le problème viens peut-être d'ailleurs : avant de coller mon code je l'ai "nettoyer" en remplaçant les < par des < (de même pour le reste des caractères spéciaux) car il m'affichait un message d'erreur disant que j'avais mal fermé une balise div... bref je ne vois vraiment pas ce qui cloche, qqn a une idée ? ou pourrait m'envoyer le code "au propre" qu'il faut réellement que je colle pour qu'il n'y ai pas d'erreur de syntaxe ?
Merci
Coucou Rodney ;-) ...
RépondreSupprimerMerci beaucoup à toi pour m'avoir permis de découvrir ce hack :D ...
Cela dit, j'ai également découvert que l'auteur de cette pagination en avait fait un widget (que je trouve pour ma part beaucoup plus pratique ^^) disponible ici ->Page Navigation Menu Widget for Blogger
Voili voilou ;-) ...
Je crois qu'il y a des erreurs dans ton code, les balises ne sont pas affichées correctement... Il faudrait que tu revois le code ^^
RépondreSupprimerJe n'arrive pas à faire fonctionner ce code sur mon blog, il y a toujours un problème de syntaxe qui gène l'enregistrement du modèle... quelqu'un peut m'aider ?
RépondreSupprimer4. Mettre la partie ci-après juste avant < / b : section>
RépondreSupprimerNon, il faut la mettre juste après (si le code est le meme que celui donné sur le blog anglais)
juste après le < / b : section> ? mais pourtant le tuto dis "juste avant" (et ça parait plus logique)...
RépondreSupprimer@ Véronique : Il faut mettre juste après comme dit dans le commentaire anonyme. J'ai souvent eu des problèmes avec le terme anglais "below" que je traduis souvent par "avant" alors que cela veut dire "en dessous". Sinon, je vais corriger cette erreur dans le tuto.
RépondreSupprimerTu devrais tester les astuces sur un blog pour verifier les codes ;)
RépondreSupprimerIl semble que la balise div de fin où tu as voulu rajouter un liens vers ton blog n'est pas fermée, c'est pour ça que blogger refuse l'neregistrement du code.
@ Anonyme : c'est drôle comment tu es fort (si c'est toi qui a laissé tous les commentaires intéressants et anonymes ces 10 derniers jours).
RépondreSupprimerEuh non... j'en ai juste laissé 2-3 (pas plus)
RépondreSupprimerBon, j'ai suivis vos instructions (à savoir mettre le code "après" et non "avant" et fermer la dernière balise div, le code s'enregistre mais la numérotation des pages n'apparait pas ! On ne vois que les liens (tout en bas) --> "Blogger accessories" et "Obtenir ce Widget ~"
RépondreSupprimerBref, qu'est-ce qui cloche encore ? XD
Pourquoi je n'ai pas la numérotation des pages qui apparaît ?
@ Anonyme : je crois que c'est justement de ces 2 ou 3 commentaires que je parle (dans la liste des voeux et ailleurs). Sinon, je te dis merci. Sauf, ce serait quand même mieux si tu te tapais un pseudo (du genre "le blogger invisible) comme ça je te distinguerais des autres anonymes.
RépondreSupprimer@ Véronique D : Je crois qu'il va falloir que je fasse une nuit blanche pour bien étudier ce code. Sinon, essai de voir celui en version widget évoqué par Opaline (commentaire n° 2).
Merci Rodney mais il semblerait que finalement ce ne soit pas nécessaire ^-^ Les numérotations on finit par apparaître ! Merci infiniment pour ce tuto et pour votre aide Rodney et... le mystérieux "Anonyme" ;)
RépondreSupprimerEuh c'est moi l'anonyme du 24 aout,
RépondreSupprimerqui te dis que la balise n'est pas fermée.
Désolée d'avoir mis anonyme j'ai fait un peu rapidement (et surtout ça ne marchais pas quand je voulais mettre mon nom)!
J'espere que ton commentaire "c'est drole comme tu es fort" n'étais pas méchant.
Je disais pas ça méchament, mais c'est vrai qu'un blog test te permettrais de tester les astuces et effacer ce petit genre d'erreur pas grave. ... c'était pas méchant.
@ Anaïs : Pourquoi être méchant envers quelqu'un qui nous aide à résoudre un problème ? Ne vois tu pas le sourire sur mon visage ?
RépondreSupprimerSi je n'avais pas pris le temps de tester ce code c'est pour deux raisons :
1. J'avais remarqué qu'il marche bien sur deux blogs qui l'avaient implanté (aujourd'hui trois que j'ai déjà vu)
2. Je suis un peu trop coincé avec le temps ces jours-ci, comprend la baisse de publication ces derniers temps.
Sinon, Merci encore à toi pour l'aide que tu nous apporte.
Oui Anaïs, cette balise div m'a posé pas mal de soucis donc encore une fois : vraiment merci ! (Mais, encore une fois aussi, merci Rodney pour le tuto et l'aide)
RépondreSupprimerBon moi ca ne marche pas et je suis une buse complète en html !
RépondreSupprimerNon le code ne fonctionne pas et je cherche sur le web en vain
RépondreSupprimerchez moi ça marche difficilement pourtant j'essaie..
RépondreSupprimeren fait mes labels en nuages et du coup les pages se retrouvents également en forme de liste se qui m'embete bien.Dois je créé un nouveau widget ou du moins une autre id ?ça m'énerve. de plus ça ne fonstionne pas correctement par rapport au page si je clique sur la 5 je meretrouve sur la 13 ou en plus il n'y a rien...
pfff....
j'ai mis le widget et ça marche impeccable! merci pour vos astuces ;-))
RépondreSupprimerBonjour,
RépondreSupprimerJe suis novice mais j'ai réussi à appliquer ces modif. Le problème est que quand je clique sur suivant, les numéros de pages entre "précédente" et "suivante" augmente ; les premiers chiffres ne s'effacent pas.
Par exemple,
page d'accueil : "1 2 3 4 5 Suivante"
page 5 : "Précédente 1 2 3 4 5 6 7 8 9 Suivante"
Comment faire pour remédier à ce problème ?
Merci d'avance
Elodie
Bonjour Rodney et merci beaucoup pour ce code HTML que non seulement j'ai réussi à installer mais que j'ai aussi réussi à fondre dans mon blog!!
RépondreSupprimerJ'ai juste un petit soucil: quelque soit le chiffre que je mette pour "var displayPageNum" toute les chiffres apparaissent et en plus, sur la derniere page, il n'affiche pas les articles, ce qui est plus embetant!!
Aurais-tu une solution à cela?
Bonjour!
RépondreSupprimerMerci pour tout ces scripts géniaux!
Celui-ci marche très bien sur mon blog et est très pratique!
Par contre j'ai remarqué que parfois si par exemple on as :
Précendente 1,2,3,4,5,6,7 Suivante
le dernier message peu se trouvé sur la page 6 et donc si on clique sur la page 7 celle-ci n'affiche aucuns messages. Mais ce n'est pas très gênant.
Et petite précision au cas où : il faut bien penser à choisir "message" et mettre le même chiffre dans :
"Paramètre" -> "Mise en forme" : "Afficher X messages sur la page principale."
que après "var pageCount" sinon la première page n'auras pas le bon nombre de messages (ce qui est plutôt gênant si le premier chiffre est plus petit):D
:(( ça ne marche pas!!!
RépondreSupprimerJ'ai réussit à faire fonctionner les code sur mon premier blog, mais pas sur le deuxième...:((
RépondreSupprimerJe croit que le problème vient des caractères spéciaux sont remplacés par leurs codes dans le script. Par exemple on a un truc comme "<" aux lieux de "<"
Es ce que le code peu être corriger si il y a une erreur?
Merci!
bonjour,
RépondreSupprimerje viens de faire les démarches énoncées dans ton article pour la pagination, et ça marche, sauf que j'ai un fond bleu foncé avec quelque-chose d'écrit indéchiffrable en fond d'écran, juste à l'endroit où il y a les numéros de page... comment enlever ceci??
Rien à faire, j'y arrive pas. Ni avec le widget ni avec la modification du code HTML. ça ne fait pas bugguer le blog, c'est juste que les pages ne s'affichent pas. il y a encore "message plus anciens". Vous auriez pas le moyen de changer le nom de "message plus anciens" en "page suivante", sinon, svp ?
RépondreSupprimerAlors j'ai essayé de suivre tes conseils .
RépondreSupprimerCa marchait super bien.
Et d'un coup , je m'aperçoit que les premières pages de mon blog on disparues !!!!
Aide moi s'il te plait !!!!
@ Dark Angel : Suis les mêmes étapes pour enlever les modifications faites et quand tu recommencera, garde d'abord une copie de ton modèle pour vite pallier aux problèmes qui peuvent se poser.
RépondreSupprimerben c'est ce que j'ai fait , j'ai réussi a tout remettre comme c'était mais du coup mes pages sont plus numérotées ! Pffff ! Je trouve ça tellement plus pratique la numération des pages
RépondreSupprimerBonjour,
RépondreSupprimerJe veux une astuce me permet de faire navigation sauf entre les articles d'une libellé!!
bonjour. tout d'abord merci pour tes tuto. moi j aimerais bien savoir comment s'y prendre pour ajouté des onglet comme ta sur ta page ASTUCES,WIDGETS,CONSEILS,MODÈLES BLOGGER,SEO,TRAFIC,VOS VOEUX)
RépondreSupprimerstp rep moi
@ TiDdus : Vois la foire aux questions (colonne gauche, Pour les débutants). Il y a ce que tu cherche.
RépondreSupprimerca fonctionne bien mais pas sur les blogs a 3 colonnes
RépondreSupprimerjais un blog a 2 colonnes mais j'arrive pas
RépondreSupprimera l'aide les gens
RépondreSupprimersalut rodney
RépondreSupprimery a t'il un solution d'augmenter les pages de mon blog il m'en donner 10 pages maximum ,j'attens votre aide
et merci d'avance
Bonjour Rodney, je cherche une manière d'ajouter ce code à la version "classique" de blogger, est-ce possible?
RépondreSupprimerMerci de votre aide
Ca marche super, mais les chiffres indiqués ici:
RépondreSupprimer"var pageCount = 2;
var displayPageNum = 3;"
ne sont pas respectés. Je me retrouve avec plusieurs lignes de pages, c'est gênant.
pourquoi mon commentaire n'apparait pas
RépondreSupprimerj'essaie a nouveau
RépondreSupprimerbonjour
ma numérotation de page apparait sur le haut de mon blog alors qu'il devrait être en bas
voir sur mon blog
http://www.surlesroutesducoudon.com/
merci de votre aide
frederik
je vois que mes coms sont effacés?????
RépondreSupprimerpourquoi?
je ne sais, en tout cas c'est pas moi qui les ai effacé. Les derniers commentaires que j'ai effacé datent d'il y a plus de 3 jours et ils avaient un contenu sans aucun rapport avec les articles (en majorité des liens publicitaires). Normalement, on n'efface pas des commentaires ici.
RépondreSupprimerbonjour rodney
RépondreSupprimerest-ce que tu comprends pourquoi ma numerotation de pages apparrait en haut de mon blog et pas en bas
merci de ton aide
Bonjour,
RépondreSupprimerJe suis à la recherche d'une solution pour retrouver les liens pages précédentes et pages suivantes en bas de mon blog... et naturellement je n'y connais rien. J'ai pas mal bidouillé le code de mon blog à partir d'un template récupéré pour qu'esthétiquement, il se rapproche de ce que je recherche. Mais le fait qu'il n'y ait pas de lien vers les messages plus anciens ou plus récents me dérange...on ne peut absolument pas naviguer simplement dans mon blog.
J'ai testé la solution proposée ici, je n'ai pas d'insulte lors de l'enregistrement du template modifié... mais je n'ai pas de numérotation des pages qui apparaît. Juste le lien vers ton blog pour récupérer le widget. Donc un échec pour la récupération de la navigation parmi les messages.
Je me demande s'il n'y a pas une ligne de code dans mon template qui désactiverait l'affichage des liens vers les messages plus anciens...
Aurais tu un lien ou une solution à me proposer et qui permettrait d'afficher ces liens en bas de la liste de posts ?
En tout cas, je garde précieusement l'adresse de ton blog pour la suite de la customization de mon blog.
Ah bin finalement, j'ai fini par trouver ce qui désactivait mes petits liens messages plus anciens, messages plus récents !!! Ca faisait des semaines que je cherchais !
RépondreSupprimerJe vais donc pouvoir tester ton astuce pour numéroter les pages.
Un grand merci, même si tu n'y es pour pas grand chose dans la résolution de mon problème (j'ai quand même regardé de près ton code source pour le comparer avec le mien au niveau de certains passages suspects)
Salut je ne trouve pas le code pour enlever l'image de l'url.
RépondreSupprimerEt quand je mets des messages sur mon blog, admettons je mets 10 messages et bien je trouve plus certains messages, ils ne sont pas sur les pages suivantes non plus. ils sont bien dans les archives par contre.as tu une idée?
merci.
Bonjour,
RépondreSupprimerou pouvons nous changer la couleur de fond? j'ai du mal a trouver le bon code
Merci
Rebonjour Rodney.
RépondreSupprimerJe vous ai envoyé un message dans laquel je sollicitais votre aide à créer un menu horizontal dans notre blog blogger: "Le Berceau du savoir" c'est le nom de notre blog et l'adresse: collegesifiom.blogspot.com
Nous attendons votre aide.
Merci