Subversion Repositories eFlore/Applications.eflore-consultation

Rev

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

Rev Author Line No. Line
272 delphine 1
<?php
2
// declare(encoding='UTF-8');
3
/**
4
 * Classe mère du module Liste.
5
 *
6
 * @category	PHP 5.2
7
 * @package		eflore-consultation
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @author		Delphine CAUQUIL <delphine@tela-botanica.org>
10
 * @copyright	2011 Tela-Botanica
11
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
12
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
13
 * @version		$Id$
14
 */
15
class Statut extends aControleur {
985 delphine 16
	private $conteneur = null;
17
	private $nomCourant = null;
18
	private $wikini = null;
19
	private $statuts = null;
1130 aurelien 20
	private $meta;
985 delphine 21
	private $referentiel = null;
1130 aurelien 22
	private $appUrls;
985 delphine 23
 
422 delphine 24
	public function __construct(Conteneur $conteneur) {
25
		$this->conteneur = $conteneur;
26
		$this->nomCourant = $this->conteneur->getNomCourant();
27
		$this->wikini = $this->conteneur->getApiWikini();
768 aurelien 28
		$this->statuts = $this->conteneur->getApiStatuts();
1130 aurelien 29
		$this->meta = $this->conteneur->getApiMetaDonnees();
985 delphine 30
		$this->referentiel = $this->conteneur->getParametre('referentiel');
1130 aurelien 31
		$this->appUrls = $this->conteneur->getAppUrls();
422 delphine 32
	}
33
 
768 aurelien 34
	public function getBloc() {
35
		$donnees = array();
36
		$donnees['statuts'] = $this->getStatutsZoneGeo();
1139 aurelien 37
		if(empty($donnees['statuts'])) {
768 aurelien 38
			$donnees['wikini'] = $this->getWikini();
39
		}
1139 aurelien 40
		$donnees['liste_rouge'] = $this->getCategorieListeRouge();
768 aurelien 41
		return $donnees;
42
	}
43
 
422 delphine 44
	public function obtenirDonnees() {
417 aurelien 45
		$donnees = array();
46
		$donnees['wikini'] = $this->getWikini();
768 aurelien 47
		$donnees['statuts'] = $this->getStatuts();
1139 aurelien 48
		$donnees['liste_rouge'] = $this->getCategorieListeRouge();
272 delphine 49
		return $donnees;
50
	}
417 aurelien 51
 
1503 delphine 52
	public function obtenirDonneesExport() {
53
		$donnees = array();
54
		$donnees['statuts'] = $this->getStatuts();
55
		$donnees['liste_rouge'] = $this->getCategorieListeRouge();
56
		return $donnees;
57
	}
58
 
768 aurelien 59
	private function getStatuts() {
1515 delphine 60
		$statuts = array();
985 delphine 61
		$projet = Config::get($this->referentiel.'.baseStatuts');
62
		if ($projet != "") {
63
			$nnr = $this->nomCourant->getNnr();
64
			$statuts = $this->statuts->getStatuts($projet, $nnr);
1130 aurelien 65
			$this->meta->setProjet($projet);
66
			$meta = $this->meta->getMetaDonnees();
67
			$statuts['meta'] = $meta[0];
68
			$statuts['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
985 delphine 69
		}
768 aurelien 70
		return $statuts;
71
	}
72
 
73
	private function getStatutsZoneGeo() {
1515 delphine 74
		$statuts = array();
985 delphine 75
		$projet = Config::get($this->referentiel.'.baseStatuts');
76
		if ($projet != "") {
77
			$nnr = $this->nomCourant->getNnr();
1445 delphine 78
			$reponse = $this->statuts->getStatutsZoneGeo($projet, $nnr);
1477 mathias 79
			if (! empty($reponse)) {
80
				foreach ($reponse as $statut) {
81
					$statuts[$statut['type_protection']][] = $statut['zone_application'];
82
				}
1445 delphine 83
			}
1130 aurelien 84
			$this->meta->setProjet($projet);
85
			$meta = $this->meta->getMetaDonnees();
985 delphine 86
		}
768 aurelien 87
		return $statuts;
88
	}
89
 
1139 aurelien 90
	private function getCategorieListeRouge() {
1515 delphine 91
		$liste_rouge = array();
1139 aurelien 92
		$projet = Config::get($this->referentiel.'.baseListeRouge');
93
		if ($projet != "") {
94
			$nnr = $this->nomCourant->getNnr();
95
			$liste_rouge = $this->statuts->getCategorieListeRouge($projet, $nnr);
96
			$this->meta->setProjet($projet);
97
			$meta = $this->meta->getMetaDonnees();
98
			$liste_rouge['meta'] = $meta[0];
99
			$liste_rouge['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees($projet);
100
		}
101
		return $liste_rouge;
102
	}
103
 
417 aurelien 104
	private function getWikini() {
105
		$wikini = array();
106
		$wikini['titre'] = 'Wikini';
107
		$referentiel = $this->conteneur->getParametre('referentiel');
108
		$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
109
		$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
418 aurelien 110
		$wikini['statuts_de_protection'] = $this->wikini->getTexteFormate($page_wiki, 'statuts de protection');
417 aurelien 111
		return $wikini;
112
	}
272 delphine 113
}
114
?>