Subversion Repositories Applications.referentiel

Rev

Rev 110 | Rev 117 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 110 Rev 113
Line 15... Line 15...
15
	
15
	
16
	private $donnees = array();
16
	private $donnees = array();
17
	protected $taxonDao = null;
17
	protected $taxonDao = null;
18
	private $tableau_manuel = null;
18
	private $tableau_manuel = null;
-
 
19
	private $num_taxon = array(0=>0,1=>0,2=>0);
-
 
20
	private $type_synonymie = array(
-
 
21
		'n' => 'Synonymie nomenclaturale',
-
 
22
		't' => 'Synonymie taxonomique',
-
 
23
		'i' => 'Synonymie indéterminée (pas de basionyme)',
-
 
24
		'd' => 'Synonymie douteuse',
-
 
25
		'o' => 'Synonymie orthographique',
-
 
26
		'ma' => 'Synonymie mal appliquée',
-
 
27
		'pp' => 'Synonymie pro parte',
-
 
28
		'h' => 'Homonymie (sensu)',
Line 19... Line 29...
19
	private $num_taxon = array(0=>0,1=>0,2=>0);
29
		'b' => 'Basionyme commun');
20
	
30
	
21
	//+----------------------------------------------------------------------------------------------------------------+
31
	//+----------------------------------------------------------------------------------------------------------------+
22
	// Méthodes
32
	// Méthodes
Line 82... Line 92...
82
	}
92
	}
Line 83... Line 93...
83
	
93
	
84
	// recherche les synonymes (à compléter)
94
	// recherche les synonymes (à compléter)
85
	private function chargerSynonymie() {
95
	private function chargerSynonymie() {
-
 
96
		$rechercheDao = new RechercheDao();
86
		$rechercheDao = new RechercheDao();
97
		$this->donnees['type_synonymie'] = $this->type_synonymie;
87
		// recherche des synonymes nomenclaturaux et taxonomiques
98
		// recherche des synonymes nomenclaturaux et taxonomiques
88
		$parametres = $this->parserChaineDeRecherche('nn:'.$this->donnees['num_nom'].' tax:1');
99
		$parametres = $this->parserChaineDeRecherche('nn:'.$this->donnees['num_nom'].' tax:1');
89
		$parametres['ref']= $this->referentiel;
100
		$parametres['ref']= $this->referentiel;
90
		$synonymes = $rechercheDao->chercher('ParTaxon', $parametres); 
101
		$synonymes = $rechercheDao->chercher('ParTaxon', $parametres); 
Line 95... Line 106...
95
				$this->trierSynonymesOrthographiques($synonyme);
106
				$this->trierSynonymesOrthographiques($synonyme);
96
			}
107
			}
97
		}
108
		}
98
		// synonyme douteux
109
		// synonyme douteux
99
		if ($this->donnees['info']['synonyme_douteux'] == 1) {
110
		if ($this->donnees['info']['synonyme_douteux'] == 1) {
100
			$this->donnees['fiche_synonymie']['douteux']['num_nom'] = $this->donnees['info'];
111
			$this->donnees['fiche_synonymie']['d']['num_nom'] = $this->donnees['info'];
101
		}
112
		}
102
		// synonyme proparte
113
		// synonyme proparte
103
		if ($this->donnees['info']['synonyme_proparte'] != ''){
114
		if ($this->donnees['info']['synonyme_proparte'] != ''){
104
			$propartes = preg_split('/;/', $this->donnees['info']['synonyme_proparte']);
115
			$propartes = preg_split('/;/', $this->donnees['info']['synonyme_proparte']);
105
			foreach ($propartes as $protarte) {
116
			foreach ($propartes as $protarte) {
106
				$this->donnees['fiche_synonymie']['pro parte'] =  
117
				$this->donnees['fiche_synonymie']['pp'] =  
107
				$this->taxonDao->getTaxonAffichage($this->referentiel, $proparte);
118
				$this->taxonDao->getTaxonAffichage($this->referentiel, $proparte);
108
			}
119
			}
109
		}
120
		}
110
		// homonymie
121
		// homonymie
111
		$nom = $this->encodeChaine($this->donnees['info']['nom_complet']);
122
		$nom = $this->encodeChaine($this->donnees['info']['nom_complet']);
