Subversion Repositories Applications.referentiel

Rev

Rev 327 | Rev 332 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 327 Rev 329
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe Controleur du module Accueil.
4
 * Classe Controleur du module Accueil.
5
 * Affichage les infos sur l'ensemble des référentiels disponibles.
5
 * Affichage les infos sur l'ensemble des référentiels disponibles.
6
 * 
6
 * 
7
 * @package		Referentiel
7
 * @package		Referentiel
8
 * @category	Php5.2
8
 * @category	Php5.2
9
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
10
 * @copyright	2010 Tela-Botanica
10
 * @copyright	2010 Tela-Botanica
11
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
13
 * @version		SVN: $Id$
13
 * @version		SVN: $Id$
14
 */
14
 */
15
class Informations extends AppliControleur {
15
class Informations extends AppliControleur {
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;
20
	private $resultatDao = null;
21
	private $metaDao = null;
21
	private $metaDao = null;
22
	private $colonnesOrdonnees = array();
22
	private $colonnesOrdonnees = array();
23
	
23
	
24
	public function __construct()  {
24
	public function __construct()  {
25
		parent::__construct();
25
		parent::__construct();
26
		
26
		
27
		// Récupération de paramêtres
27
		// Récupération de paramêtres
28
		if (isset($_GET['ref'])) { // code du projet courrant
28
		if (isset($_GET['ref'])) { // code du projet courrant
29
			$this->referentiel = strtolower(strip_tags($_GET['ref']));
29
			$this->referentiel = strtolower(strip_tags($_GET['ref']));
30
		}
30
		}
31
		
31
		
32
		// Chargement des DAO nécessaires
32
		// Chargement des DAO nécessaires
33
		$this->resultatDao = new ResultatDao();
33
		$this->resultatDao = new ResultatDao();
34
		$this->traitementDao = new TraitementDao();
34
		$this->traitementDao = new TraitementDao();
35
		$this->referentielDao = new ReferentielDao();
35
		$this->referentielDao = new ReferentielDao();
36
		$this->metaDao = new MetaDao();
36
		$this->metaDao = new MetaDao();
37
		// tableau colonnesOrdonnees à modifier aussi dans service/Recherche.php
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"),
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"),
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"),
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"),
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)"),
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"),
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)"),
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)"),
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)"),
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)"),
47
			"nf" => array("Nom français normalisé","checked","Nom français conseillé pour ce taxon (à venir)"),
48
			"extax" => array("Présent dans Taxref","checked",""),
48
			"extax" => array("Présent dans Taxref","checked",""),
49
			"lien" => array("Permalien","checked","Lien http vers la fiche nomenclaturale"),
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"),
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)"),
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"),
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)"),
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"),
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"),
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"),
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"),
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"),
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"),
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"),
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"),
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"),
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)"),
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"),
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)"),
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)"),
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)"),
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)"),
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"),
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)"),
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"),
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"),
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."),
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"),
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"),
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é"),
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"),
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"),
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"),
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 »)"),
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. »)"),
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"),
82
			"nomcomm" => array("Nom commercial","","Nom commercial d'une plante (en majuscule"),
83
			"autres" => array("Autres","","colonnes spécifiques au référentiel"));
83
			"autres" => array("Autres","","colonnes spécifiques au référentiel"));
84
	}
84
	}
85
	
85
	
86
	//+----------------------------------------------------------------------------------------------------------------+
86
	//+----------------------------------------------------------------------------------------------------------------+
87
	// Méthodes
87
	// Méthodes
88
	/**
88
	/**
89
	 * Fonction d'affichage par défaut
89
	 * Fonction d'affichage par défaut
90
	 */
90
	 */
91
	public function executerActionParDefaut() {
91
	public function executerActionParDefaut() {
92
		return $this->afficherDetail();
92
		return $this->afficherDetail();
93
	}
93
	}
94
 
94
 
95
	/**
95
	/**
96
	 * Affiche le détail d'un référentiel et la liste des actions possibles
96
	 * Affiche le détail d'un référentiel et la liste des actions possibles
97
	 */
97
	 */
