Subversion Repositories Applications.referentiel

Rev

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

Rev 103 Rev 104
Line 88... Line 88...
88
		$parametres = $this->parserChaineDeRecherche('nn:'.$this->donnees['num_nom'].' tax:1');
88
		$parametres = $this->parserChaineDeRecherche('nn:'.$this->donnees['num_nom'].' tax:1');
89
		$parametres['ref']= $this->referentiel;
89
		$parametres['ref']= $this->referentiel;
90
		$synonymes = $rechercheDao->chercher('ParTaxon', $parametres); 
90
		$synonymes = $rechercheDao->chercher('ParTaxon', $parametres); 
91
		if ($synonymes != '') {
91
		if ($synonymes != '') {
92
			foreach ($synonymes as $synonyme) {
92
			foreach ($synonymes as $synonyme) {
93
				if ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null) {
-
 
94
					if (($this->donnees['num_nom'] != $synonyme['num_nom']) && ($synonyme['basionyme'] == 
-
 
95
							$this->donnees['num_nom'] || $this->donnees['info']['basionyme'] == $synonyme['num_nom'] || 
-
 
96
							$this->donnees['info']['basionyme'] == $synonyme['basionyme'])) {
-
 
97
						$this->donnees['fiche_synonymie']['nomenclaturale'][] = $synonyme;	
93
				$this->trierSynonymesNomenclaturauxTaxonomiques($synonyme);
98
					} elseif ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null && 
-
 
99
						$this->donnees['info']['basionyme'] != null) {
94
				$this->trierSynonymesMalAppliques($synonyme);
100
						$this->donnees['fiche_synonymie']['taxonomique'][] = $synonyme;
95
				$this->trierSynonymesOrthographiques($synonyme);
101
					}	
96
			}
102
				} elseif ($this->donnees['num_nom'] != $synonyme['num_nom']) {
-
 
103
					$this->donnees['fiche_synonymie']['indéterminée (pas de basionyme)'][] = $synonyme;
-
 
104
				}
97
		}
105
				if ($synonyme['synonyme_mal_applique'] == 1) {
98
		// synonyme douteux
106
					if ($synonyme['num_nom'] == $synonyme['num_nom_retenu']) {
99
		if ($this->donnees['info']['synonyme_douteux'] == 1) {
107
						$synonyme['statut'] = 'posséde des synonymes mal appliqués';
-
 
108
					} else {
-
 
109
						$synonyme['statut'] = 'est synonyme mal appliqué du num_nom '.$synonyme['num_nom_retenu'];
-
 
110
					}
-
 
111
					$this->donnees['fiche_synonymie']['mal appliquée'][] = $synonyme;
100
			$this->donnees['fiche_synonymie']['douteux']['num_nom'] = $this->donnees['info'];
112
				}
101
		}
113
				if (isset($synonyme['synonyme_orthographique']) && $synonyme['synonyme_orthographique'] != '') {
102
		// synonyme proparte
114
					if ($synonyme['synonyme_orthographique'] == $synonyme['num_nom']) {
103
		if ($this->donnees['info']['synonyme_proparte'] != ''){
115
						$synonyme['statut'] = 'posséde des synonymes orthographiques';
104
			$propartes = preg_split('/;/', $this->donnees['info']['synonyme_proparte']);
116
					} else {
105
			foreach ($propartes as $protarte) {
117
						$synonyme['statut'] = 'est synonyme orthographique du num_nom '.$synonyme['synonyme_orthographique'];
106
				$this->donnees['fiche_synonymie']['pro parte'] =  
118
					}	
-
 
119
					$this->donnees['fiche_synonymie']['orthographique'][] = $synonyme;
107
				$this->taxonDao->getTaxonAffichage($this->referentiel, $proparte);
120
				}
-
 
121
			}
108
			}
122
			
109
		}
123
			// synonyme douteux
110
		// homonymie
124
			if ($this->donnees['info']['synonyme_douteux'] == 1) {
111
		$nom = $this->encodeChaine($this->donnees['info']['nom_complet']);
-
 
112
		$homonyme = $this->taxonDao->getHomonyme($this->referentiel, $nom);
-
 
113
		if (count($homonyme) > 1) {
125
				$this->donnees['fiche_synonymie']['douteux']['num_nom'] = $this->donnees['info'];
114
			$this->donnees['fiche_synonymie']['Homonymie (sensu)'] = $homonyme;
126
			}
115
		}
127
			// synonyme proparte
116
		// Même basionyme
