Subversion Repositories eFlore/Applications.del

Rev

Rev 789 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
723 gduche 1
<?php
2
/**
3
* Navigation gère les url de navigation en fonction d'un départ et d'une limite
4
 
5
* @category php 5.2
6
* @package del
7
* @author Grégoire Duché <gregoire@tela-botanica.org>
8
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
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
11
* @version	$Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $
12
*/
13
class Masque {
14
 
15
	const prefixe = 'masque.';
16
 
17
	private $masquesPossibles;
18
	private $parametres;
19
	private $masque;
20
 
21
	/**
22
	 * Constructeur de la classe Masque
23
	 * @param $masquesPossibles la liste des masques autorisés séparé par des ','
24
	 * */
25
	public function __construct($masquesPossibles, $parametres = null) {
26
		if ($masquesPossibles == null) {
27
			$message = 'La liste des masques possibles est obligatoire';
28
			$code = RestServeur::HTTP_CODE_ERREUR;
29
			throw new Exception($message, $code);
30
		}
31
		$this->masquesPossibles = explode(',', $masquesPossibles);
32
		$this->parametres = $parametres;
33
		$this->chargerMasque();
34
	}
35
 
36
	/**
37
	 * Parcourir le tableau Paramètres pour trouver tous les champs masque
38
	 */
39
	public function chargerMasque() {
40
		if ($this->parametres != null) {
41
			foreach ($this->parametres as $id => $parametre) {
42
				if (strpos($id, self::prefixe) === 0) {
43
					if (in_array(str_replace(self::prefixe, '', $id), $this->masquesPossibles)) {
44
						$this->masque[$id] = $parametre;
45
					}
46
				}
47
			}
48
		}
49
	}
50
 
51
	/**
52
	 * Retourner les masques sous forme de chaine
53
	 * @return String la chaine de caractère sous la forme masque=valeur&masque2=valeur*/
54
	public function getChaineMasque() {
55
		if (!empty($this->masque)) {
56
			$chaine = array();
57
			foreach ($this->masque as $id => $valeur) {
58
				$chaine[] = $id.'='.$valeur;
59
			}
60
			return implode('&', $chaine);
61
		} else {
62
			return '';
63
		}
64
	}
65
 
66
	/**
67
	 * Récupérer tout ou partie du masque
68
	 * @param String $id (optionnel) l'idenfiant du masque
69
	 * @return une chaine de caractère si l'identifiant est passé en paramètre, un tableau sinon
70
	 * */
71
	public function getMasque($id = null) {
72
		if (isset($id)) {
73
			return $this->masque[self::prefixe.$id];
74
		} else {
75
			return $this->masque;
76
		}
77
	}
78
}
79
?>