Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 275 → Rev 276

/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;
}
}
?>