Subversion Repositories Applications.referentiel

Rev

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

Rev 316 Rev 325
Line 16... Line 16...
16
	
16
	
17
	private $referentiel = null;
17
	private $referentiel = null;
18
	private $referentielDao = null;
18
	private $referentielDao = null;
19
	private $traitementDao = null;
19
	private $traitementDao = null;
-
 
20
	private $resultatDao = null;
-
 
21
	private $metaDao = null;
Line 20... Line 22...
20
	private $resultatDao = null;
22
	private $colonnesOrdonnees = array();
21
	
23
	
Line 22... Line 24...
22
	public function __construct()  {
24
	public function __construct()  {
Line 29... Line 31...
29
		
31
		
30
		// Chargement des DAO nécessaires
32
		// Chargement des DAO nécessaires
31
		$this->resultatDao = new ResultatDao();
33
		$this->resultatDao = new ResultatDao();
32
		$this->traitementDao = new TraitementDao();
34
		$this->traitementDao = new TraitementDao();
-
 
35
		$this->referentielDao = new ReferentielDao();
-
 
36
		$this->metaDao = new MetaDao();
-
 
37
		// tableau colonnesOrdonnees à modifier aussi dans service/Recherche.php
-
 
38
		$this->colonnesOrdonnees = array("nn" => array("Numéro nomenclatural","checked","Identifiant numérique du nom scientifique"),
-
 
39
			"nr" => array("Numéro nomenclatural du nom retenu","checked","Identifiant numérique du nom scientifique (num_nom) retenu pour désigner le taxon"),
-
 
40
			"nt" => array("Numéro taxonomique","checked","Identifiant numérique du taxon auquel est rattaché le nom"),
-
 
41
			"cd" => array("Numéro INPN","checked","Identifiant numérique unique du nom scientifique attribué par l’INPN"),
-
 
42
			"rg" => array("Code rang","checked","Code numérique indiquant le rang du nom scientifique (voir tableau 7 du manuel technique)"),
-
 
43
			"fam" => array("Famille (APG III)","checked","Nom de la famille dans APG III"),
-
 
44
			"nsc" => array("Nom avec auteur","checked","Nom scientifique avec auteur(s)"),
-
 
45
			"bibc" => array("Année et bibliographie","checked","Format à étudier celui de Tela : 1868, Brev. Pl. Nov., 2 : 70 ou celui de Kew :  Brev. Pl. Nov., 2 : 70 (1868)"),
-
 
46
			"nsrc" => array("Nom retenu avec auteur","checked","Nom retenu pour tous les taxons (identique si le nom est édjà le nom retenu)"),
-
 
47
			"nf" => array("Nom français normalisé","checked","Nom français conseillé pour ce taxon (à venir)"),
-
 
48
			"extax" => array("Présent dans Taxref","checked",""),
-
 
49
			"lien" => array("Permalien","checked","Lien http vers la fiche nomenclaturale"),
-
 
50
			"ntsup" => array("Numéro nomenclatural rang supérieur","","Identifiant numérique du nom (num_nom) de rang supérieur dans la classification par défaut de l'index"),
-
 
51
			"pre" => array("Répartition géographique","","Code indiquant si le taxon est présent dans la zone géographique définie par le référentiel (tableau 9)"),
-
 
52
			"ns" => array("Nom sans auteur","","Nom scientifique sans auteur"),
-
 
53
			"aut" => array("Auteur","","Intitulé de(s) l'auteur(s) du nom (abréviations standards de Brummitt et Powell)"),
-
 
54
			"ann" => array("Année publication","","Année de la publication effective du support papier"),
-
 
55
			"bib" => array("Bibliographie","","Référence bibliographique de la publication d'origine du nom"),
-
 
56
			"ntype" => array("Numéro du type","","Identifiant numérique (num_nom) du 1er basionyme appliqué à la planche d'herbier"),
-
 
57
			"nbas" => array("Numéro du basionyme","","Identifiant numérique (num_nom) du basionyme du nom"),
-
 
58
			"genre" => array("Genre","","Nom d'un genre dans le cas d'un monôme du rang genre ou d'une combinaison"),
-
 
59
			"esp" => array("Epithète espèce","","Épithète de l'espèce"),
-
 
60
			"eing" => array("Epithète infragénérique","","Épithète infra-générique d'une combinaison dont le rang est situé entre le genre et l'espèce"),
-
 
61
			"te" => array("Type d'épithète infraspécifique","","Abréviation indiquant le type de l'épithète infra-spécifique"),
-
 
62
			"einsp" => array("Epithète infraspécifique","","Épithète infra-spécifique d'une combinaison"),
-
 
63
			"hybp01" => array("Hybride parent 1","","Identifiant du nom (num_nom) du parent numéro 1 (dans le cas d'un hybride)"),
-
 
64
			"nomsupgen" => array("Nom supra générique","","Monôme dont le rang est supérieur au genre"),
-
 
65
			"hybp02" => array("Hybride parent 2","","Identifiant du nom (num_nom) du parent numéro 2 (dans le cas d'un hybride)"),
-
 
66
			"stori" => array("Statut d'origine","","Code indiquant le statut d'origine du taxon dans la zone géographique définie par le référentiel (tableau 10)"),
-
 
67
			"stint" => array("Statut d'introduction","","Code indiquant le statut d'introduction du taxon dans la zone géographique définie par le référentiel (tableau 11)"),
-
 
68
			"stcul" => array("Statut de culture","","Code indiquant le statut de culture du taxon dans la zone géographique définie par le référentiel (tableau 12)"),
-
 
69
			"notes" => array("Remarques","","Notes complémentaires"),
-
 
70
			"nomadd" => array("Commentaires nomenclaturaux","","Commentaires nomenclaturaux pouvant être associés à un nom (voir tableau 8 du manuel technique)"),
-
 
71
			"nsr" => array("Nom retenu sans auteur","","Nom scientifique du nom retenu sans auteur"),
-
 
72
			"hom" => array("Homonymie","","Contient la valeur 1 si le nom possède un homonyme ou si le nom est un homonyme. Dans le cas contraire"),
-
 
73
			"synprop" => array("Synonyme proprate","","Contient plusieurs identifiants numériques (num_nom) dans le cas d'un nom obtenu suite à la division d'un taxon. Contient un seul identifiant numérique (num_nom) dans le cas d'un nom obtenu suite à la fusion de plusieurs taxons."),
-
 
74
			"syndout" => array("Synonyme douteux","","Contient la valeur 1 si le nom est un synonyme douteux. Dans le cas contraire"),
-
 
75
			"synmapp" => array("Synonyme mal appliqué","","Contient la valeur 1 si le nom est un synonyme mal appliqué (cas des sensu). Dans le cas contraire"),
-
 
76
			"synorth" => array("Synonyme orthographique","","Contient l'identifiant numérique du nom (num_nom) correctement orthographié"),
-
 
77
			"orthori" => array("Orthographe originelle","","Contient la graphie originelle d'un nom non-conforme faisant l'objet d'une correction orthographique obligatoire"),
-
 
78
			"hybp01n" => array("Hybride parent 1 notes","","Notes éventuelles sur l'hybridité et le parent numéro 1"),
-
 
79
			"hybp02n" => array("Hybride parent 2 notes","","Notes éventuelles sur l'hybridité et le parent numéro 2"),
-
 
80
			"cultgp" => array("Groupe de cultivar","","Nom d'un groupe de cultivar (sansl'abréviation « Gp »)"),
-
 
81
			"cult" => array("Nom cultivar","","Nom d'un cultivar (sans les guillemets simple ou abréviation « cv. »)"),
-
 
82
			"nomcomm" => array("Nom commercial","","Nom commercial d'une plante (en majuscule"),
33
		$this->referentielDao = new ReferentielDao();
83
			"autres" => array("Autres","","colonnes spécifiques au référentiel"));
Line 34... Line 84...
34
	}
84
	}