128
			if ($this->donnees['info']['synonyme_proparte'] != ''){
117
		if ($this->donnees['info']['basionyme'] != '') {
129
				$propartes = preg_split('/;/', $this->donnees['info']['synonyme_proparte']);
118
			$basionyme_commun = $this->taxonDao->getNomsBasionymeCommun($this->referentiel, $this->donnees['info']['basionyme']);
130
				foreach ($propartes as $protarte) {
119
			foreach ($basionyme_commun as $nom) {
131
					$this->donnees['fiche_synonymie']['pro parte'] =  
120
				if ($nom['num_nom_retenu'] != $this->donnees['num_nom_retenu']) {
132
						$this->taxonDao->getTaxonAffichage($this->referentiel, $proparte);
121
					$this->donnees['fiche_synonymie']['Basionyme commun'][] = $nom;
133
				}
122
				}
134
			}
123
			}
-
 
124
		}
135
			
125
	}
136
			// homonymie
126
	private function trierSynonymesNomenclaturauxTaxonomiques($synonyme) {
-
 
127
		if ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null) {
-
 
128
			if (($this->donnees['num_nom'] != $synonyme['num_nom']) && ($synonyme['basionyme'] == 
137
			$nom = $this->encodeChaine($this->donnees['info']['nom_complet']);
129
					$this->donnees['num_nom'] || $this->donnees['info']['basionyme'] == $synonyme['num_nom'] || 
-
 
130
					$this->donnees['info']['basionyme'] == $synonyme['basionyme'])) {
138
			$homonyme = $this->taxonDao->getHomonyme($this->referentiel, $nom);
131
				$this->donnees['fiche_synonymie']['nomenclaturale'][] = $synonyme;	
-
 
132
			} elseif ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null && 
139
			if (count($homonyme) > 1) {
133
					$this->donnees['info']['basionyme'] != null) {
140
				$this->donnees['fiche_synonymie']['Homonymie (sensu)'] = $homonyme;
134
				$this->donnees['fiche_synonymie']['taxonomique'][] = $synonyme;
-
 
135
			}	
-
 
136
		} elseif ($this->donnees['num_nom'] != $synonyme['num_nom']) {
-
 
137
			$this->donnees['fiche_synonymie']['indéterminée (pas de basionyme)'][] = $synonyme;
-
 
138
		}
-
 
139
	}
-
 
140
	private function trierSynonymesMalAppliques($synonyme) {
-
 
141
		if ($synonyme['synonyme_mal_applique'] == 1) {
-
 
142
			if ($synonyme['num_nom'] == $synonyme['num_nom_retenu']) {
-
 
143
				$synonyme['statut'] = 'posséde des synonymes mal appliqués';
-
 
144
			} else {
-
 
145
				$synonyme['statut'] = 'est synonyme mal appliqué du num_nom '.$synonyme['num_nom_retenu'];
141
			}
146
			}
-
 
147
			$this->donnees['fiche_synonymie']['mal appliquée'][] = $synonyme;
142
		}	
148
		}
-
 
149
	}
-
 
150
	private function trierSynonymesOrthographiques($synonyme) {
-
 
151
		if (isset($synonyme['synonyme_orthographique']) && $synonyme['synonyme_orthographique'] != '') {
-
 
152
			if ($synonyme['synonyme_orthographique'] == $synonyme['num_nom']) {
-
 
153
				$synonyme['statut'] = 'posséde des synonymes orthographiques';
-
 
154
			} else {
-
 
155
				$synonyme['statut'] = 'est synonyme orthographique du num_nom '.$synonyme['synonyme_orthographique'];
-
 
156
			}	
-
 
157
			$this->donnees['fiche_synonymie']['orthographique'][] = $synonyme;
-
 
158
		}
143
	}
159
	}
Line 144... Line 160...
144
	
160
	
145
	private function chargerChorologie() {
161
	private function chargerChorologie() {
146
		$this->chargerTableauManuel('presence');
162
		$this->chargerTableauManuel('presence');
Line 217... Line 233...
217
				$this->donnees['niveau'] = $class_inf['niveau'];
233
				$this->donnees['niveau'] = $class_inf['niveau'];
218
			}	
234
			}	
219
		}	
235
		}	
220
	}
236
	}
Line 221... Line 237...
221
	
237
	
222
	public function chargerComplements() {
238
	private function chargerComplements() {
223
		$champs_manuel_technique = explode(',', $this->manuel['champs']);
239
		$champs_manuel_technique = explode(',', $this->manuel['champs']);
224
		$champs_base_donnees = key($this->donnees['info']);
240
		$champs_base_donnees = key($this->donnees['info']);
225
		$champs_supp_base = array_diff_key($this->donnees['info'], array_flip($champs_manuel_technique));
241
		$champs_supp_base = array_diff_key($this->donnees['info'], array_flip($champs_manuel_technique));
226
		foreach ($champs_supp_base as $champ=>$valeur) {
242
		foreach ($champs_supp_base as $champ=>$valeur) {