Subversion Repositories Applications.referentiel

Compare Revisions

Ignore whitespace Rev 274 → Rev 276

/trunk/interfaces/squelettes/detail_referentiel.tpl.html
19,4 → 19,21
Enfin, il est possible de <a href="<?=$url_menu_consultation;?>">consulter</a> en permanence les données saisies
dans la version de travail.
</p>
 
<h2>Versions</h2>
 
<?php if (isset($infos_telechargements) && !empty($infos_telechargements)) { ?>
<?php foreach ($infos_telechargements as $info) : ?>
<?php foreach ($info['urls_zip'] as $zip => $url) : ?>
<div class="lien_telechargement">
<a href="<?=$url?>">
Télécharger la version <?=$zip?>
</a>
<span class="description_telechargement"><?=$info['description']?></span></div>
<?php endforeach; ?>
<?php endforeach; ?>
<?php } else { ?>
<p> Aucun téléchargement n'est disponible pour ce référentiel </p>
<?php } ?>
 
<!-- REF - FIN DETAIL -->
/trunk/interfaces/squelettes/css/referentiel/referentiel.css
370,7 → 370,50
#resultats .nom{
font-weight:bold;
width:30%;}
 
/*---------------------------------------------------------------------------------------------------------------------------------------*/
/* Informations */
.lien_telechargement {
margin-bottom: 15px;
margin-top: 10px;
}
 
.lien_telechargement a {
border: 1px solid grey;
padding: 5px;
margin-right: 5px;
border-radius: 7px 7px 7px 7px;
background-color: #888;
background: -webkit-linear-gradient( #777, #F4F7F8);
background: -moz-linear-gradient( #777, #F4F7F8);
background: -ms-linear-gradient( #777, #F4F7F8);
background: -o-linear-gradient( #777, #F4F7F8);
background: linear-gradient( #777, #F4F7F8);
}
 
.lien_telechargement a:hover{
color: white;
background: #555;
background: -webkit-linear-gradient( #555, #666);
background: -moz-linear-gradient( #555, #666);
background: -ms-linear-gradient( #555, #666);
background: -o-linear-gradient( #555, #666);
background: linear-gradient( #555, #666);
}
 
.lien_telechargement a:active{
color: #000;
background: #444;
background: -webkit-linear-gradient( #555, #2C2C2C);
background: -moz-linear-gradient( #555, #2C2C2C);
background: -ms-linear-gradient( #555, #2C2C2C);
background: -o-linear-gradient( #555, #2C2C2C);
background: linear-gradient( #555, #2C2C2C);
box-shadow: 1px 1px 10px black inset,
0 1px 0 rgba( 255, 255, 255, 0.4);
}
/*---------------------------------------------------------------------------------------------------------------------------------------*/
/* Résultat */
#ref-resultat .resultat{
width:20px;
439,7 → 482,6
#ref-ref-mail .valid{
float:center;
}
 
/*---------------------------------------------------------------------------------------------------------------------------------------*/
/* Fragmenteur : pagination */
/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;
}
}
?>
/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).') ';
}
}
?>