Subversion Repositories eFlore/Applications.del

Rev

Rev 723 | Rev 1794 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 723 Rev 1293
Line 9... Line 9...
9
* @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
9
* @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
* @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
10
* @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
11
* @version	$Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $
11
* @version	$Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $
12
*/
12
*/
13
class Navigation {
13
class Navigation {
14
	
14
 
15
	private $parametres;
15
	private $parametres;
16
	private $urlNavigation;
16
	private $urlNavigation;
17
	private $total;
17
	private $total;
18
	
18
 
19
	/**
19
	/**
20
	 * Constructeur de la classe Navigation
20
	 * Constructeur de la classe Navigation
21
	 * @param Array $parametres (optionnel) la liste des paramètre issus du Conteneur
21
	 * @param Array $parametres (optionnel) la liste des paramètre issus du Conteneur
22
	 * */
22
	 * */
23
	public function __construct($parametres = null) {
23
	public function __construct($parametres = null) {
24
		$this->parametres = $parametres;
24
		$this->parametres = $parametres;
25
	}
25
	}
26
	
26
 
27
	/**
27
	/**
28
	 * Obtenir la valeur courante de départ
28
	 * Obtenir la valeur courante de départ
29
	 * */
29
	 * */
30
	public function getDepart() {
30
	public function getDepart() {
31
		return isset($this->parametres['navigation.depart']) ? $this->parametres['navigation.depart'] : 0;
31
		return isset($this->parametres['navigation.depart']) ? $this->parametres['navigation.depart'] : 0;
32
	}
32
	}
33
	
33
 
34
	/**
34
	/**
35
	 * Obtenir la limite courante
35
	 * Obtenir la limite courante
36
	 * */
36
	 * */
37
	public function getLimite() {
37
	public function getLimite() {
-
 
38
		$limite = 10;
38
		return isset($this->parametres['navigation.limite']) ? $this->parametres['navigation.limite'] : 10;
39
		if (isset($this->parametres['navigation.limite']) && is_numeric($this->parametres['navigation.limite'])) {
-
 
40
			$limite = $this->parametres['navigation.limite'];
-
 
41
			$limite = ($limite < 1000) ? $limite : 1000;// Pour éviter les abus !
-
 
42
		}
-
 
43
		return $limite;
39
	}
44
	}
40
	
45
 
41
	/**
46
	/**
42
	 * Configurer l'Url de navigation en fonction du fichier de configuration
47
	 * Configurer l'Url de navigation en fonction du fichier de configuration
43
	 * */
48
	 * */
44
	public function chargerUrl() {
49
	public function chargerUrl() {
45
		$this->urlNavigation = new Url(Config::get('url_service'));
50
		$this->urlNavigation = new Url(Config::get('url_service'));
46
		$this->urlNavigation->setOption(Url::OPTION_ENCODER_VALEURS, true);
51
		$this->urlNavigation->setOption(Url::OPTION_ENCODER_VALEURS, true);
47
	}
52
	}
48
	
53
 
49
	/**
54
	/**
50
	 * Obtenir l'url en fonction d'un départ et d'une limite donnée
55
	 * Obtenir l'url en fonction d'un départ et d'une limite donnée
51
	 * @param int $depart l'entier de départ
56
	 * @param int $depart l'entier de départ
52
	 * @param int $limite le nombre d'éléments limite
57
	 * @param int $limite le nombre d'éléments limite
53
	 * */
58
	 * */
Line 56... Line 61...
56
			return $this->urlNavigation;
61
			return $this->urlNavigation;
57
		} else {
62
		} else {
58
			return $this->obtenirUrlNavigation($depart, $limite);
63
			return $this->obtenirUrlNavigation($depart, $limite);
59
		}
64
		}
60
	}
65
	}
61
	
66
 
