Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1321 Rev 1322
Line 66... Line 66...
66
	/**
66
	/**
67
	 Sur post
67
	 Sur post
68
	**/
68
	**/
69
	function createElement($pairs) {
69
	function createElement($pairs) {
Line -... Line 70...
-
 
70
 
-
 
71
		if(!isset($pairs['utilisateur']) || trim($pairs['utilisateur']) == '') {
-
 
72
			echo '0'; exit;
-
 
73
		}
70
 
74
		
71
		if(!isset($_SESSION)) {session_start();}
75
		if(!isset($_SESSION)) {session_start();}
Line 72... Line 76...
72
        $this->controleUtilisateur($pairs['utilisateur']);
76
        $this->controleUtilisateur($pairs['utilisateur']);
73
 
77
 
Line 143... Line 147...
143
					// ligne vide
147
					// ligne vide
144
				}
148
				}
145
				$i++;
149
				$i++;
146
			}
150
			}
147
			while (($this->analyserLigne($line,$i)==LIGNE_NORMALE) && ($i<=$rowcount)) {
151
			while (($this->analyserLigne($line,$i)==LIGNE_NORMALE) && ($i<=$rowcount)) {
148
				$ordre=$this->traiterLigne($line,$i,$pairs['utilisateur']);
152
				$id_obs = $this->traiterLigne($line,$i,$pairs['utilisateur']);
149
				if ($ordre>0) {
153
				if ($this->dernier_ordre > 0) {
150
					$cpt_obs++; // Compteur d'observations crees
154
					$cpt_obs++; // Compteur d'observations crees
151
				}
155
				}
152
				$i++;
156
				$i++;
153
				// On saute les lignes vide ou on traite les lignes suivantes contenant des informations sur image seulement
157
				// On saute les lignes vide ou on traite les lignes suivantes contenant des informations sur image seulement
154
				while ((in_array($retour_analyse=$this->analyserLigne($line,$i),array(LIGNE_IMAGE_SEULEMENT, LIGNE_VIDE))) && ($i<=$rowcount)) {
158
				while ((in_array($retour_analyse=$this->analyserLigne($line,$i),array(LIGNE_IMAGE_SEULEMENT, LIGNE_VIDE))) && ($i<=$rowcount)) {
155
					if  ($retour_analyse==LIGNE_IMAGE_SEULEMENT) {
159
					if  ($retour_analyse==LIGNE_IMAGE_SEULEMENT) {
156
						$this->traiterLigneComplement($line,$i,$pairs['utilisateur'],$ordre); // images supplementaires
160
						$this->traiterLigneComplement($line,$i,$pairs['utilisateur'],$id_obs); // images supplementaires
157
					}
161
					}
158
					else {
162
					else {
159
						// print "vide";
163
						// print "vide";
160
					}
164
					}
161
					$i++;
165
					$i++;
Line 218... Line 222...
218
		// Controle donnee et insertion
222
		// Controle donnee et insertion
219
		$info_image=array();
223
		$info_image=array();
220
		$info_transmettre = "0";
224
		$info_transmettre = "0";
221
		$info_espece = array('en_id_nom' => '',
225
		$info_espece = array('en_id_nom' => '',
222
			'nom_sel' => '',
226
			'nom_sel' => '',
-
 
227
			'nom_sel_nn' => '',
223
			'nom_ret' => '',
228
			'nom_ret' => '',
224
			'nom_ret_nn' => '',
229
			'nom_ret_nn' => '',
225
			'nt' => '',
230
			'nt' => '',
226
			'famille' => ''
231
			'famille' => ''
227
		);
232
		);
-
 
233
		$info_commune = array('nom' => '', 'code' => '');
Line 228... Line 234...
228
		
234
		
229
		foreach ($this->format_observation as $colonne) {
235
		foreach ($this->format_observation as $colonne) {
230
			if (isset ($line[$colonne][$i]) && $line[$colonne][$i]!='') {
236
			if (isset ($line[$colonne][$i]) && $line[$colonne][$i]!='') {
231
				switch ($colonne) {  // On ne garde que les colonnes que l'on souhaite traiter
237
				switch ($colonne) {  // On ne garde que les colonnes que l'on souhaite traiter
Line 240... Line 246...
240
						break;
246
						break;
241
					case MILIEU:
247
					case MILIEU:
242
						$info_milieu = $this->traiterMilieu($line[MILIEU][$i]);
248
						$info_milieu = $this->traiterMilieu($line[MILIEU][$i]);
243
						break;
249
						break;
244
	                case DEPARTEMENT:
250
	                case DEPARTEMENT:
245
						$info_commune['code'] = $this->traiterDepartement($line[DEPARTEMENT][$i]);
251
	                	$dpt = $this->traiterDepartement($line[DEPARTEMENT][$i]);
-
 
252
	                	if(is_numeric($dpt) && strlen($dpt == 5) && $info_commune['code'] == 'NULL') {          		
-
 
253
	                		$info_commune['code'] = $dpt;
-
 
254
	                	}
246
						break;
255
						break;
247
					case LATITUDE:
256
					case LATITUDE:
248
						$info_latitude = $this->traiterLatitude($line[LATITUDE][$i]);
257
						$info_latitude = $this->traiterLatitude($line[LATITUDE][$i]);
249
						break;
258
						break;
250
					case LONGITUDE:
259
					case LONGITUDE:
Line 331... Line 340...
331
	        $this->proteger($info_espece['nom_ret']).",".
340
	        $this->proteger($info_espece['nom_ret']).",".
332
	        $this->proteger($info_espece['nom_ret_nn']).",".
341
	        $this->proteger($info_espece['nom_ret_nn']).",".
333
	        $this->proteger($info_espece['nt']).",".
342
	        $this->proteger($info_espece['nt']).",".
334
	        $this->proteger($info_espece['famille']).",".
343
	        $this->proteger($info_espece['famille']).",".
335
	        $this->proteger($info_commune['nom']).",".
344
	        $this->proteger($info_commune['nom']).",".
336
	        $this->proteger($info_commune['code']).",".
345
	        $this->proteger('INSEE-C:'.$info_commune['code']).",".
337
	        $this->proteger($info_dateobs).",".
346
	        $this->proteger($info_dateobs).",".
338
	        $this->proteger($info_lieudit).",".
347
	        $this->proteger($info_lieudit).",".
339
	        $this->proteger($info_station).",".
348
	        $this->proteger($info_station).",".
340
	        $this->proteger($info_milieu).",".
349
	        $this->proteger($info_milieu).",".
341
	        $this->proteger($info_notes).",".
350
	        $this->proteger($info_notes).",".
Line 344... Line 353...
344
	        $this->proteger($info_latitude).",".
353
	        $this->proteger($info_latitude).",".
345
	        $this->proteger($info_longitude).")";
354
	        $this->proteger($info_longitude).")";
Line 346... Line 355...
346
	
355
	
Line -... Line 356...
-
 
356
		$insertion = $this->executer($requete);
-
 
357
		
-
 
358
		$requete_id_obs = 'SELECT id_observation FROM cel_obs WHERE ordre = '.$this->proteger($this->dernier_ordre).' AND ce_utilisateur = '.$this->proteger($utilisateur);
-
 
359
		$resultat_id_obs = $this->requeter($requete_id_obs);
-
 
360
			
347
		$insertion = $this->executer($requete);
361
		$id_obs = $resultat_id_obs[0]['id_observation'];
348
		
362
		
349
		// creation lien image
363
		// creation lien image
350
		foreach ($info_image as $pic) {
364
		foreach ($info_image as $pic) {
351
	
-
 
352
			$requete_liaison = 'INSERT INTO cel_obs_images (id_image, id_utilisateur, id_observation ) VALUES ('.$this->proteger($pic['id_image']).','.$this->proteger($utilisateur).', '.$this->proteger($this->dernier_ordre).') ON DUPLICATE KEY UPDATE id_image = id_image ';	
365
				
353
	
366
			$requete_liaison = 'INSERT INTO cel_obs_images (id_image, id_utilisateur, id_observation ) VALUES ('.$this->proteger($pic['id_image']).','.$this->proteger($utilisateur).', '.$id_obs.') ON DUPLICATE KEY UPDATE id_image = id_image ';	
354
			$liaison = $this->executer($requete_liaison);
367
			$liaison = $this->executer($requete_liaison);
355
            if ($liaison !== false) {
368
            if ($liaison !== false) {
356
            	$this->cpt_images_liees++;
369
            	$this->cpt_images_liees++;
357
            } else {
370
            } else {
358
            	return false;    	
371
            	return false;    	
Line 359... Line 372...
359
            }
372
            }
360
		}
373
		}
Line 361... Line 374...
361
	
374
	
Line 362... Line 375...
362
		return $this->dernier_ordre;
375
		return $id_obs;
363
	}
376
	}
364
 
377
 
365
	function traiterLigneComplement($line,$i,$utilisateur, $ordre = null) {
378
	function traiterLigneComplement($line,$i,$utilisateur, $id_obs = null) {
366
	
379
	
367
		$info_image=$this->traiterImage($line[IMAGE][$i],$utilisateur); // Image separee par des / +  utilisateur	
380
		$info_image=$this->traiterImage($line[IMAGE][$i],$utilisateur); // Image separee par des / +  utilisateur	
368
		// creation lien image
381
		// creation lien image
369
		foreach ($info_image as $pic) {	
382
		foreach ($info_image as $pic) {	
370
			$requete = 'INSERT INTO cel_obs_images (id_image, id_utilisateur, id_observations) VALUES ('.$this->proteger($pic['id_image']).','.$this->proteger($utilisateur).', '.$this->proteger($this->dernier_ordre).') ON DUPLICATE KEY UPDATE id_image = id_image' ;	
383
			$requete = 'INSERT INTO cel_obs_images (id_image, id_utilisateur, id_observation) VALUES ('.$this->proteger($pic['id_image']).','.$this->proteger($utilisateur).', '.$this->proteger($id_obs).') ON DUPLICATE KEY UPDATE id_image = id_image' ;	
Line 441... Line 454...
441
		return trim($milieu);
454
		return trim($milieu);
442
	}
455
	}
Line 443... Line 456...
443
 
456
 
444
	function traiterDepartement($departement) { 
457
	function traiterDepartement($departement) { 
445
		// texte libre
-
 
446
		if(is_numeric($departement) && strlen($departement) == 5) {
-
 
447
			$departement = substr($departement,0,2);
-
 
448
		}
-
 
449
		
458
		// texte libre
450
		if(is_numeric($departement) && strlen($departement) == 4) {
-
 
451
			$departement = substr($departement,0,1);
459
		if(is_numeric($departement) && strlen($departement) == 4) {
452
			$departement = "0"+$departement;
460
			$departement = "0"+$departement;
Line 453... Line 461...
453
		}
461
		}
454
	
462
	
455
		if(is_numeric($departement) && $departement <= 9) {
463
		if(is_numeric($departement) && $departement <= 9) {
-
 
464
			$departement = "0"+$departement;
456
			$departement = "0"+$departement;
465
		}
457
		}
466
		
Line 458... Line 467...
458
		return utf8_encode(trim($departement));
467
		return utf8_encode(trim($departement));
459
	}
468
	}