Subversion Repositories Applications.referentiel

Rev

Rev 271 | Rev 316 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php
// declare(encoding='UTF-8');
/**
 * Classe Controleur du module Accueil.
 * Affichage les infos sur l'ensemble des référentiels disponibles.
 * 
 * @package             Referentiel
 * @category    Php5.2
 * @author              Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @copyright   2010 Tela-Botanica
 * @license             http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
 * @license             http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
 * @version             SVN: $Id$
 */
class Informations extends AppliControleur {
        
        private $referentiel = null;
        private $referentielDao = null;
        private $traitementDao = null;
        private $resultatDao = null;
        
        public function __construct()  {
                parent::__construct();
                
                // Récupération de paramêtres
                if (isset($_GET['ref'])) { // code du projet courrant
                        $this->referentiel = strtolower(strip_tags($_GET['ref']));
                }
                
                // Chargement des DAO nécessaires
                $this->resultatDao = new ResultatDao();
                $this->traitementDao = new TraitementDao();
                $this->referentielDao = new ReferentielDao();
        }
        
        //+----------------------------------------------------------------------------------------------------------------+
        // Méthodes
        /**
         * Fonction d'affichage par défaut
         */
        public function executerActionParDefaut() {
                return $this->afficherDetail();
        }

        /**
         * Affiche le détail d'un référentiel et la liste des actions possibles
         */
        public function afficherDetail() {
                $donnees = array();
                $this->definirCommeModulePrincipal('Informations');
                
                // 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['infos_telechargements'] = $this->afficherTelechargementsReferentiels();
                } 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);
        }
        
        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).') ';
        }
        
}
?>