Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 211 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 211 Rev 215
1
<?php
1
<?php
2
// TODO : il est peut être nécessaire de mieux distinguer les attributs parametres et parametresOrigine
2
// TODO : il est peut être nécessaire de mieux distinguer les attributs parametres et parametresOrigine
-
 
3
// TODO : déplacer les méthodes getMasquePourBdd et getPourBdd dans les DAO
3
class Parametres implements Iterator {
4
class Parametres implements Iterator {
4
 
5
 
5
	private $parametres = array();
6
	private $parametres = array();
6
	private $parametresOrigine = array();
7
	private $parametresOrigine = array();
-
 
8
	private $parametresTypeEntier = array('navigation.limite', 'navigation.depart');
7
	private $bdd = null;
9
	private $bdd = null;
8
 
10
 
9
	public function __construct(Array $parametres, Bdd $bdd) {
11
	public function __construct(Array $parametres, Bdd $bdd) {
10
		$this->parametresOrigine = $parametres;
12
		$this->parametresOrigine = $parametres;
11
		$this->parametres = $this->parametresOrigine;
13
		$this->parametres = $this->parametresOrigine;
12
		$this->bdd = $bdd;
14
		$this->bdd = $bdd;
13
		$this->definirValeursParDefaut();
15
		$this->definirValeursParDefaut();
14
	}
16
	}
15
 
17
 
16
	public function current () {
18
	public function current () {
17
		return current($this->parametresOrigine);
19
		return current($this->parametresOrigine);
18
	}
20
	}
19
 
21
 
20
	public function key() {
22
	public function key() {
21
		return key($this->parametresOrigine);
23
		return key($this->parametresOrigine);
22
	}
24
	}
23
 
25
 
24
	public function next() {
26
	public function next() {
25
		return next($this->parametresOrigine);
27
		return next($this->parametresOrigine);
26
	}
28
	}
27
 
29
 
28
	public function rewind() {
30
	public function rewind() {
29
		return reset($this->parametresOrigine);
31
		return reset($this->parametresOrigine);
30
	}
32
	}
31
 
33
 
32
	public function valid() {
34
	public function valid() {
33
		return current($this->parametresOrigine) == false ? false : true;
35
		return current($this->parametresOrigine) == false ? false : true;
34
	}
36
	}
35
 
37
 
36
	public function get($parametreCode) {
38
	public function get($parametreCode) {
37
		$valeur = '';
39
		$valeur = '';
38
		if ($this->exister($parametreCode)) {
40
		if ($this->exister($parametreCode)) {
39
			$valeur = $this->parametres[$parametreCode];
41
			$valeur = $this->parametres[$parametreCode];
40
		}
42
		}
-
 
43
		return $this->etreParametreDeTypeEntier($parametreCode) ? (int) $valeur : $valeur;
-
 
44
	}
-
 
45
 
-
 
46
	private function etreParametreDeTypeEntier($parametreCode) {
-
 
47
		$entier = in_array($parametreCode, $this->parametresTypeEntier) ? true : false;
41
		return $valeur;
48
		return $entier;
42
	}
49
	}
43
 
50
 
44
	public function getListe($parametreCode) {
51
	public function getListe($parametreCode) {
45
		$valeurs = array();
52
		$valeurs = array();
46
		if ($this->exister($parametreCode)) {
53
		if ($this->exister($parametreCode)) {
47
			$valeurs = explode(',', $this->parametres[$parametreCode]);
54
			$valeurs = explode(',', $this->parametres[$parametreCode]);
48
			$valeurs = array_map('trim', $valeurs);
55
			$valeurs = array_map('trim', $valeurs);
49
		}
56
		}
50
		return $valeurs;
57
		return $valeurs;
51
	}
58
	}
52
 
59
 
53
	public function exister($parametreCode) {
60
	public function exister($parametreCode) {
54
		$existe = false;
61
		$existe = false;
55
		if (array_key_exists($parametreCode, $this->parametres) && $this->parametres[$parametreCode] != '') {
62
		if (array_key_exists($parametreCode, $this->parametres) && $this->parametres[$parametreCode] != '') {
56
			$existe = true;
63
			$existe = true;
57
		}
64
		}
58
		return $existe;
65
		return $existe;
59
	}
66
	}
60
 
67
 
61
	public function getPourBdd($parametreCode) {
68
	public function getPourBdd($parametreCode) {
62
		$valeur = false;
69
		$valeur = false;
63
		if ($this->exister($parametreCode)) {
70
		if ($this->exister($parametreCode)) {
64
			$valeur = $this->get($parametreCode);
71
			$valeur = $this->get($parametreCode);
65
			$valeur = $this->proteger($valeur);
72
			$valeur = $this->proteger($valeur);
66
		}
73
		}
67
		return $valeur;
74
		return $valeur;
68
	}
75
	}
69
 
76
 
70
	private function proteger($valeur) {
77
	private function proteger($valeur) {
71
		$valeur = $this->bdd->proteger($valeur);
78
		$valeur = $this->bdd->proteger($valeur);
72
		return $valeur;
79
		return $valeur;
73
	}
80
	}
74
 
81
 
75
	public function getMasquePourBdd($type = '') {
82
	public function getMasquePourBdd($type = '') {
76
		$masque = false;
83
		$masque = false;
77
		$parametreMasque = 'masque'.($type != '' ? '.'.$type : $type);
84
		$parametreMasque = 'masque'.($type != '' ? '.'.$type : $type);
78
		if ($this->exister($parametreMasque)) {
85
		if ($this->exister($parametreMasque)) {
79
			$masque = $this->get($parametreMasque);
86
			$masque = $this->get($parametreMasque);
80
			$recherche = $this->get('recherche');
87
			$recherche = $this->get('recherche');
81
			if ($recherche == 'etendue') {
88
			if ($recherche == 'etendue') {
82
				$masque = str_replace(' ', '% ', $masque);
89
				$masque = str_replace(' ', '% ', $masque);
83
				$masque .= '%';
90
				$masque .= '%';
84
			}
91
			}
85
			$masque = $this->proteger($masque);
92
			$masque = $this->proteger($masque);
86
		}
93
		}
87
		return $masque;
94
		return $masque;
88
	}
95
	}
89
 
96
 
90
	private function definirValeursParDefaut() {
97
	private function definirValeursParDefaut() {
91
		if ($this->exister('recherche') == false) {
98
		if ($this->exister('recherche') == false) {
92
			$this->parametres['recherche'] = 'stricte';
99
			$this->parametres['recherche'] = 'stricte';
93
		}
100
		}
94
		if ($this->exister('ns.format') == false) {
101
		if ($this->exister('ns.format') == false) {
95
			$this->parametres['ns.format'] = 'txt';
102
			$this->parametres['ns.format'] = 'txt';
96
		}
103
		}
97
		if ($this->exister('retour') == false) {
104
		if ($this->exister('retour') == false) {
98
			$this->parametres['retour'] = 'application/json';
105
			$this->parametres['retour'] = 'application/json';
99
		}
106
		}
100
		if ($this->exister('retour.format') == false) {
107
		if ($this->exister('retour.format') == false) {
101
			$this->parametres['retour.format'] = 'max';
108
			$this->parametres['retour.format'] = 'max';
102
		}
109
		}
103
		if ($this->exister('retour.langue') == false) {
110
		if ($this->exister('retour.langue') == false) {
104
			$this->parametres['retour.langue'] = 'fr';
111
			$this->parametres['retour.langue'] = 'fr';
105
		}
112
		}
106
		if ($this->exister('version.projet') == false) {
113
		if ($this->exister('version.projet') == false) {
107
			$this->parametres['version.projet'] = '+';
114
			$this->parametres['version.projet'] = '+';
108
		}
115
		}
109
		if ($this->exister('navigation.depart') == false) {
116
		if ($this->exister('navigation.depart') == false) {
110
			$this->parametres['navigation.depart'] = (int) 0;
117
			$this->parametres['navigation.depart'] = (int) 0;
111
		}
118
		}
112
		if ($this->exister('navigation.limite') == false) {
119
		if ($this->exister('navigation.limite') == false) {
113
			$this->parametres['navigation.limite'] = (int) 100;
120
			$this->parametres['navigation.limite'] = (int) 100;
114
		}
121
		}
115
	}
122
	}
116
}
123
}
117
?>
124
?>