96,9 → 96,30 |
* Affiche le détail d'un référentiel et la liste des actions possibles |
*/ |
public function afficherDetail() { |
$donnees = array(); |
$this->definirCommeModulePrincipal('Informations'); |
$donnees = $this->preparerPagePourDetailReferentielEtTelechargement(); |
|
// Traitement de l'info sur le code du référentiel |
if (isset($this->referentiel)) { |
$this->construireMenu($this->referentiel); |
$this->construireFilAriane($this->referentiel); |
$donnees['referentiel'] = $this->referentiel; |
$donnees['nom_referentiel'] = $this->referentielDao->getNom($this->referentiel); |
$donnees['url_menu_test'] = $this->obtenirUrlMenuTest($this->referentiel); |
$donnees['url_menu_versionnage'] = $this->obtenirUrlMenuVersionnage($this->referentiel); |
$donnees['url_menu_consultation'] = $this->obtenirUrlMenuConsultation($this->referentiel); |
$donnees['url_form_telech'] = $this->obtenirUrlDetailReferentielTelechargement($this->referentiel); |
|
// suppression du téléchargement pour bdbfx |
if ($this->referentiel != 'bdbfx') { |
$donnees['versions'] = $this->afficherFormulaireTelechargementsReferentiels(); |
$donnees['infos_telechargements'] = $this->afficherTelechargementsReferentiels(); |
$donnees['colonnesOrdonnees'] = $this->colonnesOrdonnees; |
} |
} else { |
$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx)."); |
} |
|
$donnees['messages'] = $this->getMessages(); |
$this->traiterEsperluette($donnees); |
$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false); |
105,6 → 126,7 |
} |
|
public function telecharger() { |
//$this->afficherDetail(); |
$dossier = Config::get('chemin_tmp'); |
$parametres['ref'] = $this->referentiel; |
$parametres['version'] = $_POST["version"]; |
115,10 → 137,10 |
$ref = $this->referentielDao->exporter($parametres); |
$meta = $this->metaDao->exporter($parametres); |
|
$dossierDateEtNomDeFichier = date('Y_m_d').'/'.$this->referentiel.time().'.zip'; |
$cheminZip = $dossier.$dossierDateEtNomDeFichier; |
$cheminZip = $dossier.date('Y_m_d').'/'.$this->referentiel.time().'.zip'; |
$zip = new ZipArchive(); |
if($zip->open($cheminZip, ZipArchive::CREATE) === true) { |
echo "Ouverture du fichier [$cheminZip]<br/>"; |
// Ajout des fichiers métadonnées, référentiel et manuel technique |
$meta = str_replace("\\/", "/", $meta); |
if (file_exists($meta)) $metazip = $zip->addFile($meta, "informations.csv"); |
127,44 → 149,14 |
// Et on referme l'archive |
$zip->close(); |
} else { |
echo "Erreur : impossible d'ouvrir le fichier [$cheminZip]<br/>"; |
echo "Impossible d'ouvrir le fichier [$cheminZip]<br/>"; |
} |
|
// on revient à la page de détail, avec un lien de téléchargement en prime |
$donnees = $this->preparerPagePourDetailReferentielEtTelechargement(); |
if (file_exists($cheminZip)) { |
$urlLien = Config::get("base_url_telechargements") . $dossierDateEtNomDeFichier; |
$donnees['url_telechargement_zip'] = $urlLien; |
echo "<a href='".$zip."'>"; |
} |
$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false); |
} |
|
// exécute la partie commune entre l'action "detail" et l'action "telecharger" |
protected function preparerPagePourDetailReferentielEtTelechargement() { |
$donnees = array(); |
// Traitement de l'info sur le code du référentiel |
if (isset($this->referentiel)) { |
$this->construireMenu($this->referentiel); |
$this->construireFilAriane($this->referentiel); |
$donnees['referentiel'] = $this->referentiel; |
$donnees['nom_referentiel'] = $this->referentielDao->getNom($this->referentiel); |
$donnees['url_menu_test'] = $this->obtenirUrlMenuTest($this->referentiel); |
$donnees['url_menu_versionnage'] = $this->obtenirUrlMenuVersionnage($this->referentiel); |
$donnees['url_menu_consultation'] = $this->obtenirUrlMenuConsultation($this->referentiel); |
$donnees['url_form_telech'] = $this->obtenirUrlDetailReferentielTelechargement($this->referentiel); |
|
// suppression du téléchargement pour bdbfx |
if ($this->referentiel != 'bdbfx') { |
$donnees['versions'] = $this->afficherFormulaireTelechargementsReferentiels(); |
$donnees['infos_telechargements'] = $this->afficherTelechargementsReferentiels(); |
$donnees['colonnesOrdonnees'] = $this->colonnesOrdonnees; |
} |
} else { |
$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx)."); |
} |
return $donnees; |
} |
|
private function supprimerAncienExport($dossier) { |
$pointeur = opendir($dossier); |
// si pas d'erreur d'ouverture du dossier on lance le scan |