Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 308 | Rev 329 | Go to most recent revision | 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 Ethnobotanique extends aControleur {
302 jpm 16
 
17
	private $conteneur = null;
18
	private $nomCourant = null;
19
	private $nomsVernaculaires = null;
20
 
21
	public function __construct(Conteneur $conteneur) {
22
		$this->conteneur = $conteneur;
23
		$this->nomCourant = $this->conteneur->getNomCourant();
24
		$this->nomsVernaculaires = $this->conteneur->getApiNomsVernaculaires();
307 jpm 25
		$this->meta = $this->conteneur->getApiMetaDonnees();
26
		$this->appUrls = $this->conteneur->getAppUrls();
284 aurelien 27
	}
302 jpm 28
 
29
	public function obtenirDonnees() {
306 jpm 30
		$donnees['nvjfl'] = $this->getNvjfl();
321 aurelien 31
		$donnees['chorologie'] = $this->getChorologie();
306 jpm 32
		return $donnees;
33
	}
34
 
35
	private function getNvjfl() {
307 jpm 36
		$nvjfl = array();
302 jpm 37
		$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
306 jpm 38
		$nomsVerna = $this->nomsVernaculaires->getRechercheComplete($nt);
307 jpm 39
		$nvjfl['noms'] = $nomsVerna['resultat'];
40
		$this->meta->setProjet('nvjfl');
41
		$meta = $this->meta->getMetaDonnees();
42
		$titreMeta = $meta[0]['titre'];
43
		$nvjfl['meta']['titre'] = $titreMeta;
44
		$nvjfl['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('nvjfl');
45
		return $nvjfl;
272 delphine 46
	}
321 aurelien 47
 
48
	private function getChorologie() {
306 jpm 49
 
321 aurelien 50
		$infos_choro = $this->nomCourant->getNomSelectionne()->getInfos();
51
		$donnees_choro = array();
52
		$colonnes = array();
53
 
54
		foreach ($infos_choro as $param => $valeur) {
55
 
56
			$tableau_prefixe = explode('_', $param, 2);
57
			$prefixe = (count($tableau_prefixe) == 2) ? $tableau_prefixe[0] : '';
58
 
59
			$lieu = (count($tableau_prefixe) == 2) ? $tableau_prefixe[1] : 'France';
60
			$champs_chorologie = array('presence', 'statut_origine', 'statut_introduction', 'statut_culture');
61
 
62
			if(strpos($lieu , '.') === false && in_array($prefixe, $champs_chorologie)) {
63
 
64
				$lieu = 'France ('.$lieu.')';
65
 
66
				if ($prefixe == 'presence') {
67
					$donnees_choro['Présence'][$lieu] = $valeur;
68
				} elseif ($prefixe == 'statut_origine') {
69
					$donnees_choro['Statut d\'origine'][$lieu] = $valeur;
70
				} elseif ($prefixe == 'statut_introduction') {
71
					$donnees_choro['Statut d\'introduction'][$lieu] = $valeur;
72
				} elseif ($prefixe == 'statut_culture') {
73
					$donnees_choro['Statut de culture'][$lieu] = $valeur;
74
				}
75
				if(!in_array($lieu, $colonnes)) {
76
					$colonnes[] = $lieu;
77
				}
78
			}
79
		}
80
		foreach ($donnees_choro['Présence'] as $lieu => $valeur) {
81
			if (!isset($donnees_choro['Statut d\'origine'][$lieu])) {
82
				$donnees_choro['Statut d\'origine'][$lieu] = '';
83
			}
84
			if (!isset($donnees_choro['Statut d\'introduction'][$lieu])) {
85
				$donnees_choro['Statut d\'introduction'][$lieu] = '';
86
			}
87
			if (!isset($donnees_choro['Statut de culture'][$lieu])) {
88
				$donnees_choro['Statut de culture'][$lieu] = '';
89
			}
90
		}
91
 
92
		$donnees = array('colonnes' => $colonnes, 'donnees' => $donnees_choro);
93
		$this->meta->setProjet('bdtfx');
94
		$meta = $this->meta->getMetaDonnees();
95
		$titreMeta = $meta[0]['titre'];
96
		$donnees['meta']['titre'] = $titreMeta;
97
		$donnees['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('bdtfx');
98
		return $donnees;
99
	}
100
 
306 jpm 101
	public function getBloc() {
102
		$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
308 aurelien 103
		$nomsVerna = $this->nomsVernaculaires->getRechercheLimitee($nt);
104
		$donnees['nomsVerna'] = array_slice($nomsVerna['resultat'], 0, 5);
306 jpm 105
		return $donnees;
106
	}
272 delphine 107
}
108
?>