Index: Paginator.php =================================================================== --- Paginator.php (wersja 16730) +++ Paginator.php (kopia robocza) @@ -368,7 +368,10 @@ */ public static function setDefaultItemCountPerPage($count) { - self::$_defaultItemCountPerPage = (int) $count; + $count = intval($count); + + if ($count > 0) + self::$_defaultItemCountPerPage = $count; } /** @@ -679,10 +682,12 @@ */ public function setItemCountPerPage($itemCountPerPage) { - $this->_itemCountPerPage = (integer) $itemCountPerPage; - if ($this->_itemCountPerPage == 0) { - $this->_itemCountPerPage = 1; + $this->_itemCountPerPage = (int) $itemCountPerPage; + + if ($this->_itemCountPerPage <= 0) { + $this->_itemCountPerPage = self::getDefaultItemCountPerPage(); } + $this->_pageCount = $this->_calculatePageCount(); $this->_currentItems = null; $this->_currentItemCount = null; @@ -725,9 +730,9 @@ } } - $offset = ($pageNumber - 1) * $this->_itemCountPerPage; + $offset = ($pageNumber - 1) * $this->getItemCountPerPage(); - $items = $this->_adapter->getItems($offset, $this->_itemCountPerPage); + $items = $this->_adapter->getItems($offset, $this->getItemCountPerPage()); $filter = $this->getFilter(); @@ -882,8 +887,8 @@ $itemNumber = 1; } - if ($itemNumber > $this->_itemCountPerPage) { - $itemNumber = $this->_itemCountPerPage; + if ($itemNumber > $this->getItemCountPerPage()) { + $itemNumber = $this->getItemCountPerPage(); } return $itemNumber; @@ -982,7 +987,7 @@ */ protected function _getCacheInternalId() { - return md5(serialize($this->_adapter).$this->_itemCountPerPage); + return md5(serialize($this->_adapter) . $this->getItemCountPerPage()); } /** @@ -992,7 +997,7 @@ */ protected function _calculatePageCount() { - return (integer) ceil($this->_adapter->count() / $this->_itemCountPerPage); + return (integer) ceil($this->_adapter->count() / $this->getItemCountPerPage()); } /** @@ -1033,7 +1038,7 @@ $pages->currentItemCount = $this->getCurrentItemCount(); $pages->itemCountPerPage = $this->getItemCountPerPage(); $pages->totalItemCount = $this->getTotalItemCount(); - $pages->firstItemNumber = (($currentPageNumber - 1) * $this->_itemCountPerPage) + 1; + $pages->firstItemNumber = (($currentPageNumber - 1) * $this->getItemCountPerPage()) + 1; $pages->lastItemNumber = $pages->firstItemNumber + $pages->currentItemCount - 1; }