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/controllers/indexController.php | 4 +--- app/models/Entry.php | 23 ++++++++++++++++++----- app/views/index/index.phtml | 7 ++++--- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/app/controllers/indexController.php b/app/controllers/indexController.php index 916f77c98..b6a7de281 100755 --- a/app/controllers/indexController.php +++ b/app/controllers/indexController.php @@ -74,9 +74,7 @@ class indexController extends ActionController { try { $this->view->entryPaginator = $entryDAO->getPaginator ($entries); - } catch (CurrentPagePaginationException $e) { - $error = true; - } + } catch (CurrentPagePaginationException $e) { } $this->view->cat_aside = $catDAO->listCategories (); $this->view->nb_favorites = $entryDAO->countFavorites (); 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; } diff --git a/app/views/index/index.phtml b/app/views/index/index.phtml index 6ecbfd72f..7733c6313 100644 --- a/app/views/index/index.phtml +++ b/app/views/index/index.phtml @@ -1,6 +1,5 @@ partial ('aside_flux'); ?> -entryPaginator->items (true); ?> - - +entryPaginator)) { + $items = $this->entryPaginator->items (true); +?>