Current Path : /data/web/virtuals/51568/virtual/www/class/ |
Current File : /data/web/virtuals/51568/virtual/www/class/pagination.class.php |
<?php class Pagination { private $totalItems; private $itemPerPage = 4; private $current; private $urlAppend; public function __construct($total = 10, $perPage = 4, $current = 1, $urlAppend = '/', $rubrika = 0, $kodmenu = 0) { $this->setTotalItems($total); $this->setItmPerPage($perPage); $this->setCurrentPage($current); $this->setUrlAppend($urlAppend); $this->setRubrika($rubrika); $this->setKodmenu($kodmenu); } public function setUrlAppend($append) { $this->urlAppend = $append; } public function setCurrentPage($current) { return ($current >= 0) ? $this->current = $current : false; } public function setItmPerPage($item) { return ($item > 0) ? $this->itemPerPage = $item : false; } public function setTotalItems($items) { return ($items > 0) ? $this->totalItems = $items : false; } public function setRubrika($rubrika) { $this->rubrika = $rubrika; } public function setKodmenu($kodmenu) { $this->kodmenu = $kodmenu; } public function pagination() { $pageCount = ceil($this->totalItems / $this->itemPerPage); $dalsi = $this->current * $this->itemPerPage + 1; $predchozi = ($this->current - 2) * $this->itemPerPage + 1; $posledni = ($pageCount - 1) * $this->itemPerPage + 1; $rubrika = $this->rubrika; $kodmenu = $this->kodmenu; if ($this->current >= 1 && $this->current <= $pageCount) { $current_range = [($this->current - 2 < 1 ? 1 : $this->current - 2), ($this->current + 2 > $pageCount ? $pageCount : $this->current + 2)]; $first_page = $this->current > 5 ? '<li class="page-item" ><a class="page-link" href="'.$this->urlAppend.'&prvni=1&kodmenu='.$kodmenu.'&rubrika='.$rubrika.'">1</a></li>'.($this->current < 5 ? ' ' : ' <li class="page-item"><div class="page-link" class="disable" disabled >...</div></li> ') : null; $last_page = $this->current < $pageCount - 2 ? ($this->current > $pageCount - 4 ? ' ' : ' <li class=""><span class="page-link" class="disable" disabled >...</span></li> ').'<li class="page-item"><a class="page-link" href="'.$this->urlAppend.'&prvni='.$posledni.'&kodmenu='.$kodmenu.'&rubrika='.$rubrika.'">'.$pageCount.'</a></li>' : null; $previous_page = $this->current > 1 ? '<li class="page-item"><a class="page-link" href="'.$this->urlAppend.'&prvni='.$predchozi.'&kodmenu='.$kodmenu.'&rubrika='.$rubrika.'"><i class="fas fa-angle-left"></i></a></li>' : null; $next_page = $this->current < $pageCount ? '<li class="page-item"><a class="page-link" href="'.$this->urlAppend.'&prvni='.$dalsi.'&kodmenu='.$kodmenu.'&rubrika='.$rubrika.'"><i class="fas fa-angle-right"></i> </a></li>' : null; for ($x = $current_range[0]; $x <= $current_range[1]; $x++) { $active = ($x==$this->current)?" active ": ""; $pages[] = '<li class="page-item '.$active.'"><a class="page-link" href="'.$this->urlAppend.'&kodmenu='.$kodmenu.'&rubrika='.$rubrika.'&prvni='.(($x - 1) * $this->itemPerPage + 1).'" '.($x == $this->current ? 'class="active"' : '').'>'.$x.'</a></li>'; } if ($pageCount > 1) { $strankovani = '<div class="row justify-content-center ">'; $strankovani .= '<ul class="pagination flex-wrap " > '.$previous_page.$first_page.implode('', $pages).$last_page.$next_page.'</ul>'; $strankovani .= '</div>'; return $strankovani; } } } public function __toString() { $this->pagination(); } } ?>