Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 1697 Rev 1698
Line 193... Line 193...
193
		// renomme le fichier pour lui ajouter son extension initiale, ce qui
193
		// renomme le fichier pour lui ajouter son extension initiale, ce qui
194
		// permet (une sorte) d'autodétection du format.
194
		// permet (une sorte) d'autodétection du format.
195
		$fichier = $infos_fichier['tmp_name'];
195
		$fichier = $infos_fichier['tmp_name'];
196
		$extension = pathinfo($infos_fichier['name'], PATHINFO_EXTENSION);
196
		$extension = pathinfo($infos_fichier['name'], PATHINFO_EXTENSION);
197
		if( (strlen($extension) == 3 || strlen($extension) == 4) &&
197
		if( (strlen($extension) == 3 || strlen($extension) == 4) &&
198
			(rename($fichier, $fichier . '.' . $extension))) {
198
			(@rename($fichier, $fichier . '.' . $extension))) {
199
			$fichier = $fichier . '.' . $extension;
199
			$fichier = $fichier . '.' . $extension;
200
		}
200
		}
Line 201... Line 201...
201
 
201
 
202
		$objReader = PHPExcel_IOFactory::createReaderForFile($fichier);
202
		$objReader = PHPExcel_IOFactory::createReaderForFile($fichier);
Line -... Line 203...
-
 
203
		$objReader->setReadDataOnly(true);
203
		$objReader->setReadDataOnly(true);
204
 
204
 
205
		// TODO: is_a obsolete entre 5.0 et 5.3, retirer le @ à terme
205
		if(is_a($objReader, 'PHPExcel_Reader_CSV')) {
206
		if(@is_a($objReader, 'PHPExcel_Reader_CSV')) {
206
			$objReader->setDelimiter(',')
207
			$objReader->setDelimiter(',')
207
				->setEnclosure('"')
208
				->setEnclosure('"')
208
				->setLineEnding("\n")
209
				->setLineEnding("\n")
Line 573... Line 574...
573
			// $timestamp = PHPExcel_Calculation::getInstance()->calculateFormula("=" . $date . "-DATE(1970,1,1)*60*60*24"); // NON
574
			// $timestamp = PHPExcel_Calculation::getInstance()->calculateFormula("=" . $date . "-DATE(1970,1,1)*60*60*24"); // NON
Line 574... Line 575...
574
 
575
 
575
			// echo strftime("%Y/%m/%d 00:00:00", $timestamp); // NON
576
			// echo strftime("%Y/%m/%d 00:00:00", $timestamp); // NON
576
		}
577
		}
-
 
578
		else {
-
 
579
			// attend l'un des formats de
-
 
580
			// http://www.php.net/manual/fr/datetime.formats.date.php
577
		else {
581
			// le plus simple: YYYY/MM/DD (utilisé à l'export)
578
			$timestamp = strtotime($date);
582
			$timestamp = strtotime($date);
579
			if(! $timestamp) {
583
			if(! $timestamp) {
580
				if($date) trigger_error("ligne \"{$ligne[C_NOM_SEL]}\": Attention: date erronée ($date)", E_USER_NOTICE);
584
				if($date) trigger_error("ligne \"{$ligne[C_NOM_SEL]}\": Attention: date erronée ($date)", E_USER_NOTICE);
581
				return NULL;
585
				return NULL;
582
			}
586
			}
583
			return strftime("%Y-%m-%d 00:00:00", strtotime($date));
587
			return strftime("%Y-%m-%d 00:00:00", $timestamp);
584
		}
588
		}
Line 585... Line 589...
585
	}
589
	}
586
 
590
 
Line 634... Line 638...
634
			if($lat < $bbox['NORD'] && $lat > $bbox['SUD']) return is_numeric($lat) ? $lat : NULL;
638
			if($lat < $bbox['NORD'] && $lat > $bbox['SUD']) return is_numeric($lat) ? $lat : NULL;
635
			return NULL;
639
			return NULL;
636
		}
640
		}
637
	}
641
	}
Line -... Line 642...
-
 
642
 
-
 
643
	/*
-
 
644
	  TODO: s'affranchir du webservice pour la détermination du nom scientifique en s'appuyant sur cel_references,
638
 
645
	  pour des questions de performances
639
 
646
	*/
