Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1292 → Rev 1293

/trunk/services/bibliotheque/Navigation.php
11,11 → 11,11
* @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
23,7 → 23,7
public function __construct($parametres = null) {
$this->parametres = $parametres;
}
 
/**
* Obtenir la valeur courante de départ
* */
30,14 → 30,19
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;
$limite = 10;
if (isset($this->parametres['navigation.limite']) && is_numeric($this->parametres['navigation.limite'])) {
$limite = $this->parametres['navigation.limite'];
$limite = ($limite < 1000) ? $limite : 1000;// Pour éviter les abus !
}
return $limite;
}
 
/**
* Configurer l'Url de navigation en fonction du fichier de configuration
* */
45,7 → 50,7
$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
58,7 → 63,7
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
66,16 → 71,16
* @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
* */
83,20 → 88,20
$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;
106,7 → 111,7
}
return $url;
}
 
/**
* Retourner le nombre total d'éléments
* */
113,7 → 118,7
public function getTotal() {
return $this->total;
}
 
/**
* Enregistrer le nombre total d'éléments
* @param int $total le nombre d'éléments
121,6 → 126,6
public function setTotal($total) {
$this->total = $total;
}
 
}
?>