diff options
| author | 2013-03-02 00:36:12 +0100 | |
|---|---|---|
| committer | 2013-03-02 00:36:12 +0100 | |
| commit | cae1efd552ed0618b13120e07c346cbe28cbd00a (patch) | |
| tree | 173a36c7c889c45d1590f0942e5a776c65e84db0 /lib/Paginator.php | |
| parent | 2232b03bb48a012d8d3902dd32c7612dc112e0f9 (diff) | |
Corrections quelques bugs + modif fichier config BDD + ajout fichier build.sh pour générer la lib Minz
Diffstat (limited to 'lib/Paginator.php')
| -rwxr-xr-x | lib/Paginator.php | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/lib/Paginator.php b/lib/Paginator.php deleted file mode 100755 index 1a8376e75..000000000 --- a/lib/Paginator.php +++ /dev/null @@ -1,196 +0,0 @@ -<?php -/** - * MINZ - Copyright 2011 Marien Fressinaud - * Sous licence AGPL3 <http://www.gnu.org/licenses/> -*/ - -/** - * La classe Paginator permet de gérer la pagination de l'application facilement - */ -class Paginator { - /** - * $items tableau des éléments à afficher/gérer - */ - private $items = array (); - - /** - * $nbItemsPerPage le nombre d'éléments par page - */ - private $nbItemsPerPage = 10; - - /** - * $currentPage page actuelle à gérer - */ - private $currentPage = 1; - - /** - * $nbPage le nombre de pages de pagination - */ - private $nbPage = 1; - - /** - * $nbItems le nombre d'éléments - */ - private $nbItems = 0; - - /** - * Constructeur - * @param $items les éléments à gérer - */ - public function __construct ($items) { - $this->_items ($items); - $this->_nbItems (count ($this->items (true))); - $this->_nbItemsPerPage ($this->nbItemsPerPage); - $this->_currentPage ($this->currentPage); - } - - /** - * Permet d'afficher la pagination - * @param $view nom du fichier de vue situé dans /app/views/helpers/ - * @param $getteur variable de type $_GET[] permettant de retrouver la page - */ - public function render ($view, $getteur) { - $view = APP_PATH . '/views/helpers/'.$view; - - if (file_exists ($view)) { - include ($view); - } - } - - /** - * Permet de retrouver la page d'un élément donné - * @param $item l'élément à retrouver - * @return la page à laquelle se trouve l'élément (false si non trouvé) - */ - public function pageByItem ($item) { - $page = false; - $i = 0; - - do { - if ($item == $this->items[$i]) { - $page = ceil (($i + 1) / $this->nbItemsPerPage); - } - - $i++; - } while (!$page && $i < $this->nbItems ()); - - return $page; - } - - /** - * Permet de retrouver la position d'un élément donné (à partir de 0) - * @param $item l'élément à retrouver - * @return la position à laquelle se trouve l'élément (false si non trouvé) - */ - public function positionByItem ($item) { - $find = false; - $i = 0; - - do { - if ($item == $this->items[$i]) { - $find = true; - } else { - $i++; - } - } while (!$find && $i < $this->nbItems ()); - - return $i; - } - - /** - * Permet de récupérer un item par sa position - * @param $pos la position de l'élément - * @return l'item situé à $pos (dernier item si $pos<0, 1er si $pos>=count($items)) - */ - public function itemByPosition ($pos) { - if ($pos < 0) { - $pos = $this->nbItems () - 1; - } - if ($pos >= count($this->items)) { - $pos = 0; - } - - return $this->items[$pos]; - } - - /** - * GETTEURS - */ - /** - * @param $all si à true, retourne tous les éléments sans prendre en compte la pagination - */ - public function items ($all = false) { - $array = array (); - $nbItems = $this->nbItems (); - - if ($nbItems <= $this->nbItemsPerPage || $all) { - $array = $this->items; - } else { - $begin = ($this->currentPage - 1) * $this->nbItemsPerPage; - $counter = 0; - $i = 0; - - foreach ($this->items as $key => $item) { - if ($i >= $begin) { - $array[$key] = $item; - $counter++; - } - if ($counter >= $this->nbItemsPerPage) { - break; - } - $i++; - } - } - - return $array; - } - public function nbItemsPerPage () { - return $this->nbItemsPerPage; - } - public function currentPage () { - return $this->currentPage; - } - public function nbPage () { - return $this->nbPage; - } - public function nbItems () { - return $this->nbItems; - } - - /** - * SETTEURS - */ - public function _items ($items) { - if (is_array ($items)) { - $this->items = $items; - } - - $this->_nbPage (); - } - public function _nbItemsPerPage ($nbItemsPerPage) { - if ($nbItemsPerPage > $this->nbItems ()) { - $nbItemsPerPage = $this->nbItems (); - } - if ($nbItemsPerPage < 0) { - $nbItemsPerPage = 0; - } - - $this->nbItemsPerPage = $nbItemsPerPage; - $this->_nbPage (); - } - public function _currentPage ($page) { - if($page < 1 || ($page > $this->nbPage && $this->nbPage > 0)) { - throw new CurrentPagePaginationException ($page); - } - - $this->currentPage = $page; - } - private function _nbPage () { - if ($this->nbItemsPerPage > 0) { - $this->nbPage = ceil ($this->nbItems () / $this->nbItemsPerPage); - } - } - public function _nbItems ($value) { - $this->nbItems = $value; - } -} |
