[Solved] Pagination

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Post Reply
Rinker
Forum Members
Forum Members
Posts: 65
Joined: Fri May 27, 2011 9:37 am

[Solved] Pagination

Post 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
Last edited by Rinker on Tue Mar 01, 2016 3:14 pm, edited 1 time in total.
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: Pagination

Post 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}
Rinker
Forum Members
Forum Members
Posts: 65
Joined: Fri May 27, 2011 9:37 am

Re: Pagination

Post 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}"}
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: [Solved] Pagination

Post 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}
Post Reply

Return to “Dutch - Nederlands”