Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 501 | Rev 512 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 501 Rev 506
Line 43... Line 43...
43
	
43
	
44
	
44
	
45
	public function consulter($ressources, $parametres) {
45
	public function consulter($ressources, $parametres) {
-
 
46
		$this->ressources = $ressources;
46
		$this->ressources = $ressources;
47
		$this->parametres = $parametres;
47
		$this->parametres = $parametres;
48
		$this->verifierParametres();
48
		$this->initialiserConfiguration();
49
		$this->initialiserConfiguration();
49
		$resultats = '';
50
		$resultats = '';
50
		$this->traiterRessources();
51
		$this->traiterRessources();
Line 72... Line 73...
72
		$this->definirVersion();
73
		$this->definirVersion();
73
		$this->definirFormat();
74
		$this->definirFormat();
74
		$this->definirTable($this->version);
75
		$this->definirTable($this->version);
75
	}
76
	}
Line -... Line 77...
-
 
77
	
-
 
78
	
76
	
79
	
Line 77... Line 80...
77
	abstract function definirTable($version);
80
	abstract function definirTable($version);
78
	
81
	
Line 92... Line 95...
92
				}
95
				}
93
			}
96
			}
94
		}
97
		}
95
		return $tableau;
98
		return $tableau;
96
	}
99
	}
97
	
100
 
98
	//+--------------------------traitement ressources ou paramètres  -------------------------------------------+
101
	//+--------------------------traitement ressources ou paramètres  -------------------------------------------+
Line 99... Line 102...
99
	
102
	
Line -... Line 103...
-
 
103
	//+---- paramètres ----+
-
 
104
	
-
 
105
	private function verifierParametres() {
-
 
106
		if (isset($this->parametres)) {
-
 
107
			$parametres_dispo = array('retour', 'retour.format', 'version.projet');
-
 
108
			$parametres = array_keys($this->parametres);
-
 
109
			foreach ($parametres as $param) {
-
 
110
				if (!in_array($param, $parametres_dispo)) {
-
 
111
					$erreur = "Erreur : Le paramètre $param est inconnu.";
-
 
112
					$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
-
 
113
					throw new Exception($erreur, $code);
-
 
114
				}
-
 
115
			}
-
 
116
		}
-
 
117
		
100
	//+---- paramètres ----+
118
	}
101
	
119
	
102
	//on n'affiche qu'une version de graphique à la fois ( la dernière ou celle demandée )
120
	//on n'affiche qu'une version de graphique à la fois ( la dernière ou celle demandée )
103
	private function definirVersion() { 
121
	private function definirVersion() { 
104
		$this->chargerVersions();
-
 
105
		if( (!isset($this->parametres['version.projet']) ) || ((isset($this->parametres['version.projet']) )&&
122
		$this->chargerVersions();
-
 
123
		if (!isset($this->parametres['version.projet']) ) {
-
 
124
			$this->version = $this->metadonnees[0]['version'];
106
		(($this->parametres['version.projet'] == '+') || ($this->parametres['version.projet'] == '')))){
125
		} elseif ($this->parametres['version.projet'] == '+') {
-
 
126
				 $this->version = $this->metadonnees[0]['version'];
107
			$this->version = $this->metadonnees[0]['version'];
127
		} else {
-
 
128
			if($this->verifierVersion($this->parametres['version.projet'])) {
-
 
129
				$this->version = $this->parametres['version.projet'];
-
 
130
			}else {
-
 
131
				$erreur = "Erreur : La version est inconnue.";
-
 
132
				$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
108
		} else {
133
				throw new Exception($erreur, $code);
109
			$this->version = $this->parametres['version.projet'];
134
			}
Line -... Line 135...
-
 
135
		}
-
 
136
	}
-
 
137
	
-
 
138
	private function verifierVersion($version){
-
 
139
		$retour = false;
-
 
140
		foreach ($this->metadonnees as $vers) {
-
 
141
			if ($vers['version'] == $version ) {
-
 
142
				$retour = true;
-
 
143
			}
110
		}
144
		}
111
	}
145
		return $retour;
112
	
146
	}
113
	private function definirFormat() {
147
	private function definirFormat() {
114
		if (isset($this->parametres['retour.format']) ){
148
		if (isset($this->parametres['retour.format']) ){
115
			if (preg_match("/^[0-9]+$/", $this->parametres['retour.format'])){
149
			if (preg_match("/^[0-9]+$/", $this->parametres['retour.format'])){
116
				$this->largeurSVG = $this->parametres['retour.format'];
150
				$this->largeurSVG = $this->parametres['retour.format'];
117
			}else {
151
			}else {
118
				$erreur = "Erreur : Entrez la largeur voulue (en pixels) pour le paramètre retour.format.";
152
				$erreur = "Erreur : valeur inconnue. Entrez la largeur voulue (en pixels) pour le paramètre retour.format.";
119
				$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
153
				$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
120
				throw new Exception($erreur, $code);
154
				throw new Exception($erreur, $code);
121
			}
155
			}
Line 122... Line 156...
122
		}
156
		}
123
		if (!isset($this->parametres['retour']) ){
157
		if (!isset($this->parametres['retour']) ){
124
			$this->parametres['retour'] = 'image/svg+xml';
158
			$this->parametres['retour'] = 'image/svg+xml';
125
		
159
		
126
		}else {
160
		}else {
127
			if (( $this->parametres['retour'] != 'image/svg+xml')&& ( $this->parametres['retour'] != 'image/png')){
161
			if (( $this->parametres['retour'] != 'image/svg+xml')&& ( $this->parametres['retour'] != 'image/png')){
128
				$erreur = "Erreur : choisissez le format de retour pour le paramètre retour : image/svg%2Bxml ou image/png.";
162
				$erreur = "Erreur : valeur inconnue. Choisissez le format de retour pour le paramètre retour : image/svg%2Bxml ou image/png.";
129
				$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
163
				$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;