Subversion Repositories eFlore/Applications.del

Rev

Rev 1793 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1793 Rev 1794
1
<?php
1
<?php
-
 
2
// declare(encoding='UTF-8');
2
/**
3
/**
3
* Navigation gère les url de navigation en fonction d'un départ et d'une limite
4
 * Gère les paramètres de type "masque..." utilisés dans l'URL.
4
 
5
 *
5
* @category php 5.2
6
 * @category DEL
6
* @package del
7
 * @package Services
-
 
8
 * @subpackage Bibliotheque
-
 
9
 * @version 0.1
7
* @author Grégoire Duché <gregoire@tela-botanica.org>
10
 * @author Mathias CHOUET <mathias@tela-botanica.org>
-
 
11
 * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
8
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
12
 * @author Aurelien PERONNET <aurelien@tela-botanica.org>
9
* @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
13
 * @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>
10
* @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
14
 * @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>
11
* @version	$Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $
15
 * @copyright 1999-2014 Tela Botanica <accueil@tela-botanica.org>
12
*/
16
*/
13
class Masque {
17
class Masque {
14
 
18
 
15
	const prefixe = 'masque.';
19
	const PREFIXE = 'masque.';
16
	const masqueGeneral = 'masque';
20
	const MASQUE_GENERAL = 'masque';
17
 
21
 
18
	private $masquesPossibles;
22
	private $masquesPossibles;
19
	private $parametres;
23
	private $parametres;
20
	private $masque;
24
	private $masque;
21
 
25
 
22
	/**
26
	/**
23
	 * Constructeur de la classe Masque
27
	 * Constructeur de la classe Masque
24
	 * @param $masquesPossibles la liste des masques autorisés séparé par des ','
28
	 * @param $masquesPossibles la liste des masques autorisés séparé par des ','
25
	 * */
29
	 * */
26
	public function __construct($masquesPossibles, $parametres = null) {
30
	public function __construct($masquesPossibles, $parametres = null) {
27
		if ($masquesPossibles != null && trim($masquesPossibles) == '') {
31
		if ($masquesPossibles != null && trim($masquesPossibles) == '') {
28
			$message = 'La liste des masques possibles est obligatoire';
32
			$message = 'La liste des masques possibles est obligatoire';
29
			$code = RestServeur::HTTP_CODE_ERREUR;
33
			$code = RestServeur::HTTP_CODE_ERREUR;
30
			throw new Exception($message, $code);
34
			throw new Exception($message, $code);
31
		}
35
		}
32
		$this->masquesPossibles = explode(',', $masquesPossibles);
36
		$this->masquesPossibles = explode(',', $masquesPossibles);
33
		$this->parametres = $parametres;
37
		$this->parametres = $parametres;
34
		$this->chargerMasque();
38
		$this->chargerMasque();
35
	}
39
	}
36
 
40
 
37
	/**
41
	/**
38
	 * Parcourir le tableau Paramètres pour trouver tous les champs masque
42
	 * Parcourir le tableau Paramètres pour trouver tous les champs masque
39
	 */
43
	 */
40
	public function chargerMasque() {
44
	private function chargerMasque() {
41
		if ($this->parametres != null) {
45
		if ($this->parametres != null) {
42
			foreach ($this->parametres as $id => $parametre) {
46
			foreach ($this->parametres as $id => $parametre) {
43
				if (strpos($id, self::prefixe) === 0 || $id == self::masqueGeneral) {
47
				if (strpos($id, self::PREFIXE) === 0 || $id == self::MASQUE_GENERAL) {
44
					if (in_array(str_replace(self::prefixe, '', $id), $this->masquesPossibles)) {
48
					if (in_array(str_replace(self::PREFIXE, '', $id), $this->masquesPossibles)) {
45
						$this->masque[$id] = $parametre;
49
						$this->masque[$id] = $parametre;
46
					}
50
					}
47
				}
51
				}
48
			}
52
			}
49
		}
53
		}
50
	}
54
	}
51
 
55
 
52
	/**
56
	/**
53
	 * Retourner les masques sous forme de chaine
57
	 * Retourner les masques sous forme de chaine
54
	 * @return String la chaine de caractère sous la forme masque=valeur&masque2=valeur*/
58
	 * @return String la chaine de caractère sous la forme masque=valeur&masque2=valeur*/
55
	public function getChaineMasque() {
59
	public function getChaineMasque() {
56
		if (!empty($this->masque)) {
60
		if (!empty($this->masque)) {
57
			$chaine = array();
61
			$chaine = array();
58
			foreach ($this->masque as $id => $valeur) {
62
			foreach ($this->masque as $id => $valeur) {
59
				$chaine[] = $id.'='.$valeur;
63
				$chaine[] = $id.'='.$valeur;
60
			}
64
			}
61
			return implode('&', $chaine);
65
			return implode('&', $chaine);
62
		} else {
66
		} else {
63
			return '';
67
			return '';
64
		}
68
		}
65
	}
69
	}
66
 
70
 
67
	/**
71
	/**
68
	 * Récupérer tout ou partie du masque
72
	 * Récupérer tout ou partie du masque
69
	 * @param String $id (optionnel) l'idenfiant du masque
73
	 * @param String $id (optionnel) l'idenfiant du masque
70
	 * @return une chaine de caractère si l'identifiant est passé en paramètre, un tableau sinon
74
	 * @return une chaine de caractère si l'identifiant est passé en paramètre, un tableau sinon
71
	 * */
75
	 * */
72
	public function getMasque($id = null) {
76
	public function getMasque($id = null) {
73
		if (isset($id)) {
77
		if (isset($id)) {
74
			return $this->masque[self::prefixe.$id];
78
			return $this->masque[self::PREFIXE.$id];
75
		} else {
79
		} else {
76
			return $this->masque;
80
			return $this->masque;
77
		}
81
		}
78
	}
82
	}
79
}
83
}