Subversion Repositories Applications.referentiel

Rev

Rev 37 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
33 jpm 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Classe Controleur du module Resultat.
5
 * Affichage des infos sur un résultat de traitement.
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 Resultat extends AppliControleur {
16
 
37 jpm 17
	private $referentiel = null;
18
	private $traitementId = null;
33 jpm 19
	private $resultatId = null;
20
	private $resultatDao = null;
21
 
22
	public function __construct()  {
23
		parent::__construct();
24
 
25
		// Récupération de paramêtres
26
		if (isset($_GET['id-r'])) { // id du resultat courant
27
			$this->resultatId = strtolower($_GET['id-r']);
28
		}
37 jpm 29
		if (isset($_GET['ref'])) { // code du projet courrant
30
			$this->referentiel = strtolower($_GET['ref']);
31
		}
33 jpm 32
 
33
		// Chargement des DAO nécessaires
34
		if (isset($this->resultatId)) {
35
			$this->resultatDao = new ResultatDao();
36
		}
37
	}
38
 
39
	//+----------------------------------------------------------------------------------------------------------------+
40
	// Méthodes
41
	/**
42
	 * Fonction d'affichage par défaut
43
	 */
44
	public function executerActionParDefaut() {
45
		return $this->afficherResultat();
46
	}
47
 
48
	/**
49
	 * Affiche le formulaire de demande de traitement
50
	 */
51
	public function afficherResultat() {
52
		$donnees = array();
53
 
54
		// Traitement de l'info sur le code du référentiel
55
		if (isset($this->resultatId)) {
56
			// Recherche d'info sur le résultat
57
			$infos = $this->resultatDao->getInfos($this->resultatId);
58
			if ($infos != false) {
178 jpm 59
				$infos['message'] = $this->remplacerParametres($infos['message']);
37 jpm 60
				$donnees['resultat'] = $infos;
178 jpm 61
 
37 jpm 62
				$this->traitementId = $infos['ce_traitement'];
33 jpm 63
			} else {
64
				$this->addMessage("L'identifiant de résultat n'est pas indexé dans la base de données.");
65
			}
66
		} else {
67
			$this->addMessage("Aucun identifiant de résultat n'a été indiqué.");
68
		}
69
 
70
		$donnees['messages'] = $this->getMessages();
71
		$this->traiterEsperluette($donnees);
72
		$this->setSortie(self::RENDU_CORPS, $this->getVue('resultat', $donnees), false);
37 jpm 73
		$this->construireMenu($this->referentiel);
74
		$this->construireFilAriane($this->referentiel, $this->traitementId, $this->resultatId);
33 jpm 75
	}
178 jpm 76
 
77
	/**
78
	 * Les tests génèrent des messages au format HTML qui peuvent contenir des paramètres à remplacer au moment de l'affichage.
79
	 *
80
	 * @param String $txt
81
	 */
82
	private function remplacerParametres($txt) {
83
		return preg_replace('/{numNom::([0-9]+)}/', $this->obtenirUrlFicheTaxon($this->referentiel, "$1"), $txt);
84
	}
33 jpm 85
}
86
?>