35
	
85
	
36
	//+----------------------------------------------------------------------------------------------------------------+
86
	//+----------------------------------------------------------------------------------------------------------------+
Line 56... Line 106...
56
			$donnees['referentiel'] = $this->referentiel;
106
			$donnees['referentiel'] = $this->referentiel;
57
			$donnees['nom_referentiel'] = $this->referentielDao->getNom($this->referentiel);
107
			$donnees['nom_referentiel'] = $this->referentielDao->getNom($this->referentiel);
58
			$donnees['url_menu_test'] = $this->obtenirUrlMenuTest($this->referentiel);
108
			$donnees['url_menu_test'] = $this->obtenirUrlMenuTest($this->referentiel);
59
			$donnees['url_menu_versionnage'] = $this->obtenirUrlMenuVersionnage($this->referentiel);
109
			$donnees['url_menu_versionnage'] = $this->obtenirUrlMenuVersionnage($this->referentiel);
60
			$donnees['url_menu_consultation'] = $this->obtenirUrlMenuConsultation($this->referentiel);
110
			$donnees['url_menu_consultation'] = $this->obtenirUrlMenuConsultation($this->referentiel);
-
 
111
			$donnees['url_form_telech'] = $this->obtenirUrlDetailReferentielTelechargement($this->referentiel);
Line 61... Line 112...
61
			
112
			
62
			// suppression du téléchargement pour bdbfx
113
			// suppression du téléchargement pour bdbfx