Line 113... Line 124...
113
		if (count($homonymes) > 1) {
124
		if (count($homonymes) > 1) {
114
			foreach ($homonymes as $id => &$homonyme) {
125
			foreach ($homonymes as $id => &$homonyme) {
115
				$homonyme['statut'] = $homonyme['homonyme'];
126
				$homonyme['statut'] = $homonyme['homonyme'];
116
			}
127
			}
Line 117... Line 128...
117
			
128
			
118
			$this->donnees['fiche_synonymie']['Homonymie (sensu)'] = $homonymes;
129
			$this->donnees['fiche_synonymie']['h'] = $homonymes;
119
		}
130
		}
120
		// Même basionyme
131
		// Même basionyme
121
		if ($this->donnees['info']['basionyme'] != '') {
132
		if ($this->donnees['info']['basionyme'] != '') {
122
			$basionyme_commun = $this->taxonDao->getNomsBasionymeCommun($this->referentiel, $this->donnees['info']['basionyme']);
133
			$basionyme_commun = $this->taxonDao->getNomsBasionymeCommun($this->referentiel, $this->donnees['info']['basionyme']);
123
			foreach ($basionyme_commun as $nom) {
134
			foreach ($basionyme_commun as $nom) {
124
				if ($nom['num_nom_retenu'] != $this->donnees['num_nom_retenu']) {
135
				if ($nom['num_nom_retenu'] != $this->donnees['num_nom_retenu']) {
125
					$this->donnees['fiche_synonymie']['Basionyme commun'][] = $nom;
136
					$this->donnees['fiche_synonymie']['b'][] = $nom;
126
				}
137
				}
127
			}
138
			}
128
		}
139
		}
Line 129... Line 140...
129
	}
140
	}
130
	
141
	
131
	private function trierSynonymesNomenclaturauxTaxonomiques($synonyme) {
142
	private function trierSynonymesNomenclaturauxTaxonomiques($synonyme) {
132
		if ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null) {
143
		if ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null) {
133
			if (($this->donnees['num_nom'] != $synonyme['num_nom']) && ($synonyme['basionyme'] == 
144
			if (($this->donnees['num_nom'] != $synonyme['num_nom']) && ($synonyme['basionyme'] == 
134
					$this->donnees['num_nom'] || $this->donnees['info']['basionyme'] == $synonyme['num_nom'] || 
145
					$this->donnees['num_nom'] || $this->donnees['info']['basionyme'] == $synonyme['num_nom'] || 
135
					$this->donnees['info']['basionyme'] == $synonyme['basionyme'])) {
146
					$this->donnees['info']['basionyme'] == $synonyme['basionyme'])) {
136
				$this->donnees['fiche_synonymie']['nomenclaturale'][] = $synonyme;	
147
				$this->donnees['fiche_synonymie']['n'][] = $synonyme;	
137
			} elseif ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null && 
148
			} elseif ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null && 
138
					$this->donnees['info']['basionyme'] != null) {
149
					$this->donnees['info']['basionyme'] != null) {
139
				$this->donnees['fiche_synonymie']['taxonomique'][] = $synonyme;
150
				$this->donnees['fiche_synonymie']['t'][] = $synonyme;
140
			}	
151
			}	
141
		} elseif ($this->donnees['num_nom'] != $synonyme['num_nom']) {
152
		} elseif ($this->donnees['num_nom'] != $synonyme['num_nom']) {
142
			$this->donnees['fiche_synonymie']['indéterminée (pas de basionyme)'][] = $synonyme;
153
			$this->donnees['fiche_synonymie']['i'][] = $synonyme;
Line 143... Line 154...
143
		}
154
		}
144
	}
155
	}
145
	
156
	
146
	private function trierSynonymesMalAppliques($synonyme) {
157
	private function trierSynonymesMalAppliques($synonyme) {
147
		if ($synonyme['synonyme_mal_applique'] == 1) {
158
		if ($synonyme['synonyme_mal_applique'] == 1) {
148
			if ($synonyme['num_nom'] == $synonyme['num_nom_retenu']) {
159
			if ($synonyme['num_nom'] == $synonyme['num_nom_retenu']) {
149
				$synonyme['statut'] = 'posséde des synonymes mal appliqués';
160
				$synonyme['statut'] = 'posséde des synonymes mal appliqués';
150
			} else {
161
			} else {
151
				$synonyme['statut'] = 'est synonyme mal appliqué du num_nom '.$synonyme['num_nom_retenu'];
162
				$synonyme['statut'] = 'est synonyme mal appliqué du num_nom '.$synonyme['num_nom_retenu'];
152
			}
163
			}
Line 153... Line 164...
153
			$this->donnees['fiche_synonymie']['mal appliquée'][] = $synonyme;
164
			$this->donnees['fiche_synonymie']['ma'][] = $synonyme;
154
		}
165
		}
155
	}
166
	}
