Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

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