kaip tik ko reikėjo... vilkis - didelis ačiū...
iki galo neįsigilinau į tavo kodą - gilinausi tiek kiek reikėjo.
bet jaučiu nesi ištestavęs su daugiau nei 9 puslapių kiekiu.
nes kai prasideda dviženkliai skaičiai, tai RegExp'as /pagenumber=(\d)/ ima tik vieną skaitmenį, todėl (jeigu paspaudžiamas pvz 12 puslapis) sugeneruojami triženkliai puslapių numeriai (12, 22, 32, ... 102, 112), kitu paspaudimu jau keturženkliai.
Reikia pakeisti į /pagenumber=(\d*)/ ir viskas susitvarko.
Dar vienas bajeris: su {capture} atsargiai, jeigu naujoje eilutėje, tai susigeneruoja nauja eilutė, todėl HTMLas jau nebesivaliduoja, nes linkas per kelias eilutes gaunasi - čia irgi teko pavargti, kol klaidas išgaudžiau...
Štai Products puslapiavimo kodas:
Code: Select all
{* PUSLAPIAVIMAS *}
{if isset($pagecount) && $pagecount gt 1}
{if $curpage < $pagecount}
{capture assign=pageurl}{$nextlink|regex_replace:'/href=\"(.*)\"/':'$1'|replace:'<a ':''|replace:'>></a>':''}{/capture}
{else}
{capture assign=pageurl}{$prevlink|regex_replace:'/href=\"(.*)\"/':'$1'|replace:'<a ':''|replace:'><</a>':''}{/capture}
{/if}
{assign var=pagecount1 value=$pagecount+1}
{section name=foo start=1 loop=$pagecount1 step=1}
{capture assign=pagestr}cntnt01page={$smarty.section.foo.index}{/capture}
{capture assign=pageurl1}{$pageurl|regex_replace:'/cntnt01page=(\d*)/':$pagestr}{/capture}
{if $smarty.section.foo.index eq $curpage}
<a class="selected" href="{$pageurl1}">{$smarty.section.foo.index}</a>
{else}
<a href="{$pageurl1}">{$smarty.section.foo.index}</a>
{/if}
{/section}
{/if}