Paginator::getSteps()
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Ondrej
- Člen | 110
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 | 8218
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