From 47196182e53ed25a73ba6e5129675df99df5b671 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Thu, 14 Mar 2013 20:10:15 +0100 Subject: Fix bug #25 mais le code ne me convient pas. Le bug #28 devra corriger ce soucis --- app/models/Entry.php | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'app/models/Entry.php') diff --git a/app/models/Entry.php b/app/models/Entry.php index 0e1d69921..8a1ee1449 100755 --- a/app/models/Entry.php +++ b/app/models/Entry.php @@ -247,7 +247,7 @@ class EntryDAO extends Model_pdo { $res = $stm->fetchAll (PDO::FETCH_ASSOC); $this->nbItems = $res[0]['count']; - $deb = ($this->currentPage - 1) * $this->nbItemsPerPage; + $deb = ($this->currentPage () - 1) * $this->nbItemsPerPage; $fin = $this->nbItemsPerPage; $sql = 'SELECT * FROM entry' . $where @@ -281,7 +281,7 @@ class EntryDAO extends Model_pdo { $sql = 'SELECT * FROM entry' . $where . ' ORDER BY date' . $order; } else { - $deb = ($this->currentPage - 1) * $this->nbItemsPerPage; + $deb = ($this->currentPage () - 1) * $this->nbItemsPerPage; $fin = $this->nbItemsPerPage; $sql = 'SELECT * FROM entry' . $where @@ -314,7 +314,7 @@ class EntryDAO extends Model_pdo { $res = $stm->fetchAll (PDO::FETCH_ASSOC); $this->nbItems = $res[0]['count']; - $deb = ($this->currentPage - 1) * $this->nbItemsPerPage; + $deb = ($this->currentPage () - 1) * $this->nbItemsPerPage; $fin = $this->nbItemsPerPage; $sql = 'SELECT e.* FROM entry e INNER JOIN feed f ON e.id_feed = f.id' . $where . ' ORDER BY date' . $order @@ -348,7 +348,7 @@ class EntryDAO extends Model_pdo { $res = $stm->fetchAll (PDO::FETCH_ASSOC); $this->nbItems = $res[0]['count']; - $deb = ($this->currentPage - 1) * $this->nbItemsPerPage; + $deb = ($this->currentPage () - 1) * $this->nbItemsPerPage; $fin = $this->nbItemsPerPage; $sql = 'SELECT * FROM entry e' . $where . ' ORDER BY date' . $order @@ -400,12 +400,25 @@ class EntryDAO extends Model_pdo { public function _currentPage ($value) { $this->currentPage = $value; } + public function currentPage () { + if ($this->currentPage < 1) { + return 1; + } + + $maxPage = ceil ($this->nbItems / $this->nbItemsPerPage); + if ($this->currentPage > $maxPage) { + return $maxPage; + } + + return $this->currentPage; + + } public function getPaginator ($entries) { $paginator = new Paginator ($entries); $paginator->_nbItems ($this->nbItems); $paginator->_nbItemsPerPage ($this->nbItemsPerPage); - $paginator->_currentPage ($this->currentPage); + $paginator->_currentPage ($this->currentPage ()); return $paginator; } -- cgit v1.2.3