/** * @return array */ public function getSteps() { if (!$this->steps) { $this->paginator->setPage($this->page); $this->paginator->setItemsPerPage($this->limit); $this->paginator->setItemCount($this->settings->getItemCount()); $this->paginator->setPage($this->page); $paginator = $this->paginator; $arr = range(max($paginator->getFirstPage(), $paginator->getPage() - 2), min($paginator->getLastPage(), $paginator->getPage() + 2)); $count = 2; $quotient = ($paginator->getPageCount() - 1) / $count; for ($i = 0; $i <= $count; $i++) { $arr[] = (int) (round($quotient * $i) + $paginator->getFirstPage()); } sort($arr); $this->steps = array_values(array_unique($arr)); } return $this->steps; }
/** * @return Additional */ public function getAdditional() { return $this->settings->getAdditional(); }
/** * @return Paginator * @internal */ protected function createComponentPaginator() { $paginator = $this->settings->getPaginator(); $paginator->onRender[] = [$this, 'init']; return $paginator; }