Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1690 Rev 1692
Line 219... Line 219...
219
	private function envoyerXls($workbook) {
219
	private function envoyerXls($workbook) {
220
		$workbook->close();
220
		$workbook->close();
221
		exit;
221
		exit;
222
	}
222
	}
Line 223... Line 223...
223
	
223
	
224
	private function convertirEnCsv(&$data, &$colonnes, &$colonnes_supplementaires, &$champs_supplementaires = array())
-
 
225
	{
224
	private function convertirEnCsv(&$data, &$colonnes, &$colonnes_supplementaires, &$champs_supplementaires = array()) {
226
		$chemin_temp = "php://temp";
225
		$chemin_temp = "php://temp";
Line 227... Line 226...
227
		$outstream = fopen($chemin_temp, 'r+');
226
		$outstream = fopen($chemin_temp, 'r+');
228
 
-
 
Line 229... Line 227...
229
		$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
227
 
230
		$intitule_champs = FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes);
228
		$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
231
 
-
 
Line 232... Line 229...
232
		foreach($colonnes_supplementaires as $colonne_sup) {
229
 
233
			$intitule_champs[] = $colonne_sup;
230
		$intitule_champs = array_merge(FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes),
234
		}
231
									   array_values($colonnes_supplementaires));
235
 
232
 
236
		// header
233
		// header
237
		fputcsv($outstream, $intitule_champs, ',', '"');			
234
		fputcsv($outstream, $intitule_champs, ',', '"');			
238
		// lignes
235
		// lignes
239
		foreach($data as &$ligne) {
236
		foreach($data as &$ligne) {
240
			$id_obs = $ligne['id_observation'];
237
			$id_obs = $ligne['id_observation'];
241
			$ligne = $this->filtrerDonneesSensibles($ligne);
238
			$ligne = self::filtrerDonneesSensibles($ligne);
242
			$ligne = FormateurGroupeColonne::getLigneObservation($ligne, $groupe_colonnes, $this);
239
			$ligne = FormateurGroupeColonne::getLigneObservation($ligne, $groupe_colonnes, $this);
Line 262... Line 259...
262
		$worksheet->setInputEncoding('utf-8');
259
		$worksheet->setInputEncoding('utf-8');
263
		$workbook->send($this->nom_fichier_export.'.xls');
260
		$workbook->send($this->nom_fichier_export.'.xls');
Line 264... Line 261...
264
		
261
		
265
		$nb_lignes = 1;
262
		$nb_lignes = 1;
266
		$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
263
		$groupe_colonnes = FormateurGroupeColonne::nomEnsembleVersListeColonnes($colonnes);
267
		$intitule_champs = FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes);
264
		$intitule_champs = array_merge(FormateurGroupeColonne::getIntitulesColonnes($groupe_colonnes),
268
		foreach($colonnes_supplementaires as $colonne_sup) {
-
 
269
			$intitule_champs[] = $colonne_sup;
-
 
Line 270... Line 265...
270
		}
265
									   array_values($colonnes_supplementaires));
271
 
266
 
272
		// header
267
		// header
273
		$indice = 0;
268
		$indice = 0;
274
		foreach ($intitule_champs as &$intitule) {	
-
 
275
			$worksheet->write(0,$indice,$intitule);
269
		foreach ($intitule_champs as &$intitule) {	
Line 276... Line 270...
276
			$indice++;
270
			$worksheet->write(0,$indice++,$intitule);
277
		}
271
		}
278
 
272
 
279
		foreach($data as &$ligne) {
273
		foreach($data as &$ligne) {
Line 280... Line 274...
280
			$id_obs = $ligne['id_observation'];
274
			$id_obs = $ligne['id_observation'];
281
			$ligne = $this->filtrerDonneesSensibles($ligne);
275
			$ligne = self::filtrerDonneesSensibles($ligne);
282
			$ligne = FormateurGroupeColonne::getLigneObservation($ligne, $groupe_colonnes, $this);
276
			$ligne = FormateurGroupeColonne::getLigneObservation($ligne, $groupe_colonnes, $this);
283
 
277
 
284
			$ligne_etendue_aplatie = self::aplatirChampsEtendus($champs_supplementaires[$id_obs]);
278
			$ligne_etendue_aplatie = self::aplatirChampsEtendus($champs_supplementaires[$id_obs]);
285
			$ligne_supp = self::traiterLigneEtendue($ligne, $colonnes_supplementaires, $ligne_etendue_aplatie);
-
 
286
			$indice = 0;
279
			$ligne_supp = self::traiterLigneEtendue($ligne, $colonnes_supplementaires, $ligne_etendue_aplatie);
287
			foreach($ligne as &$champ) {
280
			$indice = 0;
288
				$worksheet->write($nb_lignes,$indice,$champ);
281
			foreach($ligne as &$champ) {
289
				$indice++;
282
				$worksheet->write($nb_lignes,$indice++,$champ);
290
			}
283
			}
Line 324... Line 317...
324
 
317
 
325
		$ligne += $ligne_etendue_fmt;
318
		$ligne += $ligne_etendue_fmt;
Line 326... Line 319...
326
	}
319
	}
327
	
-
 
328
	static function aplatirChampsEtendus(&$ligne_champs_etendus) {
320
	
329
		if(!$ligne_champs_etendus) return;
321
	static function aplatirChampsEtendus(&$ligne_champs_etendus) {
330
		$champs_etendus_fmt = array();
322
		$champs_etendus_fmt = array();
331
		foreach($ligne_champs_etendus as $champ) {
323
		foreach($ligne_champs_etendus as $champ) {
332
			$champs_etendus_fmt[$champ->cle] = $champ->valeur;
324
			$champs_etendus_fmt[$champ->cle] = $champ->valeur;
333
		}
325
		}
Line 334... Line 326...
334
		return $champs_etendus_fmt;
326
		return $champs_etendus_fmt;
335
	}
327
	}
336
	
328
	
337
	private function filtrerDonneesSensibles($ligne) {
329
	static function filtrerDonneesSensibles($ligne) {
338
		if(stripos($ligne['mots_cles_texte'], 'sensible') !== false) {
330
		if(stripos($ligne['mots_cles_texte'], 'sensible') !== false) {
339
			$ligne['latitude'] = '';
331
			$ligne['latitude'] = '';
340
			$ligne['longitude'] = '';
332
			$ligne['longitude'] = '';
Line 341... Line -...
341
		}
-
 
342
		return $ligne;
-
 
343
	}
-
 
344
	
-
 
345
	private function nettoyerChaine($chaine) {
-
 
346
		$chaine = str_replace("\n",' ',$chaine);
-
 
347
		$chaine = str_replace("\t",'',$chaine);
333
		}
348
		return $chaine;
334
		return $ligne;
349
	}
335
	}
350
	
336