Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 998 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 998 Rev 1145
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe gérant les noms scientifiques.
4
 * Classe gérant les noms scientifiques.
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 Noms extends Eflore {
15
class Noms extends Eflore {
16
 
16
 
17
	public function getSynonymes($nn) {
17
	public function getSynonymes($nn) {
18
		$tpl = Config::get('nomsSynonymesTpl');
18
		$tpl = Config::get('nomsSynonymesTpl');
19
		$params = array('id' => $nn);
19
		$params = array('id' => $nn);
20
		$url = $this->formaterUrl($tpl, $params);
20
		$url = $this->formaterUrl($tpl, $params);
21
		return $this->chargerDonnees($url);
21
		return $this->chargerDonnees($url);
22
	}
22
	}
23
	
23
	
24
	public function getFlores($nn) {
24
	public function getFlores($nn) {
25
		$tpl = Config::get('nomsFloresTpl');
25
		$tpl = Config::get('nomsFloresTpl');
26
		$params = array('id' => $nn);
26
		$params = array('id' => $nn);
27
		$url = $this->formaterUrl($tpl, $params);
27
		$url = $this->formaterUrl($tpl, $params);
28
		return $this->chargerDonnees($url);
28
		return $this->chargerDonnees($url);
29
	}
29
	}
30
 
30
 
31
	public function getNom($nn) {
31
	public function getNom($nn) {
32
		$url = $this->getUrlNom($nn);
-
 
33
		return $this->chargerDonnees($url);
32
		return $this->chargerDonnees($this->getUrlNom($nn));
34
	}
33
	}
35
	
34
	
36
 
35
 
37
	public function getRechercheEtendue($nom, $type_resultat = '') {
36
	public function getRechercheEtendue($nom, $type_resultat = '') {
38
		$methode = 'getUrlRecherche'.$type_resultat;
37
		$methode = 'getUrlRecherche'.$type_resultat;
39
 
38
 
40
		if (method_exists($this, $methode)) {
39
		if (method_exists($this, $methode)) {
41
			$url = $this->$methode($nom, 'etendue');
40
			$url = $this->$methode($nom, 'etendue');
42
		} else {
41
		} else {
43
			$url = $this->getUrlRecherche($nom, 'etendue');
42
			$url = $this->getUrlRecherche($nom, 'etendue');
44
			Debug::printr("Le type de recherche demandé '$type_resultat' n'est pas disponible.");
43
			Debug::printr("Le type de recherche demandé '$type_resultat' n'est pas disponible.");
45
		}
44
		}
46
		return $this->chargerDonneesRecursivement($url);
45
		return $this->chargerDonneesRecursivement($url);
47
	}
46
	}
48
 
47
 
49
	public function getRechercheFloue($nom) {
48
	public function getRechercheFloue($nom) {
50
		$url = $this->getUrlRecherche($nom, 'floue');
49
		$url = $this->getUrlRecherche($nom, 'floue');
51
		return $this->chargerDonnees($url);
50
		return $this->chargerDonnees($url);
52
	}
51
	}
53
	
52
	
54
	public function getRechercheAvancee($parametres) {
53
	public function getRechercheAvancee($parametres) {
55
		$url = $this->getUrlRechercheAvancee($parametres);
54
		$url = $this->getUrlRechercheAvancee($parametres);
56
		return $this->chargerDonnees($url);
55
		return $this->chargerDonnees($url);
57
	}
56
	}
58
	
57
	
59
	private function getUrlRechercheAvancee($parametres){
58
	private function getUrlRechercheAvancee($parametres){
60
		$tpl = Config::get('nomsRechercheAvanceeTpl');
59
		$tpl = Config::get('nomsRechercheAvanceeTpl');
61
		$masques =  $this->formaterMasquesRechercheAvancee($parametres);
60
		$masques =  $this->formaterMasquesRechercheAvancee($parametres);
62
		$url = '';
61
		$url = '';
63
		if($masques != ''){
62
		if($masques != ''){
64
			$url = $this->formaterUrl($tpl,array('projet'=> $this->getProjet(), 'type' => 'etendue'));
63
			$url = $this->formaterUrl($tpl,array('projet'=> $this->getProjet(), 'type' => 'etendue'));
65
			$url .= '&'.implode('&',$masques);
64
			$url .= '&'.implode('&',$masques);
66
		}
65
		}
67
		return $url;
66
		return $url;
68
	}
67
	}
69
	
68
	
70
	private function formaterMasquesRechercheAvancee($parametres) {
69
	private function formaterMasquesRechercheAvancee($parametres) {
71
		$masques = '';
70
		$masques = '';
72
		foreach ($parametres as $masque => $valeur){
71
		foreach ($parametres as $masque => $valeur){
73
			if ($valeur != '' && in_array($valeur, I18n::get('Recherche-form-avancee')) == false){
72
			if ($valeur != '' && in_array($valeur, I18n::get('Recherche-form-avancee')) == false){
74
				if ($masque == 'type') {
73
				if ($masque == 'type') {
75
					$masques[] = 'masque='.urlencode('%'.$valeur);
74
					$masques[] = 'masque='.urlencode('%'.$valeur);
76
				} elseif ($masque == 'au') {
75
				} elseif ($masque == 'au') {
77
					$masques[] = 'masque.au='.urlencode($valeur.',('.$valeur.'%),% '.$valeur);
76
					$masques[] = 'masque.au='.urlencode($valeur.',('.$valeur.'%),% '.$valeur);
78
				} elseif ($masque == 'bib'){
77
				} elseif ($masque == 'bib'){
79
					$masques[] = 'masque.bib='.urlencode($valeur.',%; '.$valeur);
78
					$masques[] = 'masque.bib='.urlencode($valeur.',%; '.$valeur);
80
				} else {
79
				} else {
81
					$valeur = ($valeur == '0') ? '' : $valeur;
80
					$valeur = ($valeur == '0') ? '' : $valeur;
82
					$masques[] = 'masque.'.$masque.'='.urlencode($valeur);
81
					$masques[] = 'masque.'.$masque.'='.urlencode($valeur);
83
				}
82
				}
84
			}
83
			}
85
		}
84
		}
86
		return $masques;
85
		return $masques;
87
	}
86
	}
88
	
87
	
89
	private function getUrlNom($nn) {
88
	private function getUrlNom($nn) {
90
		$tpl = Config::get('nomTpl');
89
		$tpl = Config::get('nomTpl');
91
		$params = array('id' => $nn);
90
		$params = array('id' => $nn);
92
		$url = $this->formaterUrl($tpl, $params);
91
		$url = $this->formaterUrl($tpl, $params);
93
		return $url;
92
		return $url;
94
	}
93
	}
95
 
94
 
96
	// retourne les champs par defaut
95
	// retourne les champs par defaut
97
	private function getUrlRecherche($nom, $typeRech) {
96
	private function getUrlRecherche($nom, $typeRech) {
98
		$tpl = Config::get('nomsRechercheTpl');
97
		$tpl = Config::get('nomsRechercheTpl');
99
		$params = array('valeur' => $nom, 'type' => $typeRech);
98
		$params = array('valeur' => $nom, 'type' => $typeRech);
100
		$url = $this->formaterUrl($tpl, $params);
99
		$url = $this->formaterUrl($tpl, $params);
101
		return $url;
100
		return $url;
102
		
101
		
103
	}
102
	}
104
 
103
 
105
	// retourne les champs par defaut
104
	// retourne les champs par defaut
106
	private function getUrlRechercheAlphab($nom, $typeRech) {
105
	private function getUrlRechercheAlphab($nom, $typeRech) {
107
		$tpl = Config::get('nomsRechercheAlphabTpl');
106
		$tpl = Config::get('nomsRechercheAlphabTpl');
108
		$params = array('valeur' => $nom, 'type' => $typeRech);
107
		$params = array('valeur' => $nom, 'type' => $typeRech);
109
		$url = $this->formaterUrl($tpl, $params);
108
		$url = $this->formaterUrl($tpl, $params);
110
		return $url;
109
		return $url;
111
	}
110
	}
112
 
111
 
113
	// retourne les champs par defaut
112
	// retourne les champs par defaut
114
	private function getUrlRechercheRetenu($nom, $typeRech) {
113
	private function getUrlRechercheRetenu($nom, $typeRech) {
115
		$tpl = Config::get('nomsRechercheRetenuTpl');
114
		$tpl = Config::get('nomsRechercheRetenuTpl');
116
		$params = array('valeur' => $nom, 'type' => $typeRech);
115
		$params = array('valeur' => $nom, 'type' => $typeRech);
117
		$url = $this->formaterUrl($tpl, $params);
116
		$url = $this->formaterUrl($tpl, $params);
118
		return $url;
117
		return $url;
119
	}
118
	}
120
 
119
 
121
	private function getUrlRechercheSynonyme($nom, $typeRech) {
120
	private function getUrlRechercheSynonyme($nom, $typeRech) {
122
		$tpl = Config::get('nomsRechercheSynonymeTpl');
121
		$tpl = Config::get('nomsRechercheSynonymeTpl');
123
		$params = array('valeur' => $nom, 'type' => $typeRech);
122
		$params = array('valeur' => $nom, 'type' => $typeRech);
124
		$url = $this->formaterUrl($tpl, $params);
123
		$url = $this->formaterUrl($tpl, $params);
125
		return $url;
124
		return $url;
126
	}
125
	}
127
 
126
 
128
	// retourne les champs par defaut + nom retenu
127
	// retourne les champs par defaut + nom retenu
129
	private function getUrlRechercheDetermination($nom, $typeRech) {
128
	private function getUrlRechercheDetermination($nom, $typeRech) {
130
		$tpl = Config::get('nomsRechercheDeterminationTpl');
129
		$tpl = Config::get('nomsRechercheDeterminationTpl');
131
		$params = array('valeur' => $nom, 'type' => $typeRech);
130
		$params = array('valeur' => $nom, 'type' => $typeRech);
132
		$url = $this->formaterUrl($tpl, $params);
131
		$url = $this->formaterUrl($tpl, $params);
133
		return $url;
132
		return $url;
134
	}
133
	}
135
 
134
 
136
	// retourne les champs par defaut + nom decompose (au, an et bib)
135
	// retourne les champs par defaut + nom decompose (au, an et bib)
137
	private function getUrlRechercheDecompo($nom, $typeRech) {
136
	private function getUrlRechercheDecompo($nom, $typeRech) {
138
		$tpl = Config::get('nomsRechercheDecompoTpl');
137
		$tpl = Config::get('nomsRechercheDecompoTpl');
139
		$params = array('valeur' => $nom, 'type' => $typeRech);
138
		$params = array('valeur' => $nom, 'type' => $typeRech);
140
		$url = $this->formaterUrl($tpl, $params);
139
		$url = $this->formaterUrl($tpl, $params);
141
		return $url;
140
		return $url;
142
	}
141
	}
143
 
142
 
144
}
143
}
145
?>
144
?>