Your IP : 3.138.124.213


Current Path : /data/web/virtuals/51568/virtual/www/class/
Upload File :
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();
    }
}

?>