/trunk/interfaces/controleurs/AppliControleur.php |
---|
202,10 → 202,10 |
$menu['activite'] = (($this->getModulePrincipalCourant() == 'Versionnage') ? 'actif' : 'inactif securise'); |
$menu['title'] = "Réservé aux coordinateurs. Générer une version de la base."; |
$donnees['menus'][] = $menu; |
$menu['nom'] = 'Informations'; |
$menu['nom'] = 'Informations et téléchargements'; |
$menu['url'] = $this->obtenirUrlMenuInformations($referentiel); |
$menu['activite'] = (($this->getModulePrincipalCourant() == 'Informations') ? 'actif' : 'inactif'); |
$menu['title'] = "Informations sur le projet."; |
$menu['title'] = "Informations sur le projet et téléchargements."; |
$donnees['menus'][] = $menu; |
$this->setSortie(self::RENDU_MENU, $this->getVue('menu', $donnees), false); |
} |
455,6 → 455,52 |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DES FICHIERS A TELECHARGER |
/** |
* Crée la liste d'url des fichiers à télécharger pour un traitement donné |
* @param Array $infos_traitement tableau contenant les informations du traitement |
* |
* @return Array un tableau contenant la liste des urls des fichiers à télécharger |
*/ |
protected function obtenirUrlsZipPourTraitement($infos_traitement) { |
$urls_zip = null; |
if (isset($infos_traitement['script']) && $infos_traitement['script'] == 'versionnage') { |
$meta = unserialize($infos_traitement['script_parametres']); |
$projet = strtolower($infos_traitement['referentiel_code']); |
$version = str_replace('.', '_', $meta['version']); |
$fichier_zip_bdnt = $projet.'_v'.$version.'.zip'; |
$url_zip_bdnt = sprintf(Config::get('url_zip_tpl'), $fichier_zip_bdnt); |
if ($this->testerUrl($url_zip_bdnt)) { |
$urls_zip[$fichier_zip_bdnt] = $url_zip_bdnt; |
} |
$fichier_zip_partiel_ancien = $projet.'_v'.$version.'_partiel.zip'; |
$url_zip_partiel_ancienne = sprintf(Config::get('url_zip_tpl'), $fichier_zip_partiel_ancien); |
$fichier_zip_partiel = $projet.'_v'.$version.$this->manuel['suffixe_partiel'].'.zip'; |
$url_zip_partiel = sprintf(Config::get('url_zip_tpl'), $fichier_zip_partiel); |
if ($this->testerUrl($url_zip_partiel)) { |
$urls_zip[$fichier_zip_partiel] = $url_zip_partiel; |
} else if ($this->testerUrl($url_zip_partiel_ancienne)) { |
$urls_zip[$fichier_zip_partiel_ancien] = $url_zip_partiel_ancienne; |
} |
} |
return $urls_zip; |
} |
/** |
* Teste une url donnée, en tentant de l'ouvrir et de la fermer |
* |
* @return boolean un booléen indiquant le succès ou non de l'opération |
*/ |
protected function testerUrl($url) { |
//TODO: voir si on peut inclure cette fonction dans le framework |
ini_set('allow_url_fopen', '1'); |
return (@fclose(@fopen($url, 'r'))) ? true : false; |
} |
//+----------------------------------------------------------------------------------------------------------------+ |
// GESTION DU CLIENT REST |
protected function getRestClient() { |
/trunk/interfaces/controleurs/Informations.php |
---|
16,6 → 16,8 |
private $referentiel = null; |
private $referentielDao = null; |
private $traitementDao = null; |
private $resultatDao = null; |
public function __construct() { |
parent::__construct(); |
26,6 → 28,8 |
} |
// Chargement des DAO nécessaires |
$this->resultatDao = new ResultatDao(); |
$this->traitementDao = new TraitementDao(); |
$this->referentielDao = new ReferentielDao(); |
} |
37,9 → 41,7 |
public function executerActionParDefaut() { |
return $this->afficherDetail(); |
} |
/** |
* Affiche le détail d'un référentiel et la liste des actions possibles |
*/ |
57,6 → 59,7 |
$donnees['url_menu_versionnage'] = $this->obtenirUrlMenuVersionnage($this->referentiel); |
$donnees['url_menu_consultation'] = $this->obtenirUrlMenuConsultation($this->referentiel); |
$donnees['infos_telechargements'] = $this->afficherTelechargementsReferentiels(); |
} else { |
$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx)."); |
} |
66,5 → 69,29 |
$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false); |
} |
private function afficherTelechargementsReferentiels() { |
$infos_telechargements = array(); |
// Recherche des traitements déjà effectué |
$resultat = $this->traitementDao->getTraitementsTermines($this->referentiel, 'versionnage'); |
if (is_array($resultat)) { |
foreach ($resultat as &$traitement) { |
$infos_traitement = $this->traitementDao->getInfos($traitement['id_traitement']); |
if ($infos_traitement != false) { |
// Recherche des fichiers disponibles |
$infos_zip = $this->obtenirUrlsZipPourTraitement($infos_traitement); |
$infos_telechargements[] = array( |
'infos_traitement' => $traitement, |
'description' => $this->creerDescriptionTelechargement($traitement), |
'urls_zip' => $infos_zip); |
} |
} |
} |
return $infos_telechargements; |
} |
private function creerDescriptionTelechargement($traitement) { |
return strftime('%e %B %Y', strtotime($traitement['meta_date_creation'])).' ('.$this->referentielDao->getNom($this->referentiel).') '; |
} |
} |
?> |
/trunk/interfaces/controleurs/Traitement.php |
---|
65,7 → 65,7 |
} |
// Spécificité du script de versionnage |
$donnees['urls_zip'] = $this->traiterScriptVersionnage(); |
$donnees['urls_zip'] = $this->obtenirUrlsZipPourTraitement($this->traitement); |
// Recherche des résultats du traitement |
$infos = $this->resultatDao->getResultatsTraitement($this->traitementId); |
86,36 → 86,5 |
$this->construireMenu($this->referentiel); |
$this->construireFilAriane($this->referentiel, $this->traitementId); |
} |
private function traiterScriptVersionnage() { |
$urls_zip = null; |
if (isset($this->traitement['script']) && $this->traitement['script'] == 'versionnage') { |
$meta = unserialize($this->traitement['script_parametres']); |
$projet = strtolower($this->traitement['referentiel_code']); |
$version = str_replace('.', '_', $meta['version']); |
$fichier_zip_bdnt = $projet.'_v'.$version.'.zip'; |
$url_zip_bdnt = sprintf(Config::get('url_zip_tpl'), $fichier_zip_bdnt); |
if ($this->testerUrl($url_zip_bdnt)) { |
$urls_zip[$fichier_zip_bdnt] = $url_zip_bdnt; |
} |
$fichier_zip_partiel_ancien = $projet.'_v'.$version.'_partiel.zip'; |
$url_zip_partiel_ancienne = sprintf(Config::get('url_zip_tpl'), $fichier_zip_partiel_ancien); |
$fichier_zip_partiel = $projet.'_v'.$version.$this->manuel['suffixe_partiel'].'.zip'; |
$url_zip_partiel = sprintf(Config::get('url_zip_tpl'), $fichier_zip_partiel); |
if ($this->testerUrl($url_zip_partiel)) { |
$urls_zip[$fichier_zip_partiel] = $url_zip_partiel; |
} else if ($this->testerUrl($url_zip_partiel_ancienne)) { |
$urls_zip[$fichier_zip_partiel_ancien] = $url_zip_partiel_ancienne; |
} |
} |
return $urls_zip; |
} |
private function testerUrl($url) { |
ini_set('allow_url_fopen', '1'); |
return (@fclose(@fopen($url, 'r'))) ? true : false; |
} |
} |
?> |