Lorem Ipsum Posted September 23, 2013 Share Posted September 23, 2013 Bonjour, J'ai adapté le template pagination pour n'avoir qu'une flèche suivant et précédent mais le href des liens n'est pas le bon, il est modificé par du JS quelque part. Mon lien est le suivant : <a href="{$link->goPage($requestPage, $p_next)}" id="pagination_next"></a> Ce que j'ai dans le href est correcte (j'ai bien ce que j'attends quand je l'affiche sur le template), sauf que le href est modifié en js et remplacé par un lien vers la page une. Quand je change l'id de mon lien ça ne le fait plus, mais je n'ai plus les fonctionnalité de pagination ajax non plus, et j'aimerai les garder. Est ce que vous savez où je peux désactiver le code JS qui modifie le href? Romain. Link to comment Share on other sites More sharing options...
Divine Posted September 24, 2013 Share Posted September 24, 2013 Bonjour, Tu as modifié quoi exactement ? Link to comment Share on other sites More sharing options...
Lorem Ipsum Posted September 24, 2013 Author Share Posted September 24, 2013 Rien justement, c'est ça le souci. Même quand je remet le template pagination par défaut, sur une catégorie monsite.com/12-categ j'ai pas les bon lien pour les page, il me met à chauqe fois un lien vers la page 1 (que ce soit le a de la page 2, 3 ou suivant). J'ai donc ce code dans mon template : <ul class="pagination"> {if $p != 1} {assign var='p_previous' value=$p-1} <li id="pagination_previous"><a {$no_follow_text} href="{$link->goPage($requestPage, $p_previous)}">« {l s='Previous'}</a></li> {else} <li id="pagination_previous" class="disabled"><span>« {l s='Previous'}</span></li> {/if} {if $start==3} <li><a {$no_follow_text} href="{$link->goPage($requestPage, 1)}">1</a></li> <li><a {$no_follow_text} href="{$link->goPage($requestPage, 2)}">2</a></li> {/if} {if $start==2} <li><a {$no_follow_text} href="{$link->goPage($requestPage, 1)}">1</a></li> {/if} {if $start>3} <li><a {$no_follow_text} href="{$link->goPage($requestPage, 1)}">1</a></li> <li class="truncate">...</li> {/if} {section name=pagination start=$start loop=$stop+1 step=1} {if $p == $smarty.section.pagination.index} <li class="current"><span>{$p|escape:'htmlall':'UTF-8'}</span></li> {else} <li><a {$no_follow_text} href="{$link->goPage($requestPage, $smarty.section.pagination.index)}">{$smarty.section.pagination.index|escape:'htmlall':'UTF-8'}</a></li> {/if} {/section} {if $pages_nb>$stop+2} <li class="truncate">...</li> <li><a href="{$link->goPage($requestPage, $pages_nb)}">{$pages_nb|intval}</a></li> {/if} {if $pages_nb==$stop+1} <li><a href="{$link->goPage($requestPage, $pages_nb)}">{$pages_nb|intval}</a></li> {/if} {if $pages_nb==$stop+2} <li><a href="{$link->goPage($requestPage, $pages_nb-1)}">{$pages_nb-1|intval}</a></li> <li><a href="{$link->goPage($requestPage, $pages_nb)}">{$pages_nb|intval}</a></li> {/if} {if $pages_nb > 1 AND $p != $pages_nb} {assign var='p_next' value=$p+1} <li id="pagination_next"><a {$no_follow_text} href="{$link->goPage($requestPage, $p_next)}">{l s='Next'} »</a></li> {else} <li id="pagination_next" class="disabled"><span>{l s='Next'} »</span></li> {/if} </ul> Et ce code dans ma page web <ul class="pagination"> <li id="pagination_previous" class="disabled"><span>« Précédent</span></li> <li class="current"><span>1</span></li> <li><a href="http://prisma.approach-outdoor.com/20-outdoor#/page-1">2</a></li> <li><a href="http://prisma.approach-outdoor.com/20-outdoor#/page-1">3</a></li> <li class="truncate">...</li> <li><a href="http://prisma.approach-outdoor.com/20-outdoor#/page-1">11</a></li> <li id="pagination_next"><a href="http://prisma.approach-outdoor.com/20-outdoor#/page-1">Suivant »</a></li> </ul> Une idée de pourquoi ça me fait ça? Romain. Link to comment Share on other sites More sharing options...
Divine Posted September 24, 2013 Share Posted September 24, 2013 A tout hasard, aurais-tu activé la navigation à facettes ? Link to comment Share on other sites More sharing options...
Lorem Ipsum Posted September 24, 2013 Author Share Posted September 24, 2013 Oui il est activé sur ma boutique, c'est lui qui pose souci? Link to comment Share on other sites More sharing options...
Divine Posted September 24, 2013 Share Posted September 24, 2013 C'est possible en tout cas cela ne serait pas étonnant. Essaye de le désactiver et vois ce que cela donne. Link to comment Share on other sites More sharing options...
Lorem Ipsum Posted September 24, 2013 Author Share Posted September 24, 2013 Bien vu c'est bien ça, je vais voir pourquoi il me fait ça, à moins que tu ai une idée qui me ferai gagner du temps? Romain. Link to comment Share on other sites More sharing options...
Divine Posted September 24, 2013 Share Posted September 24, 2013 Euh là comme ça non pas vraiment désolée, ce module pose toujours des soucis assez aléatoires... Link to comment Share on other sites More sharing options...
Lorem Ipsum Posted September 24, 2013 Author Share Posted September 24, 2013 (edited) Ok, merci quand même, je suis sur une piste là, je trouve une solution propre et je la posterai si d'autre on le même problème. [EDIT] Voila la solution : dans le ficher /modules/blocklayered/blocklayered.js, il faut remplacer paginationButton() ligne 231 par celle si : function paginationButton() { $('#pagination a').not(':hidden').each(function () { if ($(this).attr('href').search(/&|\?p=/) == -1) { var page = 1; } else { var page = $(this).attr('href').replace(/^.*[&|\?]p=(\d+).*$/, '$1'); } var location = window.location.href.replace(/#.*$/, ''); $(this).attr('href', location+current_friendly_url.replace(/\/page-(\d+)/, '')+'/page-'+page); }); $('#pagination li').not('.current, .disabled').each(function () { var nbPage = 0; if ($(this).attr('id') == 'pagination_next') nbPage = parseInt($('#pagination li.current').children().html())+ 1; else if ($(this).attr('id') == 'pagination_previous') nbPage = parseInt($('#pagination li.current').children().html())- 1; $(this).children().click(function () { if (nbPage == 0) p = parseInt($(this).html()) + parseInt(nbPage); else p = nbPage; p = '&p='+ p; reloadContent(p); nbPage = 0; return false; }); }); } Petite explication, dans la fonction de base, le teste ligne 233 ne se faisait que sur une pagination avec une url du type &p=2, dans mon cas j'avais ?p=2. J'ai donc modifié les regex ligne 233 et 237 et ça marche nikel, une jolie pagination en Ajax! En espérant que ça sauve la vie d'autre personne! Romain. Edited September 24, 2013 by Lorem Ipsum (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now