-
 
114
			if ($this->referentiel != 'bdbfx') {
63
			if ($this->referentiel != 'bdbfx') {
115
				$donnees['versions'] = $this->afficherFormulaireTelechargementsReferentiels();
-
 
116
				$donnees['infos_telechargements'] = $this->afficherTelechargementsReferentiels();
64
				$donnees['infos_telechargements'] = $this->afficherTelechargementsReferentiels();
117
				$donnees['colonnesOrdonnees'] = $this->colonnesOrdonnees;
65
			}
118
			}
66
		} else {
119
		} else {
67
			$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx).");
120
			$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx).");
Line 68... Line 121...
68
		}
121
		}
69
		
122
		
70
		$donnees['messages'] = $this->getMessages();
123
		$donnees['messages'] = $this->getMessages();
71
		$this->traiterEsperluette($donnees);
124
		$this->traiterEsperluette($donnees);
Line -... Line 125...
-
 
125
		$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false);
-
 
126
	}
-
 
127
	
-
 
128
	public function telecharger() {
-
 
129
		//$this->afficherDetail();
-
 
130
		$dossier = '/home/delphine/tmp/';
-
 
131
		$parametres['ref'] = $this->referentiel;
-
 
132
		$parametres['version'] = $_POST["version"];
-
 
133
		$parametres['version'] = str_replace(".", "_", $parametres['version']);
-
 
134
		$parametres['champs'] = implode(",",$_POST["champs"]);
-
 
135
		$parametres['filtres'] = implode(",",$_POST["filtres"]);
-
 
136
		$this->supprimerAncienExport($dossier);
-
 
137
		$ref = $this->referentielDao->exporter($parametres);
-
 
138
		$meta = $this->metaDao->exporter($parametres);
-
 
139
		$zip = new ZipArchive();
-
 
140
		if($zip->open($dossier.date('Y_m_d').'/'.$this->referentiel.time().'.zip', ZipArchive::CREATE) === true){ 
-
 
141
			// Ajout des fichiers métadonnées, référentiel et manuel technique
-
 
142
			$meta = str_replace("\\/", "/", $meta);
-
 
143
			if (file_exists($meta)) $metazip = $zip->addFile($meta, "informations.csv"); 
-
 
144
			if (file_exists($ref)) $refzip = $zip->addFile($ref, "referentiel.csv");
-
 
145
			if (file_exists($dossier.'mtpr_V4_4.pdf')) $zip->addFile($dossier.'mtpr_V4_4.pdf', 'manuel_technique.pdf');
-
 
146
			// Et on referme l'archive
-
 
147
			$zip->close();
-
 
148
		} else {
-
 
149
			print_r('Impossible d&#039;ouvrir &quot;Zip.zip<br/>');
-
 
150
		}
-
 
151
		
-
 
152
		if (file_exists($fichier)) {
-
 
153
			print_r("<a href='".$zip."'>");
-
 
154
		}
-
 
155
	}
-
 
156
	
-
 
157
	private function supprimerAncienExport($dossier) {
-
 
158
		$pointeur = opendir($dossier);
-
 
159
		// si pas d'erreur d'ouverture du dossier on lance le scan
-
 
160
		if( $pointeur != false ) {
-
 
161
			// Parcours du repertoire
-
 
162
			while( $ss_dossier = readdir($pointeur)) {
-
 
163
				if($ss_dossier != "." && $ss_dossier != "..") {
-
 
164
					$chemin_complet = $dossier . $ss_dossier;
-
 
165
					if (is_dir($chemin_complet) && $ss_dossier < date('Y_m_d')) {
-
 
166
						$fichiers = scandir($chemin_complet);
-
 
167
						foreach ($fichiers as $fichier) {
-
 
168
							if($fichier != "." && $fichier != "..") {
-
 
169
								unlink($chemin_complet."/".$fichier);
-
 
170
							}
-
 
171
						}
-
 
172
						rmdir($chemin_complet);
-
 
173
					}
-
 
174
				}
-
 
175
			}
-
 
176
			closedir($pointeur);
-
 
177
		}
-
 
178
	}
-
 
179
	
-
 
180
	private function afficherFormulaireTelechargementsReferentiels() {
-
 
181
		$versions = $this->traitementDao->getTraitementsTermines($this->referentiel, 'versionnage');
-
 
182
		foreach ($versions as $id => $version) {
72
		$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false);
183
		$versions[$id] = (unserialize($versions[$id]["script_parametres"])); }
73
	}
184
		return $versions;
74
	
185
	}
75
	private function afficherTelechargementsReferentiels() {
186
	private function afficherTelechargementsReferentiels() {
76
		$infos_telechargements = array();
187
		$infos_telechargements = array();