Stránkování pomocí Visual Paginatoru

koubi
Člen | 47
+
0
-

Ahoj všem, hledal jsem, ale nic se mi nepodařilo najít, proto budu rád, pokud mě třeba jen někam odkážete.

Řeším problém se stránkováním pomocí Visual Paginator v komponentě, mám trochu problém s generováním výběrem stránek, protože se mi zobrazuje následující: 1 – 2 – 3 – 4 – 5 – .. – 7 – .. – 9

Chtěl bych si pohrát s těmi výběry stránek, jako mnohem lepší výsledek bych viděl: 1 – 2 – 3 – 4 – 5 – .. – 9

Poradí mi někdo, kam sáhnout?

IJVo
Člen | 38
+
0
-

Těžko radit, když jsi nenapsal o který paginator jde. Jen na https://componette.org jsou dva.

koubi
Člen | 47
+
0
-

IJVo napsal(a):

Těžko radit, když jsi nenapsal o který paginator jde. Jen na https://componette.org jsou dva.

Aha, omlouvám se. Nemá označení a navíc je to nějaká starší verze, tady je kód:

<?php

use Nette\Application\UI\Control,
  Nette\Utils\Paginator;


class VisualPaginator extends Control {
  	/** @var Paginator */
  	private $paginator;
  	/** @persistent */
  	public $page = 1;

  	/**
  	 * @return Nette\Paginator
  	 */
  	public function getPaginator() {
  		if (!$this->paginator)
  			$this->paginator = new Paginator;
  		return $this->paginator;
  	}

  	/**
  	 * Renders paginator.
  	 * @return void
  	 */
  	public function render() {
  		$paginator = $this->getPaginator();
  		$page = $paginator->page;
  		if ($paginator->pageCount < 2) {
  			$steps = array($page);
  		} else {
  			$arr = range(max($paginator->firstPage, $page - 3), min($paginator->lastPage, $page + 3));
  			$count = 4;
  			$quotient = ($paginator->pageCount - 1) / $count;
  			for ($i = 0; $i <= $count; $i++)
  				$arr[] = round($quotient * $i) + $paginator->firstPage;
  			sort($arr);
  			$steps = array_values(array_unique($arr));
  		}
  		$this->template->steps = $steps;
  		$this->template->paginator = $paginator;
  		$this->template->setFile(dirname(__FILE__) . '/VisualPaginator.phtml');
  		$this->template->render();
  	}

  	/**
  	 * Loads state informations.
  	 * @param  array
  	 * @return void
  	 */
  	public function loadState(array $params) {
  		parent::loadState($params);
  		$this->getPaginator()->page = $this->page;
  	}

}

Upgraduju, můžete mi teda nějaký doporučit?