Rev 1793 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** Navigation gère les url de navigation en fonction d'un départ et d'une limite* @category php 5.2* @package del* @author Grégoire Duché <gregoire@tela-botanica.org>* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL* @version $Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $*/class Navigation {private $parametres;private $urlNavigation;private $total;/*** Constructeur de la classe Navigation* @param Array $parametres (optionnel) la liste des paramètre issus du Conteneur* */public function __construct($parametres = null) {$this->parametres = $parametres;}/*** Obtenir la valeur courante de départ* */public function getDepart() {return isset($this->parametres['navigation.depart']) ? $this->parametres['navigation.depart'] : 0;}/*** Obtenir la limite courante* */public function getLimite() {return isset($this->parametres['navigation.limite']) ? $this->parametres['navigation.limite'] : 10;}/*** Configurer l'Url de navigation en fonction du fichier de configuration* */public function chargerUrl() {$this->urlNavigation = new Url(Config::get('url_service'));$this->urlNavigation->setOption(Url::OPTION_ENCODER_VALEURS, true);}/*** Obtenir l'url en fonction d'un départ et d'une limite donnée* @param int $depart l'entier de départ* @param int $limite le nombre d'éléments limite* */public function getUrl($depart = null, $limite = null) {if ($depart == null && $limite == null) {return $this->urlNavigation;} else {return $this->obtenirUrlNavigation($depart, $limite);}}/*** Récupérer l'url de navigation en concaténant d'éventuels paramètres* @param $depart l'entier de départ de la recherche* @param $limite le nombre de résultats à retourner* @param $parametresAdditionnels le tableau contenant les parametres => valeurs additionnels* */private function obtenirUrlNavigation($depart, $limite) {$parametres = $this->parametres;$parametres['navigation.depart'] = $depart;$parametres['navigation.limite'] = $limite;$this->urlNavigation->setRequete($parametres);$url = $this->urlNavigation->getURL();return $url;}/*** Récupérer le lien pour afficher les images précédentes en fonction des paramètres* */public function recupererHrefPrecedent() {$departActuel = $this->getDepart();$limite = $this->getLimite();$departPrecedent = $departActuel - $limite;$url = null;if ($departActuel > 0) {$url = $this->getUrl($departPrecedent, $limite);}return $url;}/*** Récupérer le lien pour afficher les images suivantes en fonction des paramètres* */public function recupererHrefSuivant() {$departActuel = $this->getDepart();$limite = $this->getLimite();$departSuivant = $departActuel + $limite;$url = null;if ($departSuivant < $this->total) {$url = $this->getUrl($departSuivant, $limite);}return $url;}/*** Retourner le nombre total d'éléments* */public function getTotal() {return $this->total;}/*** Enregistrer le nombre total d'éléments* @param int $total le nombre d'éléments* */public function setTotal($total) {$this->total = $total;}}?>