98
	public function afficherDetail() {
98
	public function afficherDetail() {
99
		$donnees = array();
-
 
100
		$this->definirCommeModulePrincipal('Informations');
99
		$this->definirCommeModulePrincipal('Informations');
101
		
-
 
102
		// Traitement de l'info sur le code du référentiel
-
 
103
		if (isset($this->referentiel)) {
-
 
104
			$this->construireMenu($this->referentiel);
-
 
105
			$this->construireFilAriane($this->referentiel);
-
 
106
			$donnees['referentiel'] = $this->referentiel;
-
 
107
			$donnees['nom_referentiel'] = $this->referentielDao->getNom($this->referentiel);
-
 
108
			$donnees['url_menu_test'] = $this->obtenirUrlMenuTest($this->referentiel);
-
 
109
			$donnees['url_menu_versionnage'] = $this->obtenirUrlMenuVersionnage($this->referentiel);
-
 
110
			$donnees['url_menu_consultation'] = $this->obtenirUrlMenuConsultation($this->referentiel);
-
 
111
			$donnees['url_form_telech'] = $this->obtenirUrlDetailReferentielTelechargement($this->referentiel);
100
		$donnees = $this->preparerPagePourDetailReferentielEtTelechargement();
112
			
-
 
113
			// suppression du téléchargement pour bdbfx
-
 
114
			if ($this->referentiel != 'bdbfx') {
-
 
115
				$donnees['versions'] = $this->afficherFormulaireTelechargementsReferentiels();
-
 
116
				$donnees['infos_telechargements'] = $this->afficherTelechargementsReferentiels();
-
 
117
				$donnees['colonnesOrdonnees'] = $this->colonnesOrdonnees;
-
 
118
			}
-
 
119
		} else {
-
 
120
			$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx).");
-
 
121
		}
-
 
122
		
101
 
123
		$donnees['messages'] = $this->getMessages();
102
		$donnees['messages'] = $this->getMessages();
124
		$this->traiterEsperluette($donnees);
103
		$this->traiterEsperluette($donnees);
125
		$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false);
104
		$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false);
126
	}
105
	}
127
	
106
 
128
	public function telecharger() {
107
	public function telecharger() {
129
		//$this->afficherDetail();
-
 
130
		$dossier = Config::get('chemin_tmp');
108
		$dossier = Config::get('chemin_tmp');
131
		$parametres['ref'] = $this->referentiel;
109
		$parametres['ref'] = $this->referentiel;
132
		$parametres['version'] = $_POST["version"];
110
		$parametres['version'] = $_POST["version"];
133
		$parametres['version'] = str_replace(".", "_", $parametres['version']);
111
		$parametres['version'] = str_replace(".", "_", $parametres['version']);
134
		$parametres['champs'] = implode(",",$_POST["champs"]);
112
		$parametres['champs'] = implode(",",$_POST["champs"]);
135
		$parametres['filtres'] = implode(",",$_POST["filtres"]);
113
		$parametres['filtres'] = implode(",",$_POST["filtres"]);
136
		$this->supprimerAncienExport($dossier);
114
		$this->supprimerAncienExport($dossier);
137
		$ref = $this->referentielDao->exporter($parametres);
115
		$ref = $this->referentielDao->exporter($parametres);
138
		$meta = $this->metaDao->exporter($parametres);
116
		$meta = $this->metaDao->exporter($parametres);
139
 
117
 
-
 
118
		$dossierDateEtNomDeFichier = date('Y_m_d').'/'.$this->referentiel.time().'.zip';
140
		$cheminZip = $dossier.date('Y_m_d').'/'.$this->referentiel.time().'.zip';
119
		$cheminZip = $dossier.$dossierDateEtNomDeFichier;
141
		$zip = new ZipArchive();
120
		$zip = new ZipArchive();
142
		if($zip->open($cheminZip, ZipArchive::CREATE) === true) { 
-
 
143
			echo "Ouverture du fichier [$cheminZip]<br/>";
121
		if($zip->open($cheminZip, ZipArchive::CREATE) === true) {
144
			// Ajout des fichiers métadonnées, référentiel et manuel technique
122
			// Ajout des fichiers métadonnées, référentiel et manuel technique
145
			$meta = str_replace("\\/", "/", $meta);
123
			$meta = str_replace("\\/", "/", $meta);
146
			if (file_exists($meta)) $metazip = $zip->addFile($meta, "informations.csv"); 
124
			if (file_exists($meta)) $metazip = $zip->addFile($meta, "informations.csv"); 
147
			if (file_exists($ref)) $refzip = $zip->addFile($ref, "referentiel.csv");
125
			if (file_exists($ref)) $refzip = $zip->addFile($ref, "referentiel.csv");
148
			if (file_exists($dossier.'mtpr_V4_4.pdf')) $zip->addFile($dossier.'mtpr_V4_4.pdf', 'manuel_technique.pdf');
126
			if (file_exists($dossier.'mtpr_V4_4.pdf')) $zip->addFile($dossier.'mtpr_V4_4.pdf', 'manuel_technique.pdf');
149
			// Et on referme l'archive
127
			// Et on referme l'archive
150
			$zip->close();
128
			$zip->close();
151
		} else {
129
		} else {
152
			echo "Impossible d'ouvrir le fichier [$cheminZip]<br/>";
130
			echo "Erreur : impossible d'ouvrir le fichier [$cheminZip]<br/>";
153
		}
131
		}
-
 
132
 
-
 
133
		// on revient à la page de détail, avec un lien de téléchargement en prime
154
 
134
		$donnees = $this->preparerPagePourDetailReferentielEtTelechargement();
-
 
135
		if (file_exists($cheminZip)) {
-
 
136
			$urlLien = Config::get("base_url_telechargements") . $dossierDateEtNomDeFichier;
-
 
137
			$donnees['url_telechargement_zip'] = $urlLien;
-
 
138
		}
-
 
139
		$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false);
-
 
140
	}
