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; |
} |
|
|
} |
?> |