Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 163 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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