Subversion Repositories eFlore/Applications.eflore-consultation

Rev

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

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