Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 419 | Rev 448 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 419 Rev 422
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe mère du module Liste.
4
 * Classe mère du module Liste.
5
 *
5
 *
6
 * @category	PHP 5.2
6
 * @category	PHP 5.2
7
 * @package		eflore-consultation
7
 * @package		eflore-consultation
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @author		Delphine CAUQUIL <delphine@tela-botanica.org>
9
 * @author		Delphine CAUQUIL <delphine@tela-botanica.org>
10
 * @copyright	2011 Tela-Botanica
10
 * @copyright	2011 Tela-Botanica
11
 * @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
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
12
 * @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
13
 * @version		$Id$
13
 * @version		$Id$
14
 */
14
 */
15
class Ethnobotanique extends aControleur {
15
class Ethnobotanique extends aControleur {
16
 
16
 
17
	private $conteneur = null;
17
	private $conteneur = null;
18
	private $nomCourant = null;
18
	private $nomCourant = null;
19
	private $nomsVernaculaires = null;
19
	private $nomsVernaculaires = null;
20
	private $wikini;
20
	private $wikini;
21
 
21
 
22
	public function __construct(Conteneur $conteneur) {
22
	public function __construct(Conteneur $conteneur) {
23
		$this->conteneur = $conteneur;
23
		$this->conteneur = $conteneur;
24
		$this->nomCourant = $this->conteneur->getNomCourant();
24
		$this->nomCourant = $this->conteneur->getNomCourant();
25
		$this->nomsVernaculaires = $this->conteneur->getApiNomsVernaculaires();
25
		$this->nomsVernaculaires = $this->conteneur->getApiNomsVernaculaires();
26
		$this->wikini = $this->conteneur->getApiWikini();
26
		$this->wikini = $this->conteneur->getApiWikini();
27
		$this->meta = $this->conteneur->getApiMetaDonnees();
27
		$this->meta = $this->conteneur->getApiMetaDonnees();
28
		$this->appUrls = $this->conteneur->getAppUrls();
28
		$this->appUrls = $this->conteneur->getAppUrls();
29
	}
29
	}
30
 
30
 
31
	public function obtenirDonnees() {
31
	public function obtenirDonnees() {
32
		$donnees['nvjfl'] = $this->getNvjfl();
32
		$donnees['nvjfl'] = $this->getNvjfl();
33
		$donnees['chorologie'] = $this->getChorologie();
33
		$donnees['chorologie'] = $this->getChorologie();
34
		$donnees['wikini'] = $this->getWikini();
34
		$donnees['wikini'] = $this->getWikini();
35
		return $donnees;
35
		return $donnees;
36
	}
36
	}
37
 
37
 
38
	private function getNvjfl() {
38
	private function getNvjfl() {
39
		$nvjfl = array();
39
		$nvjfl = array();
40
		$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
40
		$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
41
		$nomsVerna = $this->nomsVernaculaires->getRechercheComplete($nt);
41
		$nomsVerna = $this->nomsVernaculaires->getRechercheComplete($nt);
42
		$nvjfl['noms'] = $nomsVerna['resultat'];
42
		$nvjfl['noms'] = $nomsVerna['resultat'];
43
		$this->meta->setProjet('nvjfl');
43
		$this->meta->setProjet('nvjfl');
44
		$meta = $this->meta->getMetaDonnees();
44
		$meta = $this->meta->getMetaDonnees();
45
		$titreMeta = $meta[0]['titre'];
45
		$titreMeta = $meta[0]['titre'];
46
		$nvjfl['meta']['titre'] = $titreMeta;
46
		$nvjfl['meta']['titre'] = $titreMeta;
47
		$nvjfl['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('nvjfl');
47
		$nvjfl['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('nvjfl');
48
		return $nvjfl;
48
		return $nvjfl;
49
	}
49
	}
50
	
50
	
51
	public function getBloc() {
51
	public function getBloc() {
52
		$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
52
		$nt = $this->nomCourant->getNomRetenu()->get('num_taxonomique');
53
		$nomsVerna = $this->nomsVernaculaires->getRechercheLimitee($nt);
53
		$nomsVerna = $this->nomsVernaculaires->getRechercheLimitee($nt);
54
		$donnees['nomsVerna'] = (isset($nomsVerna['resultat']) && is_array($nomsVerna['resultat'])) ? array_slice($nomsVerna['resultat'], 0, 5) : array();
54
		$donnees['nomsVerna'] = (isset($nomsVerna['resultat']) && is_array($nomsVerna['resultat'])) ? array_slice($nomsVerna['resultat'], 0, 3) : array();
-
 
55
		$donnees['autresNomsVerna'] = count($nomsVerna['resultat']) - 3;
-
 
56
		$donnees['wikini'] = $this->getWikini();
55
		return $donnees;
57
		return $donnees;
56
	}
58
	}
57
		
59
		
58
	private function getChorologie() {
60
	private function getChorologie() {
59
		$infos_choro = $this->nomCourant->getNomSelectionne()->getInfos();
61
		$infos_choro = $this->nomCourant->getNomSelectionne()->getInfos();
60
		$donnees = $this->traiterTableauChorologie($infos_choro);
62
		$donnees = $this->traiterTableauChorologie($infos_choro);
61
		$this->meta->setProjet('bdtfx');
63
		$this->meta->setProjet('bdtfx');
62
		$meta = $this->meta->getMetaDonnees();
64
		$meta = $this->meta->getMetaDonnees();
63
		$titreMeta = $meta[0]['titre'];
65
		$titreMeta = $meta[0]['titre'];
64
		$donnees['meta']['titre'] = $titreMeta;
66
		$donnees['meta']['titre'] = $titreMeta;
65
		$donnees['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('bdtfx');
67
		$donnees['meta']['url'] = $this->appUrls->obtenirUrlMetaDonnees('bdtfx');
66
		return $donnees;
68
		return $donnees;
67
	}
69
	}
68
	
70
	
69
	private function traiterTableauChorologie($infos_choro) {
71
	private function traiterTableauChorologie($infos_choro) {
70
		$donnees_choro = array();
72
		$donnees_choro = array();
71
		$colonnes = array();
73
		$colonnes = array();
72
		foreach ($infos_choro as $param => $valeur) {
74
		foreach ($infos_choro as $param => $valeur) {
73
			if(substr($param, 0, 8) == 'presence') {	
75
			if(substr($param, 0, 8) == 'presence') {	
74
				$lieu = $this->obtenirLieuPourCodePresence($param);
76
				$lieu = $this->obtenirLieuPourCodePresence($param);
75
				if($lieu != '') {
77
				if($lieu != '') {
76
					$donnees_choro['Présence'][$lieu] = $valeur;
78
					$donnees_choro['Présence'][$lieu] = $valeur;
77
					if(!in_array($lieu, $colonnes)) {
79
					if(!in_array($lieu, $colonnes)) {
78
						$colonnes[] = $lieu;
80
						$colonnes[] = $lieu;
79
					}
81
					}
80
				}
82
				}
81
			} else {
83
			} else {
82
				$donnees_choro = $this->traiterChampsStatuts($donnees_choro, $param, $valeur);
84
				$donnees_choro = $this->traiterChampsStatuts($donnees_choro, $param, $valeur);
83
			}
85
			}
84
		}
86
		}
85
 
87
 
86
		ksort($donnees_choro);	
88
		ksort($donnees_choro);	
87
		$donnees = array('colonnes' => $colonnes, 'donnees' => $donnees_choro);
89
		$donnees = array('colonnes' => $colonnes, 'donnees' => $donnees_choro);
88
		
90
		
89
		return $donnees;
91
		return $donnees;
90
	}
92
	}
91
	
93
	
92
	private function traiterChampsStatuts($tableau_donnees, $code, $valeur) {
94
	private function traiterChampsStatuts($tableau_donnees, $code, $valeur) {
93
		if ($code == 'statut_origine') {
95
		if ($code == 'statut_origine') {
94
			$tableau_donnees['Statut d\'origine']['France'] = $valeur;
96
			$tableau_donnees['Statut d\'origine']['France'] = $valeur;
95
		} elseif ($code == 'statut_introduction') {
97
		} elseif ($code == 'statut_introduction') {
96
			$tableau_donnees['Statut d\'introduction']['France'] = $valeur;
98
			$tableau_donnees['Statut d\'introduction']['France'] = $valeur;
97
		} elseif ($code == 'statut_culture') {
99
		} elseif ($code == 'statut_culture') {
98
			$tableau_donnees['Statut de culture']['France'] = $valeur;
100
			$tableau_donnees['Statut de culture']['France'] = $valeur;
99
		}
101
		}
100
		
102
		
101
		return $tableau_donnees;
103
		return $tableau_donnees;
102
	}
104
	}
103
	
105
	
104
	private function obtenirLieuPourCodePresence($code) {
106
	private function obtenirLieuPourCodePresence($code) {
105
		$tableau_presence = explode('_', $code, 2);
107
		$tableau_presence = explode('_', $code, 2);
106
		$prefixe = (count($tableau_presence) == 2) ? $tableau_presence[0] : '';
108
		$prefixe = (count($tableau_presence) == 2) ? $tableau_presence[0] : '';
107
		$lieu = (count($tableau_presence) == 2) ? $tableau_presence[1] : '';
109
		$lieu = (count($tableau_presence) == 2) ? $tableau_presence[1] : '';
108
			
110
			
109
		if($code == 'presence') {
111
		if($code == 'presence') {
110
			$lieu = 'France';
112
			$lieu = 'France';
111
		} elseif (($lieu != '') && strpos($lieu , '.') === false) {
113
		} elseif (($lieu != '') && strpos($lieu , '.') === false) {
112
			$lieu = 'France ('.$this->getCorrespondanceLieu($lieu).')';
114
			$lieu = 'France ('.$this->getCorrespondanceLieu($lieu).')';
113
		} else {
115
		} else {
114
			$lieu = '';
116
			$lieu = '';
115
		}
117
		}
116
		return $lieu;
118
		return $lieu;
117
	}
119
	}
118
	
120
	
119
	private function getCorrespondanceLieu($lieu) {
121
	private function getCorrespondanceLieu($lieu) {
120
		switch(strtolower($lieu)) {
122
		switch(strtolower($lieu)) {
121
			case 'ga':
123
			case 'ga':
122
				$lieu = 'Hors Corse';
124
				$lieu = 'Hors Corse';
123
				break;
125
				break;
124
			case 'co':
126
			case 'co':
125
				$lieu = 'Corse';
127
				$lieu = 'Corse';
126
				break;
128
				break;
127
		}
129
		}
128
	
130
	
129
		return $lieu;
131
		return $lieu;
130
	}
132
	}
131
	
133
	
132
	private function getWikini() {
134
	private function getWikini() {
133
		$wikini = array();
135
		$wikini = array();
134
		$wikini['titre'] = 'Wikini';
136
		$wikini['titre'] = 'Wikini';
135
		$referentiel = $this->conteneur->getParametre('referentiel');
137
		$referentiel = $this->conteneur->getParametre('referentiel');
136
		$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
138
		$num_tax = $this->nomCourant->getNomSelectionne()->get('num_taxonomique');
137
		$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
139
		$page_wiki = $this->wikini->getPageWikiPourRefEtNumTax($referentiel, $num_tax);
138
		$wikini['noms_communs'] = $this->wikini->getTexteFormate($page_wiki, 'noms communs');
140
		$wikini['noms_communs'] = $this->wikini->getTexteFormate($page_wiki, 'noms communs');
139
		$wikini['culture_et_arts'] = $this->wikini->getTexteFormate($page_wiki, 'culture et arts');
141
		$wikini['culture_et_arts'] = $this->wikini->getTexteFormate($page_wiki, 'culture et arts');
140
		$wikini['usage'] = $this->wikini->getTexteFormate($page_wiki, 'usage');
142
		$wikini['usage'] = $this->wikini->getTexteFormate($page_wiki, 'usage');
141
		return $wikini;
143
		return $wikini;
142
	}
144
	}
143
}
145
}
144
?>
146
?>