Subversion Repositories Applications.referentiel

Rev

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

Rev Author Line No. Line
271 delphine 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Classe Controleur du module Accueil.
5
 * Affichage les infos sur l'ensemble des référentiels disponibles.
6
 *
7
 * @package		Referentiel
8
 * @category	Php5.2
9
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
10
 * @copyright	2010 Tela-Botanica
11
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
13
 * @version		SVN: $Id$
14
 */
15
class Informations extends AppliControleur {
16
 
17
	private $referentiel = null;
18
	private $referentielDao = null;
276 aurelien 19
	private $traitementDao = null;
20
	private $resultatDao = null;
271 delphine 21
 
22
	public function __construct()  {
23
		parent::__construct();
24
 
25
		// Récupération de paramêtres
26
		if (isset($_GET['ref'])) { // code du projet courrant
27
			$this->referentiel = strtolower(strip_tags($_GET['ref']));
28
		}
29
 
30
		// Chargement des DAO nécessaires
276 aurelien 31
		$this->resultatDao = new ResultatDao();
32
		$this->traitementDao = new TraitementDao();
271 delphine 33
		$this->referentielDao = new ReferentielDao();
34
	}
35
 
36
	//+----------------------------------------------------------------------------------------------------------------+
37
	// Méthodes
38
	/**
39
	 * Fonction d'affichage par défaut
40
	 */
41
	public function executerActionParDefaut() {
42
		return $this->afficherDetail();
43
	}
44
 
45
	/**
46
	 * Affiche le détail d'un référentiel et la liste des actions possibles
47
	 */
48
	public function afficherDetail() {
49
		$donnees = array();
50
		$this->definirCommeModulePrincipal('Informations');
51
 
52
		// Traitement de l'info sur le code du référentiel
53
		if (isset($this->referentiel)) {
54
			$this->construireMenu($this->referentiel);
55
			$this->construireFilAriane($this->referentiel);
56
			$donnees['referentiel'] = $this->referentiel;
57
			$donnees['nom_referentiel'] = $this->referentielDao->getNom($this->referentiel);
58
			$donnees['url_menu_test'] = $this->obtenirUrlMenuTest($this->referentiel);
59
			$donnees['url_menu_versionnage'] = $this->obtenirUrlMenuVersionnage($this->referentiel);
60
			$donnees['url_menu_consultation'] = $this->obtenirUrlMenuConsultation($this->referentiel);
61
 
276 aurelien 62
			$donnees['infos_telechargements'] = $this->afficherTelechargementsReferentiels();
271 delphine 63
		} else {
64
			$this->addMessage("Aucun code de projet de référentiel n'est indiqué (Ex. bdtfx).");
65
		}
66
 
67
		$donnees['messages'] = $this->getMessages();
68
		$this->traiterEsperluette($donnees);
69
		$this->setSortie(self::RENDU_CORPS, $this->getVue('detail_referentiel', $donnees), false);
70
	}
71
 
276 aurelien 72
	private function afficherTelechargementsReferentiels() {
73
		$infos_telechargements = array();
74
		// Recherche des traitements déjà effectué
75
		$resultat = $this->traitementDao->getTraitementsTermines($this->referentiel, 'versionnage');
76
		if (is_array($resultat)) {
77
			foreach ($resultat as &$traitement) {
78
				$infos_traitement = $this->traitementDao->getInfos($traitement['id_traitement']);
79
				if ($infos_traitement != false) {
80
					// Recherche des fichiers disponibles
81
					$infos_zip = $this->obtenirUrlsZipPourTraitement($infos_traitement);
82
					$infos_telechargements[] = array(
83
								'infos_traitement' => $traitement,
84
								'description' => $this->creerDescriptionTelechargement($traitement),
85
								'urls_zip' => $infos_zip);
86
				}
87
			}
88
		}
89
		return $infos_telechargements;
90
	}
91
 
92
	private function creerDescriptionTelechargement($traitement) {
93
		return strftime('%e %B %Y', strtotime($traitement['meta_date_creation'])).' ('.$this->referentielDao->getNom($this->referentiel).') ';
94
	}
95
 
271 delphine 96
}
97
?>