-
 
141
 
-
 
142
	// exécute la partie commune entre l'action "detail" et l'action "telecharger"
-
 
143
	protected function preparerPagePourDetailReferentielEtTelechargement() {
-
 
144
		$donnees = array();
155
		if (file_exists($cheminZip)) {
145
		// Traitement de l'info sur le code du référentiel
-
 
146
		if (isset($this->referentiel)) {
-
 
147
			$this->construireMenu($this->referentiel);
-
 
148
			$this->construireFilAriane($this->referentiel);
-
 
149
			$donnees['referentiel'] = $this->referentiel;
-
 
150
			$donnees['nom_referentiel'] = $this->referentielDao->getNom($this->referentiel);
-
 
151
			$donnees['url_menu_test'] = $this->obtenirUrlMenuTest($this->referentiel);
-
 
152
			$donnees['url_menu_versionnage'] = $this->obtenirUrlMenuVersionnage($this->referentiel);
-
 
153
			$donnees['url_menu_consultation'] = $this->obtenirUrlMenuConsultation($this->referentiel);
-
 
154
			$donnees['url_form_telech'] = $this->obtenirUrlDetailReferentielTelechargement($this->referentiel);
-
 
155
				
-
 
156
			// suppression du téléchargement pour bdbfx
-
 
157
			if ($this->referentiel != 'bdbfx') {
-
 
158
				$donnees['versions'] = $this->afficherFormulaireTelechargementsReferentiels();
-
 
159
				$donnees['infos_telechargements'] = $this->afficherTelechargementsReferentiels();
-
 
160
				$donnees['colonnesOrdonnees'] = $this->colonnesOrdonnees;
-
 
161
			}
-
 
162
		} else {
156
			echo "<a href='".$zip."'>";
163
			$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx).");
-
 
164
		}
157
		}
165
		return $donnees;
158
	}
166
	}
159
	
167
 
