Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
8 / 8
CRAP
100.00% covered (success)
100.00%
69 / 69
PaginationNavigation
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
8 / 8
33
100.00% covered (success)
100.00%
69 / 69
 init(&$template, $nbrPages)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 setPageMenu($page = 1)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
5 / 5
 _setLeftJump($page)
100.00% covered (success)
100.00%
1 / 1
4
100.00% covered (success)
100.00%
7 / 7
 _setRightJump($page)
100.00% covered (success)
100.00%
1 / 1
8
100.00% covered (success)
100.00%
12 / 12
 _setLeft($page)
100.00% covered (success)
100.00%
1 / 1
6
100.00% covered (success)
100.00%
5 / 5
 _setRight($page)
100.00% covered (success)
100.00%
1 / 1
7
100.00% covered (success)
100.00%
7 / 7
 _setPage($page)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
16 / 16
 _setHidden()
100.00% covered (success)
100.00%
1 / 1
5
100.00% covered (success)
100.00%
14 / 14
<?php
/**
 *
 */
namespace aae\ui\elements {
    /**
     * @author Axel Ancona Esselmann
     * @package aae\ui\elements
     */
    class PaginationNavigation {
        public $template;
        public function init(&$template, $nbrPages) {
            $this->template  = $template;
            $this->_nbrPages = $nbrPages;
        }
        public function setPageMenu($page = 1) {
            $this->template["paginationHideLeftDots"]  = '';
            $this->template["paginationHideRightDots"] = '';
            $this->_setPage($page);
            $this->_setHidden();
        }
        protected function _setLeftJump($page) {
            $this->template["pagination-10"] = $page - 10;
            if ($page < 11) {
                if ($page < 5) $this->template["pagination-10"] = '';
                else if ($this->_nbrPages < 6) $this->template["pagination-10"] = '';
                else $this->template["pagination-10"] = 1;
            }
        }
        protected function _setRightJump($page) {
            $this->template["pagination10"] = $page + 10;
            if ($this->_nbrPages - $page < 11) {
                if ($this->_nbrPages - $page < 4) $this->template["pagination10"] = '';
                elseif ($page == 1 && $this->_nbrPages - $page < 5) $this->template["pagination10"] = '';
                else $this->template["pagination10"] = $this->_nbrPages;
                if ($this->_nbrPages == 6) {
                    $this->template["paginationHideRightDots"] = ' hidden';
                    $this->template["paginationHideLeftDots"]  = ' hidden';
                }
                if ($this->_nbrPages >= 6 && $page < 5) $this->template["pagination10"] = $this->_nbrPages;
            }
        }
        public function _setLeft($page) {
            if ($page < 5) {
                for ($i=1; $i < $page; $i++) if ($page - $i > 0) $this->template["pagination-$i"] = $page - $i;
            } elseif ($this->_nbrPages - $page < 4) for ($i=1; $i < 5 - ($this->_nbrPages - $page); $i++) $this->template["pagination-$i"] = $page - $i;
            else $this->template["pagination-1"] = $page - 1;
        }
        public function _setRight($page) {
            $pagesToBeginning = 5 - $page;
            $pagesToEnd = $this->_nbrPages - $page;
            if ($pagesToBeginning > 0) {
                for ($i=0; $i <= $pagesToBeginning; $i++) if ($page + $i <= $this->_nbrPages) $this->template["pagination$i"] = $page + $i;
            } else if ($pagesToEnd < 4) for ($i=1; $i <= $pagesToEnd; $i++) $this->template["pagination$i"] = $page + $i;
            elseif ($page < $this->_nbrPages) $this->template["pagination1"] = $page + 1;
        }
        protected function _setPage($page) {
            $this->template["pagination-10"] = '';
            $this->template["pagination-4"] = '';
            $this->template["pagination-3"] = '';
            $this->template["pagination-2"] = '';
            $this->template["pagination-1"] = '';
            $this->template["pagination1"] = '';
            $this->template["pagination2"] = '';
            $this->template["pagination3"] = '';
            $this->template["pagination4"] = '';
            $this->template["pagination10"] = '';
            $this->_setLeftJump($page);
            $this->_setRightJump($page);
            $this->_setLeft($page);
            $this->_setRight($page);
            $this->template["pagination0"] = $page;
        }
        protected function _setHidden() {
            for ($i =- 4; $i <= 4 ; $i++) {
               if ($this->template["pagination$i"] == '') {
                   $this->template["paginationHide$i"] = ' hidden';
               } else $this->template["paginationHide$i"] = '';
            }
            if ($this->template["pagination10"] == '') {
                $this->template["paginationHide10"]        = ' hidden';
                $this->template["paginationHideRightDots"] = ' hidden';
            } else $this->template["paginationHide10"] = '';
            if ($this->template["pagination-10"] == '') {
                $this->template["paginationHide-10"]      = ' hidden';
                $this->template["paginationHideLeftDots"] = ' hidden';
            } else $this->template["paginationHide-10"] = '';
        }
    }
}