62
	/**
67
	/**
63
	* Récupérer l'url de navigation en concaténant d'éventuels paramètres
68
	* Récupérer l'url de navigation en concaténant d'éventuels paramètres
64
	* @param $depart l'entier de départ de la recherche
69
	* @param $depart l'entier de départ de la recherche
65
	* @param $limite le nombre de résultats à retourner
70
	* @param $limite le nombre de résultats à retourner
66
	* @param $parametresAdditionnels le tableau contenant les parametres => valeurs additionnels
71
	* @param $parametresAdditionnels le tableau contenant les parametres => valeurs additionnels
67
	* */
72
	* */
68
	private function obtenirUrlNavigation($depart, $limite) {
73
	private function obtenirUrlNavigation($depart, $limite) {
69
	
74
 
70
	$parametres = $this->parametres;
75
	$parametres = $this->parametres;
71
	$parametres['navigation.depart'] = $depart;
76
	$parametres['navigation.depart'] = $depart;
72
	$parametres['navigation.limite'] = $limite;
77
	$parametres['navigation.limite'] = $limite;
73
			
78
 
74
	$this->urlNavigation->setRequete($parametres);
79
	$this->urlNavigation->setRequete($parametres);
75
	$url = $this->urlNavigation->getURL();
80
	$url = $this->urlNavigation->getURL();
76
	return $url;
81
	return $url;
77
	}
82
	}
78
	
83
 
79
	/**
84
	/**
80
	* Récupérer le lien pour afficher les images précédentes en fonction des paramètres
85
	* Récupérer le lien pour afficher les images précédentes en fonction des paramètres
81
	* */
86
	* */
82
	public function recupererHrefPrecedent() {
87
	public function recupererHrefPrecedent() {
83
		$departActuel = $this->getDepart();
88
		$departActuel = $this->getDepart();
84
		$limite = $this->getLimite();
89
		$limite = $this->getLimite();
85
		$departPrecedent = $departActuel - $limite;
90
		$departPrecedent = $departActuel - $limite;
86
	
91
 
87
		$url = null;
92
		$url = null;
88
	
93
 
89
		if ($departActuel > 0) {
94
		if ($departActuel > 0) {
90
			$url = $this->getUrl($departPrecedent, $limite);
95
			$url = $this->getUrl($departPrecedent, $limite);
91
		}
96
		}
92
		return $url;
97
		return $url;
93
	}
98
	}
94
	
99
 
95
	/**
100
	/**
96
	 * Récupérer le lien pour afficher les images suivantes en fonction des paramètres
101
	 * Récupérer le lien pour afficher les images suivantes en fonction des paramètres
97
	 * */
102
	 * */
98
	public function recupererHrefSuivant() {
103
	public function recupererHrefSuivant() {
99
	
104
 
100
		$departActuel = $this->getDepart();
105
		$departActuel = $this->getDepart();
101
		$limite = $this->getLimite();
106
		$limite = $this->getLimite();
102
		$departSuivant = $departActuel + $limite;
107
		$departSuivant = $departActuel + $limite;
103
		$url = null;
108
		$url = null;
104
		if ($departSuivant < $this->total) {
109
		if ($departSuivant < $this->total) {
105
			$url = $this->getUrl($departSuivant, $limite);
110
			$url = $this->getUrl($departSuivant, $limite);
106
		}
111
		}
107
		return $url;
112
		return $url;
108
	}
113
	}
109
	
114
 
110
	/**
115
	/**
111
	 * Retourner le nombre total d'éléments
116
	 * Retourner le nombre total d'éléments
112
	 * */
117
	 * */
113
	public function getTotal() {
118
	public function getTotal() {
114
		return $this->total;
119
		return $this->total;
115
	}
120
	}
116
	
121
 
117
	/**
122
	/**
118
	 * Enregistrer le nombre total d'éléments
123
	 * Enregistrer le nombre total d'éléments
119
	 * @param int $total le nombre d'éléments
124
	 * @param int $total le nombre d'éléments
120
	 * */
125
	 * */
121
	public function setTotal($total) {
126
	public function setTotal($total) {
122
		$this->total = $total;
127
		$this->total = $total;
123
	}
128
	}
124
	
129
 
125
}
130
}
126
?>
131
?>
127
132