160
	private function supprimerAncienExport($dossier) {
168
	private function supprimerAncienExport($dossier) {
161
		$pointeur = opendir($dossier);
169
		$pointeur = opendir($dossier);
162
		// si pas d'erreur d'ouverture du dossier on lance le scan
170
		// si pas d'erreur d'ouverture du dossier on lance le scan
163
		if( $pointeur != false ) {
171
		if( $pointeur != false ) {
164
			// Parcours du repertoire
172
			// Parcours du repertoire
165
			while( $ss_dossier = readdir($pointeur)) {
173
			while( $ss_dossier = readdir($pointeur)) {
166
				if($ss_dossier != "." && $ss_dossier != "..") {
174
				if($ss_dossier != "." && $ss_dossier != "..") {
167
					$chemin_complet = $dossier . $ss_dossier;
175
					$chemin_complet = $dossier . $ss_dossier;
168
					if (is_dir($chemin_complet) && $ss_dossier < date('Y_m_d')) {
176
					if (is_dir($chemin_complet) && $ss_dossier < date('Y_m_d')) {
169
						$fichiers = scandir($chemin_complet);
177
						$fichiers = scandir($chemin_complet);
170
						foreach ($fichiers as $fichier) {
178
						foreach ($fichiers as $fichier) {
171
							if($fichier != "." && $fichier != "..") {
179
							if($fichier != "." && $fichier != "..") {
172
								unlink($chemin_complet."/".$fichier);
180
								unlink($chemin_complet."/".$fichier);
173
							}
181
							}
174
						}
182
						}
175
						rmdir($chemin_complet);
183
						rmdir($chemin_complet);
176
					}
184
					}
177
				}
185
				}
178
			}
186
			}
179
			closedir($pointeur);
187
			closedir($pointeur);
180
		}
188
		}
181
	}
189
	}
182
	
190
	
183
	private function afficherFormulaireTelechargementsReferentiels() {
191
	private function afficherFormulaireTelechargementsReferentiels() {
184
		$versions = $this->traitementDao->getTraitementsTermines($this->referentiel, 'versionnage');
192
		$versions = $this->traitementDao->getTraitementsTermines($this->referentiel, 'versionnage');
185
		foreach ($versions as $id => $version) {
193
		foreach ($versions as $id => $version) {
186
		$versions[$id] = (unserialize($versions[$id]["script_parametres"])); }
194
		$versions[$id] = (unserialize($versions[$id]["script_parametres"])); }
187
		return $versions;
195
		return $versions;
188
	}
196
	}
189
	private function afficherTelechargementsReferentiels() {
197
	private function afficherTelechargementsReferentiels() {
190
		$infos_telechargements = array();
198
		$infos_telechargements = array();
191
		// Recherche des traitements déjà effectué
199
		// Recherche des traitements déjà effectué
192
		$resultat = $this->traitementDao->getTraitementsTermines($this->referentiel, 'versionnage');
200
		$resultat = $this->traitementDao->getTraitementsTermines($this->referentiel, 'versionnage');
193
		if (is_array($resultat)) {
201
		if (is_array($resultat)) {
194
			foreach ($resultat as &$traitement) {
202
			foreach ($resultat as &$traitement) {
195
				$infos_traitement = $this->traitementDao->getInfos($traitement['id_traitement']);
203
				$infos_traitement = $this->traitementDao->getInfos($traitement['id_traitement']);
196
				if ($infos_traitement != false) {
204
				if ($infos_traitement != false) {
197
					// Recherche des fichiers disponibles
205
					// Recherche des fichiers disponibles
198
					$infos_zip = $this->obtenirUrlsZipPourTraitement($infos_traitement);
206
					$infos_zip = $this->obtenirUrlsZipPourTraitement($infos_traitement);
199
					$infos_telechargements[] = array(
207
					$infos_telechargements[] = array(
200
								'infos_traitement' => $traitement,
208
								'infos_traitement' => $traitement,
201
								'description' => $this->creerDescriptionTelechargement($traitement),
209
								'description' => $this->creerDescriptionTelechargement($traitement),
202
								'urls_zip' => $infos_zip);
210
								'urls_zip' => $infos_zip);
203
				}
211
				}
204
			}
212
			}
205
		}
213
		}
206
		return $infos_telechargements;
214
		return $infos_telechargements;
207
	}
215
	}
208
		
216
		
209
	private function creerDescriptionTelechargement($traitement) {
217
	private function creerDescriptionTelechargement($traitement) {
210
		return strftime('%e %B %Y', strtotime($traitement['meta_date_creation'])).' ('.$this->referentielDao->getNom($this->referentiel).') ';
218
		return strftime('%e %B %Y', strtotime($traitement['meta_date_creation'])).' ('.$this->referentielDao->getNom($this->referentiel).') ';
211
	}
219
	}
212
	
220
	
213
}
221
}
214
?>
222
?>