Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 811 Rev 930
Line 33... Line 33...
33
class MoissonnageCartes {
33
class MoissonnageCartes {
Line 34... Line 34...
34
 
34
 
35
	const MIME_MAP = "text/html";
35
	const MIME_MAP = "text/html";
Line -... Line 36...
-
 
36
	const MIME_PNG = "image/png";
-
 
37
	
-
 
38
	const METHODE_TELECHARGEMENT = "telecharger";
36
	const MIME_PNG = "image/png";
39
	const METHODE_AFFICHAGE = "afficher";
37
	
40
	
Line 38... Line 41...
38
	private $ressources;
41
	private $ressources;
39
	private $parametres;
42
	private $parametres;
40
	
43
	
41
	private $referentiel = '';
44
	private $referentiel = '';
42
	private $taxon   = null;
45
	private $taxon   = null;
-
 
46
	private $sources = array();
43
	private $sources = array();
47
	private $format  = 0;
Line 44... Line 48...
44
	private $format  = 0;
48
	private $retour  = self::MIME_MAP;
45
	private $retour  = self::MIME_MAP;
49
	private $methode_livraison = self::METHODE_AFFICHAGE;
Line 54... Line 58...
54
		if ($this->analyserRessources() == true) {
58
		if ($this->analyserRessources() == true) {
55
			$resultat = $this->formerLegende();
59
			$resultat = $this->formerLegende();
56
		} else {
60
		} else {
57
			$this->traiterParametres();
61
			$this->traiterParametres();
58
			$resultat = $this->formerCarte();
62
			$resultat = $this->formerCarte();
-
 
63
			if($this->methode_livraison == self::METHODE_TELECHARGEMENT) {
-
 
64
				$this->telechargerCarte($resultat->corps);
-
 
65
			}
59
		}
66
		}
60
		return $resultat;
67
		return $resultat;
61
	}
68
	}
Line 62... Line 69...
62
	
69
	
Line 110... Line 117...
110
	private function traiterParametres() {
117
	private function traiterParametres() {
111
		$this->verifierReferentielEtTaxon();
118
		$this->verifierReferentielEtTaxon();
112
		$this->verifierParametreSource();
119
		$this->verifierParametreSource();
113
		$this->verifierParametreFormat();
120
		$this->verifierParametreFormat();
114
		$this->verifierParametreRetour();
121
		$this->verifierParametreRetour();
-
 
122
		$this->verifierParametreMethodeLivraison();
115
		if (count($this->erreurs) > 0) {
123
		if (count($this->erreurs) > 0) {
116
			$this->renvoyerErreurs();
124
			$this->renvoyerErreurs();
117
		}
125
		}
118
	}
126
	}
Line 138... Line 146...
138
		} else {
146
		} else {
139
			$this->retour = $this->parametres['retour'];
147
			$this->retour = $this->parametres['retour'];
140
		}
148
		}
141
	}
149
	}
Line -... Line 150...
-
 
150
	
-
 
151
	private function verifierParametreMethodeLivraison() {
-
 
152
		$typesMethodeLivraison = array(self::METHODE_AFFICHAGE, self::METHODE_TELECHARGEMENT);
-
 
153
		if (isset($this->parametres['methode']) && !in_array($this->parametres['methode'], $typesMethodeLivraison)) {
-
 
154
			$this->erreurs[] = "Le format de methode de livraison ".$this->parametres['methode']." n'est pas acceptée par le service. ".
-
 
155
						" Seuls les methodes suivantes sont gérés : ".implode(',', $typesMethodeLivraison);
-
 
156
		} else {
-
 
157
			$this->methode_livraison = $this->parametres['methode'];
-
 
158
		}
-
 
159
	}
142
	
160
	
143
	private function verifierParametreSource() {
161
	private function verifierParametreSource() {
144
		$sourcesDisponibles = explode(',', trim(Config::get('sourcesDonnees')));
162
		$sourcesDisponibles = explode(',', trim(Config::get('sourcesDonnees')));
145
		if (isset($this->parametres['source'])) {
163
		if (isset($this->parametres['source'])) {
146
			$sourcesParametre = explode(',', trim($this->parametres['source']));
164
			$sourcesParametre = explode(',', trim($this->parametres['source']));
Line 219... Line 237...
219
		$formateur = new FormateurSVG($nomFichierSVG, $this->sources, $this->retour, $this->format);
237
		$formateur = new FormateurSVG($nomFichierSVG, $this->sources, $this->retour, $this->format);
220
		$formateur->formaterCarte($this->taxon);
238
		$formateur->formaterCarte($this->taxon);
221
		$resultat = new ResultatService();
239
		$resultat = new ResultatService();
222
		$resultat->corps = $formateur->renvoyerCarte();
240
		$resultat->corps = $formateur->renvoyerCarte();
223
		$resultat->mime = $this->retour;
241
		$resultat->mime = $this->retour;
-
 
242
		
-
 
243
		//echo '<pre>'.print_r($resultat,true).'</pre>';exit;
Line 224... Line 244...
224
 
244
 
225
		return $resultat;
245
		return $resultat;
Line -... Line 246...
-
 
246
	}
-
 
247
	
-
 
248
	private function telechargerCarte($fichier) {		
-
 
249
		if (function_exists('mb_strlen')) {
-
 
250
			$taille = mb_strlen($fichier, '8bit');
-
 
251
		} else {
-
 
252
			$taille = strlen($fichier);
-
 
253
		}
-
 
254
		
-
 
255
		$extension = ($this->retour == "text/html") ? 'html' : 'png';
-
 
256
		
-
 
257
		header('Content-Description: File Transfer');
-
 
258
		header('Content-Type: application/octet-stream');
-
 
259
		header('Content-Disposition: attachment; filename="carte.'.$extension.'"');
-
 
260
		header('Content-Transfer-Encoding: binary');
-
 
261
		header('Connection: Keep-Alive');
-
 
262
		header('Expires: 0');
-
 
263
		header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
-
 
264
		header('Pragma: public');
-
 
265
		header('Content-Length: '.$taille);
-
 
266
		
226
	}
267
	}
Line 227... Line 268...
227
	
268
	
228
}
269
}