Existuje nejaká komponenta na stránkovanie?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- mrfrostikcz
- Člen | 17
matej21 napsal(a):
k prvni veci: dulezite jsou metody formatLayoutTemplateFiles a formatTemplateFiles v presenteru, staci je prepsat, aby vracely spravne latte soubory dle vzhledu
k druhe: kdyby/translation
Skvěle, děkuji. To je přesně to, co potřebujeme.
Nebo se mrkni na https://doc.nette.org/…s/pagination. Použití jednoduché a lehce si nasadíš libovolný face jak chceš.
- qteck
- Člen | 164
Dá se použít visualPaginator. Mělo být to být někde na githubu, kdosi to doporučoval když jsem to řešil já.
Nakonec jsem to udělal podle nette paginatoru, ten podle všeho poskytuje jenom základní matematiku narozdíl od visualPaginatoru.
Moje řešení vypadá takto, možná ti to ulehčí tvorbu:
{if $paginator->getLastPage() > 1}
<section>
<a n:href="this, page => $paginator->getPage() - 1" n:if="!$paginator->isFirst()">předchozí</a>
{for $scatter = 3,
$i = ($paginator->getPage() - (($paginator->getPage() <= $scatter) ?
$paginator->getPage()-1 : $scatter)),
$x = $paginator->getPage() + ((($paginator->getPage() + $scatter) < $paginator->getLastPage()) ?
$scatter : ($paginator->getLastPage()-$paginator->getPage()));
$i <= $x;
$i++}
<span n:tag-if="$i == $paginator->getPage()" class="bold"> <a n:href="this, page => $i" n:tag-if="$i !== $paginator->getPage()">{$i}</a> </span>
{/for}
<a n:href="this, page => $paginator->getPage() + 1" n:if="!$paginator->isLast()">další</a>
</section>
{/if}