640
	static function traiterEspece($ligne, Array &$espece, $cel) {
647
	static function traiterEspece($ligne, Array &$espece, $cel) {
Line 641... Line 648...
641
		if(!$ligne[C_NOM_SEL]) return;
648
		if(!$ligne[C_NOM_SEL]) return;
642
 
649
 
Line 646... Line 653...
646
		$taxon_info_webservice = new RechercheInfosTaxonBeta($cel->config);
653
		$taxon_info_webservice = new RechercheInfosTaxonBeta($cel->config);
Line 647... Line 654...
647
 
654
 
Line 648... Line 655...
648
		$ascii = iconv('UTF-8', 'ASCII//TRANSLIT', $ligne[C_NOM_SEL]);
655
		$ascii = iconv('UTF-8', 'ASCII//TRANSLIT', $ligne[C_NOM_SEL]);
649
 
656
 
650
		// TODO: si empty(C_NOM_SEL) et !empty(C_NOM_SEL_NN) : recherche info à partir de C_NOM_SEL_NN
657
		// TODO: si empty(C_NOM_SEL) et !empty(C_NOM_SEL_NN) : recherche info à partir de C_NOM_SEL_NN
651
		echo "rechercherInformationsComplementairesSurNom()\n";
658
		// echo "rechercherInformationsComplementairesSurNom()\n";
652
		/*
659
		/*
653
		  SELECT num_nom, nom_sci, num_nom_retenu ,auteur, annee, biblio_origine, nom_sci,auteur  FROM bdtfx_v1_01  WHERE (nom_sci LIKE 'Heliotropium europaeum')  ORDER BY nom_sci ASC   LIMIT 0, 1
660
		  SELECT num_nom, nom_sci, num_nom_retenu ,auteur, annee, biblio_origine, nom_sci,auteur  FROM bdtfx_v1_01  WHERE (nom_sci LIKE 'Heliotropium europaeum')  ORDER BY nom_sci ASC   LIMIT 0, 1
654
		  #
661
		  #
Line 675... Line 682...
675
		}
682
		}
Line 676... Line 683...
676
 
683
 
677
		// succès de la détection = écrasement du numéro nomenclatural saisi...
684
		// succès de la détection = écrasement du numéro nomenclatural saisi...
678
		$espece[C_NOM_SEL_NN] = $resultat_recherche_espece[0][0];
685
		$espece[C_NOM_SEL_NN] = $resultat_recherche_espece[0][0];
-
 
686
		// et des info complémentaires
679
		// et des info complémentaires
687
 
680
		echo "rechercherInformationsComplementairesSurNumNom()\n";
688
		// echo "rechercherInformationsComplementairesSurNumNom()\n";
681
		$complement = $taxon_info_webservice->rechercherInformationsComplementairesSurNumNom($resultat_recherche_espece[0][0]);
689
		$complement = $taxon_info_webservice->rechercherInformationsComplementairesSurNumNom($resultat_recherche_espece[0][0]);
682
		/*
690
		/*
683
		  // GET /service:eflore:0.1/bdtfx/noms/31468?retour.champs=nom_sci,auteur,id,nom_retenu_complet,nom_retenu.id,num_taxonomique,famille
691
		  // GET /service:eflore:0.1/bdtfx/noms/31468?retour.champs=nom_sci,auteur,id,nom_retenu_complet,nom_retenu.id,num_taxonomique,famille
684
		  /home/raphael/eflore/projets/services/modules/0.1/bdtfx/Noms.php:280
692
		  /home/raphael/eflore/projets/services/modules/0.1/bdtfx/Noms.php:280
Line 688... Line 696...
688
		*/
696
		*/
689
		$espece[C_NOM_RET] = $complement['Nom_Retenu'];
697
		$espece[C_NOM_RET] = $complement['Nom_Retenu'];
690
		$espece[C_NOM_RET_NN] = $complement['Num_Nom_Retenu'];
698
		$espece[C_NOM_RET_NN] = $complement['Num_Nom_Retenu'];
691
		$espece[C_NT] = $complement['Num_Taxon'];
699
		$espece[C_NT] = $complement['Num_Taxon'];
692
		$espece[C_FAMILLE] = $complement['Famille'];
700
		$espece[C_FAMILLE] = $complement['Famille'];
693
		var_dump("a", $espece);die;
701
		//var_dump("a", $espece);die;
694
	}
702
	}
Line 695... Line 703...
695
 
703
 
696
	static function detectFromNom($nom, $cel) {
704
	static function detectFromNom($nom, $cel) {
697
		$r = $cel->requeter(sprintf("SELECT num_nom, num_tax_sup FROM bdtfx_v1_01 WHERE (nom_sci LIKE '%s') ".
705
		$r = $cel->requeter(sprintf("SELECT num_nom, num_tax_sup FROM bdtfx_v1_01 WHERE (nom_sci LIKE '%s') ".