Nette – krajsie zobrazenie cisla stranok
- Takeshi
- Člen | 596
Tak ten spominany subor (nizsie) … prave ze neviem ako na to … napriklad aby mi zobrazovalo cisla stranok po 10 , ale hlavne bez zbytocnych mezdier ako 1 2 3 …7 …12 (teda odstupy cisel od seba) ⇒ to je moj hlavny problem
<?php
{*
* @version $Id: template.phtml 2 2009-07-13 20:58:52Z david@grudl.com $
* @param Paginator $paginator
* @param array $steps
*}
{if $paginator->pageCount > 1}
<div class="paginator">
{if $paginator->isFirst()}
<span class="button">« Previous</span>
{else}
<a href="{link this, 'page' => $paginator->page - 1}">« Previous</a>
{/if}
{foreach $steps as $step}
{if $step == $paginator->page}
<span class="current">{$step}</span>
{else}
<a href="{link this, 'page' => $step}">{$step}</a>
{/if}
{if $iterator->nextValue > $step + 1}<span>…</span>{/if}
{/foreach}
{if $paginator->isLast()}
<span class="button">Next »</span>
{else}
<a href="{link this, 'page' => $paginator->page + 1}">Next »</a>
{/if}
</div>
{/if}
?>
- Takeshi
- Člen | 596
Nie takto …
<<Prev 1 2 3 4 5 … 7 …16 Next>>
ale napriklad takto
<<Prev 1 2 3 4 5 6 7 8 9 10 Next>>
… teda jedna z moznosti je tak ako to ma Google …
aktualna stranka je vdzdy v strede a ostatne stranky postupne pribudaju ako sa
posuvam do prava
… pri desiatej strane by to vyzeralo nasledovne
<<Prev 5 6 7 8 9 10 11 12 13 14 Next>>
Editoval Takeshi (10. 5. 2012 2:29)
- Jan Endel
- Člen | 1016
Tak se omlouvám za mystifikaci, gró paginátoru spočívá v metodě render od VisualPaginátoru a tak jak chceš ty docílíš třeba touhle změnou:
$arr = range(max($paginator->firstPage, $page - 3), min($paginator->lastPage, $page + 3));
na
$arr = range($paginator->firstPage, $paginator->lastPage);
- Panda
- Člen | 569
$arr = range(max($paginator->firstPage, $paginator->page - 5), min($paginator->page + 4, $paginator->lastPage));
případně
$arr = range(max($paginator->firstPage, $paginator->page - 5), min(max(10, $paginator->page + 4), $paginator->lastPage));
(na první stránce se zobrazí strany 1 – 10)