Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3131 Rev 3134
Line 63... Line 63...
63
			'limite' => 'limite',
63
			'limite' => 'limite',
64
			'format' => 'format',
64
			'format' => 'format',
65
			'colonnes' => 'colonnes',
65
			'colonnes' => 'colonnes',
66
			'transmission' => 'transmission',
66
			'transmission' => 'transmission',
67
			'obsids' => 'obsids',
67
			'obsids' => 'obsids',
-
 
68
			'standard' => 'standard',
68
	);
69
	);
Line 69... Line 70...
69
	
70
	
Line 70... Line 71...
70
	private $limite_decoupage_defaut = 9000;
71
	private $limite_decoupage_defaut = 9000;
Line 100... Line 101...
100
		}
101
		}
101
	}
102
	}
Line 102... Line 103...
102
	
103
	
103
	private function getCalcul() {
104
	private function getCalcul() {
-
 
105
		$criteres = $this->traiterParametresAutorises($_GET);
104
		$criteres = $this->traiterParametresAutorises($_GET);
106
		if (!isset($criteres['standard'])) { 
-
 
107
				$criteres['transmission'] = 1;
-
 
108
		} else {
105
		$criteres['transmission'] = 1;
109
			unset($criteres['transmission']);
106
		
110
		}
107
		// Définit si l'on exporte les obs privées ainsi que les champs étendus privés
111
		// Définit si l'on exporte les obs privées ainsi que les champs étendus privés
108
		$this->export_prive = $this->doitEtPeutExporterObsPrivees($criteres);
112
		$this->export_prive = $this->doitEtPeutExporterObsPrivees($criteres);
109
		if($this->export_prive) {
113
		if($this->export_prive) {
110
			unset($criteres['transmission']);
114
			unset($criteres['transmission']);
111
			$this->id_utilisateur = $criteres['id_utilisateur'];
115
			$this->id_utilisateur = $criteres['id_utilisateur'];
-
 
116
		}
112
		}
117
		if (isset($criteres['standard']) && $criteres['standard'] == 1) {
-
 
118
			$chercheur_observations = new RechercheObservationExport($this->config);
-
 
119
		} else {
-
 
120
			$chercheur_observations = new RechercheObservation($this->config);
113
		$chercheur_observations = new RechercheObservationExport($this->config);
121
		}
114
		$numero_page = isset($criteres['debut']) ? $criteres['debut'] : 0;
122
		$numero_page = isset($criteres['debut']) ? $criteres['debut'] : 0;
115
		$limite = isset($criteres['limite']) ? $criteres['limite'] : 0;
123
		$limite = isset($criteres['limite']) ? $criteres['limite'] : 0;
Line 116... Line 124...
116
		$colonnes = @FormateurGroupeColonne::colGroupsValidation($criteres['colonnes']);
124
		$colonnes = @FormateurGroupeColonne::colGroupsValidation($criteres['colonnes'], $criteres['programme']);
117
		
125
		
118
		unset($criteres['limite']);
126
		unset($criteres['limite']);
119
		unset($criteres['debut']);
127
		unset($criteres['debut']);
Line 164... Line 172...
164
		// ne pas faire de super-requête en cas d'absence de paramètres
172
		// ne pas faire de super-requête en cas d'absence de paramètres
165
		// par exemple "format", au minimum, devrait être défini
173
		// par exemple "format", au minimum, devrait être défini
166
		if(!$criteres) die('erreur: pas de paramètre reçu');
174
		if(!$criteres) die('erreur: pas de paramètre reçu');
167
		if(!in_array($this->format, array('pdf','csv','xls'))) die('erreur: format invalide');
175
		if(!in_array($this->format, array('pdf','csv','xls'))) die('erreur: format invalide');
Line -... Line 176...
-
 
176
		
168
		
177
		if (!isset($criteres['standard'])) {
-
 
178
			$criteres['transmission'] = 1;
-
 
179
		} else {
-
 
180
			unset($criteres['transmission']);
169
		//$criteres['transmission'] = 1;
181
		}
170
		// Définit si l'on exporte les obs privées ainsi que les champs étendus privés
182
		// Définit si l'on exporte les obs privées ainsi que les champs étendus privés
171
		$this->export_prive = $this->doitEtPeutExporterObsPrivees($criteres);
183
		$this->export_prive = $this->doitEtPeutExporterObsPrivees($criteres);
172
		if($this->export_prive) {
184
		if($this->export_prive) {
173
			//unset($criteres['transmission']);
185
			//unset($criteres['transmission']);
174
			$this->id_utilisateur = $criteres['ce_utilisateur'];
186
			$this->id_utilisateur = $criteres['ce_utilisateur'];
-
 
187
		}
175
		}
188
		if (isset($criteres['standard']) && $criteres['standard'] == 1) {
-
 
189
			$chercheur_observations = new RechercheObservationExport($this->config);
-
 
190
		} else {
176
		$chercheur_observations = new RechercheObservationExport($this->config);
191
			$chercheur_observations = new RechercheObservation($this->config);
177
		
192
		}
178
		$debut = isset($criteres['debut']) ? intval($criteres['debut']) : 0;
193
		$debut = isset($criteres['debut']) ? intval($criteres['debut']) : 0;
179
		$limite = isset($criteres['limite']) ? intval($criteres['limite']) : 0;
194
		$limite = isset($criteres['limite']) ? intval($criteres['limite']) : 0;
180
		$groupes = @FormateurGroupeColonne::colGroupsValidation($criteres['colonnes']);
195
		$groupes = @FormateurGroupeColonne::colGroupsValidation($criteres['colonnes']);
Line 241... Line 256...
241
			if(is_string($valeur) && !trim($valeur)) continue;
256
			if(is_string($valeur) && !trim($valeur)) continue;
242
			if(isset($this->parametres_autorises[$cle])) {
257
			if(isset($this->parametres_autorises[$cle])) {
243
				$parametres_traites[$this->parametres_autorises[$cle]] = $valeur;
258
				$parametres_traites[$this->parametres_autorises[$cle]] = $valeur;
244
			}
259
			}
245
		}
260
		}
