Paginator::get­Steps()

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

Funkce getStep vraci viditelna tlacitka pro strankovani a misto chybejicich se v sablone zobrazi „…“

Nastavne situace kde se pod … skryva pouze jedno cislo, tak by bylo dobre ho tam radeji zobrazit nez …

Napr. misto 1 2 3 4 … 6 7 by se zobrazilo 1 2 3 4 5 6 7

<?php
	public function getSteps($steps = 5, $surround = 3)
	{
		$lastPage = $this->getPageCount() - 1;
		$page = $this->getPageIndex();
		if ($lastPage < 1) return array($page + $this->base);

		$surround = max(0, $surround);
		$arr = range(max(0, $page - $surround) + $this->base, min($lastPage, $page + $surround) + $this->base);

		$steps = max(1, $steps - 1);
		if($lastPage == $steps + 1) $steps++;
		for ($i = 0; $i <= $steps; $i++) $arr[] = round($lastPage / $steps * $i) + $this->base;
		sort($arr);
		$arr = array_values(array_unique($arr));
		// test jestli je pocet tlacitek o jedno mensi nez pocet stranek
		// Pokud ano, tak se vygeneruji vsechny strankovaci tlacitka
		if(count($arr) == $lastPage) {
			$arr = array();
			for ($i = 0; $i <= $lastPage; $i++) $arr[] = $i + $this->base;
		}
		return $arr;
	}
?>
David Grudl
Nette Core | 8082
+
0
-

No, ono getSteps() by vůbec v Paginatoru být nemělo. Zvažuju to přesunout někam do šablon, třeba jako helper. Pak by bylo možné velmi snadno změnit způsob, jak má Nette stepovat ;)

  • od revize 186 je getSteps() deprecated