Page 1 of 1

[Solved] Pagination

Posted: Sat Feb 27, 2016 9:11 pm
by Rinker
Hi,


Vraagje:
Ik heb in een 'news summary template' niet genoeg aan de $prevpage en $nextpage template variabelen voor de pagination. Na diverse zoekwerk denk ik dat de enige manier is om de links te krijgen naar andere pagina's door ze zelf samen te stellen, $actionid en $returnid etc worden wel doorgegeven.
De vraag is dus eigenlijk, is het geoorloofd om zellf op deze manier module links samen te stellen in de template??



mvg,
Rinker

Re: Pagination

Posted: Mon Feb 29, 2016 8:59 am
by velden
Ik denk dat je het met een eenvoudige foreach loop kunt doen en dan de url kopieren van een 'next page' en daarbij het pagenumber=xx vervangen voor het juiste paginanummer.

Heb het zo ooit eens gemaakt voor de Products module.

Hieronder die code. Merk op dat de variabelen waarschijnlijk een andere naam hebben in de news summary templates. Bovendien zit er natuurlijk wat code tussen voor mijn specifieke template. Tenslotte denk ik dat dit werkt tot 10 paginas. Bij meer moet de regex tikkeltje worden aangepast.

Code: Select all

{if isset($pagecount) && $pagecount gt 1}
<ul class="pagination clearing-container">
<li class="arrow{if $curpage == 1} unavailable{/if}"><a href="{$prevpage_url}">&laquo;</a></li>
{if !empty($prevpage_url)}{$tmp_url=$prevpage_url}
{elseif !empty($nextpage_url)}{$tmp_url=$nextpage_url}
{else}{$tmp_url=''}{/if}
{for $pages=1 to $pagecount}
  <li{if $pages == $curpage} class="current"{/if}><a href="{$tmp_url|regex_replace:'/page=\d/':"page=$pages"}">{$pages}</a></li>
{/for}
<li class="arrow{if $curpage == $pagecount} unavailable{/if}"><a href="{$nextpage_url}">&raquo;</a></li>
</ul>
{/if}

Re: Pagination

Posted: Mon Feb 29, 2016 8:24 pm
by Rinker
Thnx Velden voor je antwoord.

Ik kwam daar gisteren ook op, had het opgelost met 'var|replace'.
Ik gebruik de $firsturl of de $lasturl, afhankelijk van de huidige pagina positie als één van de twee niet beschikbaar is.


gebruik van $firsturl:

Code: Select all

{$mylink|replace:"pagenumber=1" : "pagenumber={$pagenumber-2}"}
gebruik van $lasturl

Code: Select all

{$mylink|replace:"pagenumber={$pagecount}" : "pagenumber={$pagenumber+2}"}

Re: [Solved] Pagination

Posted: Tue Oct 24, 2017 2:19 pm
by velden
User iturbay heeft getest met de aangepaste regex voor gevallen waarbij de page >= 10 en aangegeven dat het werkt. Zelf het ik dat niet getest.

De code zou dan worden: (het scheelt maar één +-teken):

Code: Select all

{if isset($pagecount) && $pagecount gt 1}
<ul class="pagination clearing-container">
<li class="arrow{if $curpage == 1} unavailable{/if}"><a href="{$prevpage_url}">&laquo;</a></li>
{if !empty($prevpage_url)}{$tmp_url=$prevpage_url}
{elseif !empty($nextpage_url)}{$tmp_url=$nextpage_url}
{else}{$tmp_url=''}{/if}
{for $pages=1 to $pagecount}
  <li{if $pages == $curpage} class="current"{/if}><a href="{$tmp_url|regex_replace:'/page=\d+/':"page=$pages"}">{$pages}</a></li>
{/for}
<li class="arrow{if $curpage == $pagecount} unavailable{/if}"><a href="{$nextpage_url}">&raquo;</a></li>
</ul>
{/if}