Nette – krajsie zobrazenie cisla stranok

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Takeshi
Člen | 596
+
0
-

Ahojte … viete mi poradit ako upravim pri strankovani vysledne cislovanie? Tak ako by to lepsie vyzeralo .. teraz to mam rozhadzane …

asi takto to mam zatial:

<<Prev 1 2 3 4 5 … 7 … 12 13 14 Next>>

P.S. pouzivam Visual Paginator

Editoval Takeshi (10. 5. 2012 1:53)

Jan Endel
Člen | 1016
+
0
-

Přímo v komponentě VisualPaginator (složce) je soubor template.latte který se o celé zobrazení paginátoru stará, můžeš si vykreslení stránek zde upravit podle libosti.

Takeshi
Člen | 596
+
0
-

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}
?>
Jan Endel
Člen | 1016
+
0
-

Napiš, jak chceš aby ty čísla stránek přesně vypadaly a něco vymyslíme.

Takeshi
Člen | 596
+
0
-

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
+
0
-

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);
Takeshi
Člen | 596
+
0
-

Ono je to krajsie … len ked tam mam 30 poloziek a nastavene na 1 polozka na 1 stranu … tak mi vyhodi 30 cisel, co je vela … ja chcem obmedzeny pocet cisel … tak ako som uviedol vyssie … teda max 10 cisel

Panda
Člen | 569
+
0
-
$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)