Subversion Repositories Applications.referentiel

Rev

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

Rev 327 Rev 329
Line 94... Line 94...
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() {
-
 
99
		$donnees = array();
98
	public function afficherDetail() {
100
		$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);
99
		$this->definirCommeModulePrincipal('Informations');
111
			$donnees['url_form_telech'] = $this->obtenirUrlDetailReferentielTelechargement($this->referentiel);
-
 
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
		}
100
		$donnees = $this->preparerPagePourDetailReferentielEtTelechargement();
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() {
-
 
129
		//$this->afficherDetail();
107
	public function telecharger() {
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);
Line 138... Line 116...
138
		$meta = $this->metaDao->exporter($parametres);
116
		$meta = $this->metaDao->exporter($parametres);
-
 
117
 
139
 
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();
-
 
142
		if($zip->open($cheminZip, ZipArchive::CREATE) === true) { 
120
		$zip = new ZipArchive();
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 {
Line -... Line 130...
-
 
130
			echo "Erreur : impossible d'ouvrir le fichier [$cheminZip]<br/>";
-
 
131
		}
152
			echo "Impossible d'ouvrir le fichier [$cheminZip]<br/>";
132
 
-
 
133
		// on revient à la page de détail, avec un lien de téléchargement en prime
-
 
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"
153
		}
143
	protected function preparerPagePourDetailReferentielEtTelechargement() {
-
 
144
		$donnees = array();
-
 
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;
154
 
161
			}
-
 
162
		} else {
155
		if (file_exists($cheminZip)) {
163
			$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx).");
156
			echo "<a href='".$zip."'>";
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);