Skip to content

Instantly share code, notes, and snippets.

@Kcko
Forked from MichalKalita/paginator.latte
Created April 13, 2016 18:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Kcko/ce9842c9a457abd245bd4feba7df4c81 to your computer and use it in GitHub Desktop.
Save Kcko/ce9842c9a457abd245bd4feba7df4c81 to your computer and use it in GitHub Desktop.
Vykreslení objektu Nette\Utils\Paginator, použití {include ../paginator.latte, paginator => $paginator}, kde $paginator máme předán z presenteru
{** Bootstrapové vykreslení paginatoru *}
{default $maxOdkazu = 15}
{default $postupnychStranek = 4}
{var $min = $paginator->getBase()}
{var $max = $paginator->getPageCount()}
{var $pocet = ($max - $min)}
{var $aktStrana = $paginator->getPage()}
{var $doplnkovychStran = $maxOdkazu - 2 - ($postupnychStranek*2) + 1}
{var $volnychMist = $maxOdkazu - $doplnkovychStran}
{var $doplnkovyKrok = ceil(($max - $min) / $volnychMist)}
<ul class="pagination">
{* odkaz na předchozí stranu, když jsem na první straně tak odkazuje na sebe *}
<li n:class="$paginator->isFirst()?disabled"><a n:href="this, page => $paginator->isFirst()?$aktStrana:($aktStrana-1)">&laquo;</a></li>
{if (($max-$min)<=$maxOdkazu)} {* Dají se odkazy vykreslit postupně? *}
{for $p = $min;$p<=$max;$p++}
<li n:class="($aktStrana == $p)? active">
<a n:href="this, page => $p">{$p}</a>
</li>
{/for}
{else}
{for $p = $min;$p<=$max;$p++}
{var $prvniAPosledni = ($p == $min || $p == $max)}
{var $nejblizsiRozsah = ($p > ($aktStrana - $postupnychStranek) && $p < ($aktStrana + $postupnychStranek))}
{var $doplnek = (($p % $doplnkovyKrok) == 0)}
{if $prvniAPosledni || $nejblizsiRozsah || $doplnek}
<li n:class="($aktStrana == $p)? active">
<a n:href="this, page => $p">{$p}</a>
</li>
{/if}
{/for}
{/if}
{* odkaz na následující stranu, když jsem na poslední straně tak odkazuje na sebe *}
<li n:class="$paginator->isLast()?disabled"><a n:href="this, page => $paginator->isLast()?$aktStrana:($aktStrana+1)">&raquo;</a></li>
</ul>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment