Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1671 Rev 1679
Line 51... Line 51...
51
		'mots_cles' => 'mots_cles',
51
		'mots_cles' => 'mots_cles',
52
		'debut' => 'debut',
52
		'debut' => 'debut',
53
		'limite' => 'limite',
53
		'limite' => 'limite',
54
		'format' => 'format',
54
		'format' => 'format',
55
		'colonnes' => 'colonnes',
55
		'colonnes' => 'colonnes',
56
		'transmission' => 'transmission'
56
		'transmission' => 'transmission',
-
 
57
		'obsids' => 'obsids',
57
	);
58
	);
Line 58... Line 59...
58
	
59
	
Line 59... Line 60...
59
	private $limite_decoupage_defaut = 9000; 
60
	private $limite_decoupage_defaut = 9000; 
Line 150... Line 151...
150
		if($this->doitEtPeutExporterObsPrivees($criteres)) {
151
		if($this->doitEtPeutExporterObsPrivees($criteres)) {
151
			unset($criteres['transmission']);
152
			unset($criteres['transmission']);
152
		}
153
		}
153
		$chercheur_observations = new RechercheObservation($this->config);
154
		$chercheur_observations = new RechercheObservation($this->config);
Line 154... Line 155...
154
		
155
		
155
		$debut = isset($criteres['debut']) ? $criteres['debut'] : 0;
156
		$debut = isset($criteres['debut']) ? intval($criteres['debut']) : 0;
156
		$limite = isset($criteres['limite']) ? $criteres['limite'] : 0;
157
		$limite = isset($criteres['limite']) ? intval($criteres['limite']) : 0;
-
 
158
		$colonnes = isset($criteres['colonnes']) ? $criteres['colonnes'] : 'standard,avance';
-
 
159
 
-
 
160
		if($criteres['obsids']) $criteres['sql_brut'] = sprintf('id_observation IN (%s)',
Line 157... Line 161...
157
		$colonnes = isset($criteres['colonnes']) ? $criteres['colonnes'] : 'standard,avance';
161
																implode(',', $criteres['obsids']));
158
		
162
		
159
		unset($criteres['limite']);
163
		unset($criteres['limite']);
160
		unset($criteres['debut']);
164
		unset($criteres['debut']);
-
 
165
		unset($criteres['format']);
161
		unset($criteres['format']);
166
		unset($criteres['colonnes']);
162
		unset($criteres['colonnes']);
167
		unset($criteres['obsids']);
163
		
168
 
164
		$observations = $chercheur_observations->rechercherObservations(null, $criteres, $debut, $limite)->get();
169
		$observations = $chercheur_observations->rechercherObservations(null, $criteres, $debut, $limite, TRUE)->get();
165
		$ids = array();
170
		$ids = array();
166
		foreach($observations as &$obs) {
171
		foreach($observations as &$obs) {
Line 198... Line 203...
198
		foreach($parametres as $cle => $valeur) {
203
		foreach($parametres as $cle => $valeur) {
199
			if(trim($valeur) != '' && isset($this->parametres_autorises[$cle])) {
204
			if(trim($valeur) != '' && isset($this->parametres_autorises[$cle])) {
200
				$parametres_traites[$this->parametres_autorises[$cle]] = $valeur;
205
				$parametres_traites[$this->parametres_autorises[$cle]] = $valeur;
201
			}
206
			}
202
		}
207
		}
-
 
208
		$parametres_traites['obsids'] = @self::traiterObsIds($parametres['obsids']);
203
		return $parametres_traites;
209
		return $parametres_traites;
204
	}
210
	}
Line 205... Line 211...
205
	
211
	
206
	private function envoyerCsv($csv) {
212
	private function envoyerCsv($csv) {
Line 351... Line 357...
351
		$utilisateur = $gestion_utilisateur->obtenirIdentiteConnectee();
357
		$utilisateur = $gestion_utilisateur->obtenirIdentiteConnectee();
352
		return $utilisateur['connecte'] && 
358
		return $utilisateur['connecte'] && 
353
				$utilisateur['id_utilisateur'] != '' &&
359
				$utilisateur['id_utilisateur'] != '' &&
354
				$id_utilisateur == $utilisateur['id_utilisateur'];
360
				$id_utilisateur == $utilisateur['id_utilisateur'];
355
	}
361
	}
-
 
362
 
-
 
363
	static function traiterObsIds($range_param) {
-
 
364
		if (!isset($range_param)) return NULL;
-
 
365
		// trim() car: `POST http://url<<<"range=*"`
-
 
366
		if (trim($range_param) == '*') return NULL;
-
 
367
		return self::rangeToList(trim($range_param));
-
 
368
	}
-
 
369
 
-
 
370
	/*
-
 
371
	 * @param $fieldSets: un range, eg: 1-5,8,32,58-101
-
 
372
	 * @return un tableau triƩ, eg: 1,2,3,4,5,8,32,58,...,101
-
 
373
	 * http://stackoverflow.com/questions/7698664/converting-a-range-or-partial-array-in-the-form-3-6-or-3-6-12-into-an-arra
-
 
374
	 */
-
 
375
	static function rangeToList($in = '') {
-
 
376
		$inSets = explode(',', trim($in, ','));
-
 
377
		$outSets = array();
-
 
378
 
-
 
379
		foreach($inSets as $inSet) {
-
 
380
			list($start,$end) = explode('-', $inSet . '-' . $inSet);
-
 
381
			// ignore les ranges trop importants
-
 
382
			if($start > 10000000 || $end > 10000000 || abs($start-$end) > 10000) continue;
-
 
383
			$outSets = array_merge($outSets,range($start,$end));
-
 
384
		}
-
 
385
		$outSets = array_unique($outSets);
-
 
386
		$outSets = array_filter($outSets, 'is_numeric');
-
 
387
		sort($outSets);
-
 
388
		return $outSets;
-
 
389
	}
356
}
390
}
357
?>
391
?>
358
392