246
		$parametres_traites['obsids'] = @self::traiterObsIds($parametres['obsids']);
-
 
247
		return $parametres_traites;
261
		return $parametres_traites;
248
	}
262
	}
Line 249... Line 263...
249
	
263
	
250
	private function envoyerCsv($csv) {
264
	private function envoyerCsv($csv) {
Line 355... Line 369...
355
		$gestion_utilisateur = new GestionUtilisateur($this->config);
369
		$gestion_utilisateur = new GestionUtilisateur($this->config);
356
		$utilisateur = $gestion_utilisateur->obtenirIdentiteConnectee();
370
		$utilisateur = $gestion_utilisateur->obtenirIdentiteConnectee();
357
		return ! empty($utilisateur['id_utilisateur']) && $id_utilisateur == $utilisateur['id_utilisateur'];
371
		return ! empty($utilisateur['id_utilisateur']) && $id_utilisateur == $utilisateur['id_utilisateur'];
358
	}
372
	}
Line 359... Line -...
359
	
-
 
360
	static function traiterObsIds($range_param) {
-
 
361
		if (!isset($range_param)) return NULL;
-
 
362
		// trim() car: `POST http://url<<<"range=*"`
-
 
363
		if (trim($range_param) == '*') return NULL;
-
 
364
		return self::rangeToList(trim($range_param));
-
 
365
	}
373
	
366
	
-
 
367
	/*
-
 
368
	 * @param $fieldSets: un range, eg: 1-5,8,32,58-101
-
 
369
	 * @return un tableau trié, eg: 1,2,3,4,5,8,32,58,...,101
-
 
370
	 * http://stackoverflow.com/questions/7698664/converting-a-range-or-partial-array-in-the-form-3-6-or-3-6-12-into-an-arra
-
 
371
	 */
-
 
372
	static function rangeToList($in = '') {
-
 
373
		$inSets = explode(',', trim($in, ','));
-
 
374
		$outSets = array();
-
 
375
		
-
 
376
		foreach($inSets as $inSet) {
-
 
377
			list($start,$end) = explode('-', $inSet . '-' . $inSet);
-
 
378
			// ignore les ranges trop importants
-
 
379
			if($start > 10000000 || $end > 10000000 || abs($start-$end) > 10000) continue;
-
 
380
			$outSets = array_merge($outSets,range($start,$end));
-
 
381
		}
-
 
382
		$outSets = array_unique($outSets);
-
 
383
		$outSets = array_filter($outSets, 'is_numeric');
-
 
384
		sort($outSets);
-
 
385
		return $outSets;
-
 
386
	}
374
 
387
}
375
}
388
?>
376
?>