156
	
167
	
157
	private function trierSynonymesOrthographiques($synonyme) {
168
	private function trierSynonymesOrthographiques($synonyme) {
158
		if (isset($synonyme['synonyme_orthographique']) && $synonyme['synonyme_orthographique'] != '') {
169
		if (isset($synonyme['synonyme_orthographique']) && $synonyme['synonyme_orthographique'] != '') {
159
			if ($synonyme['synonyme_orthographique'] == $synonyme['num_nom']) {
170
			if ($synonyme['synonyme_orthographique'] == $synonyme['num_nom']) {
160
				$synonyme['statut'] = 'posséde des synonymes orthographiques';
171
				$synonyme['statut'] = 'posséde des synonymes orthographiques';
161
			} else {
172
			} else {
162
				$synonyme['statut'] = 'est synonyme orthographique du num_nom '.$synonyme['synonyme_orthographique'];
173
				$synonyme['statut'] = 'est synonyme orthographique du num_nom '.$synonyme['synonyme_orthographique'];
Line 163... Line 174...
163
			}	
174
			}	
164
			$this->donnees['fiche_synonymie']['orthographique'][] = $synonyme;
175
			$this->donnees['fiche_synonymie']['o'][] = $synonyme;
Line 204... Line 215...
204
			}
215
			}
205
		}
216
		}
206
		foreach ($this->donnees['chorologie']['Présence'] as $lieu => $valeur) {
217
		foreach ($this->donnees['chorologie']['Présence'] as $lieu => $valeur) {
207
			if (!isset($this->donnees['chorologie']['Statut d\'origine'][$lieu])) {
218
			if (!isset($this->donnees['chorologie']['Statut d\'origine'][$lieu])) {
208
				$this->donnees['chorologie']['Statut d\'origine'][$lieu]['code'] = '';
219
				$this->donnees['chorologie']['Statut d\'origine'][$lieu]['code'] = '';
209
				$this->donnees['chorologie']['Statut d\'origine'][$lieu]['valeur'] = 
-
 
210
					$this->tableau_manuel['statuts_origine'][''];
-
 
211
			}
220
			}
212
			if (!isset($this->donnees['chorologie']['Statut d\'introduction'][$lieu])) {
221
			if (!isset($this->donnees['chorologie']['Statut d\'introduction'][$lieu])) {
213
				$this->donnees['chorologie']['Statut d\'introduction'][$lieu]['code'] = '';
222
				$this->donnees['chorologie']['Statut d\'introduction'][$lieu]['code'] = '';
214
				$this->donnees['chorologie']['Statut d\'introduction'][$lieu]['valeur'] = 
-
 
215
					$this->tableau_manuel['statuts_introduction'][''];
-
 
216
			}
223
			}
217
			if (!isset($this->donnees['chorologie']['Statut de culture'][$lieu])) {
224
			if (!isset($this->donnees['chorologie']['Statut de culture'][$lieu])) {
218
				$this->donnees['chorologie']['Statut de culture'][$lieu]['code'] = '';
225
				$this->donnees['chorologie']['Statut de culture'][$lieu]['code'] = '';
219
				$this->donnees['chorologie']['Statut de culture'][$lieu]['valeur'] = 
-
 
220
					$this->tableau_manuel['statuts_culture'][''];
-
 
221
			}
226
			}
222
		}
227
		}
223
	}
228
	}
Line 224... Line 229...
224
	
229
	
-
 
230
	private function chargerClassification() {
-
 
231
		$this->chargerTableauManuel('signification_rang');
225
	private function chargerClassification() {
232
		$this->donnees['valeur_rang'] = $this->tableau_manuel['signification_rang'];
226
		if ($this->donnees['info']['num_tax_sup'] != '' || isset($this->donnees['retenu']['num_tax_sup'])) {
233
		if ($this->donnees['info']['num_tax_sup'] != '' || isset($this->donnees['retenu']['num_tax_sup'])) {
227
			if ($this->donnees['num_nom'] == $this->donnees['num_nom_retenu']) {
234
			if ($this->donnees['num_nom'] == $this->donnees['num_nom_retenu']) {
228
				$this->donnees['classification']['supérieurs'] = array_reverse($this->taxonDao->getClassification
235
				$this->donnees['classification']['supérieurs'] = array_reverse($this->taxonDao->getClassification
229
					('Superieur', $this->referentiel, $this->donnees['info']['num_tax_sup']));
236
					('Superieur', $this->referentiel, $this->donnees['info']['num_tax_sup']));