Subversion Repositories Applications.referentiel

Rev

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

Rev 113 Rev 117
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 29... Line 19...
29
		'b' => 'Basionyme commun');
19
	private $num_taxon = array(0=>0,1=>0,2=>0);
30
	
20
	
31
	//+----------------------------------------------------------------------------------------------------------------+
21
	//+----------------------------------------------------------------------------------------------------------------+
32
	// Méthodes
22
	// Méthodes
Line 92... Line 82...
92
	}
82
	}
Line 93... Line 83...
93
	
83
	
94
	// recherche les synonymes (à compléter)
84
	// recherche les synonymes (à compléter)
95
	private function chargerSynonymie() {
85
	private function chargerSynonymie() {
96
		$rechercheDao = new RechercheDao();
-
 
97
		$this->donnees['type_synonymie'] = $this->type_synonymie;
86
		$rechercheDao = new RechercheDao();
98
		// recherche des synonymes nomenclaturaux et taxonomiques
87
		// recherche des synonymes nomenclaturaux et taxonomiques
99
		$parametres = $this->parserChaineDeRecherche('nn:'.$this->donnees['num_nom'].' tax:1');
88
		$parametres = $this->parserChaineDeRecherche('nn:'.$this->donnees['num_nom'].' tax:1');
100
		$parametres['ref']= $this->referentiel;
89
		$parametres['ref']= $this->referentiel;
101
		$synonymes = $rechercheDao->chercher('ParTaxon', $parametres); 
90
		$synonymes = $rechercheDao->chercher('ParTaxon', $parametres); 
Line 104... Line 93...
104
				$this->trierSynonymesNomenclaturauxTaxonomiques($synonyme);
93
				$this->trierSynonymesNomenclaturauxTaxonomiques($synonyme);
105
				$this->trierSynonymesMalAppliques($synonyme);
94
				$this->trierSynonymesMalAppliques($synonyme);
106
				$this->trierSynonymesOrthographiques($synonyme);
95
				$this->trierSynonymesOrthographiques($synonyme);
107
			}
96
			}
108
		}
97
		}
109
		// synonyme douteux
-
 
110
		if ($this->donnees['info']['synonyme_douteux'] == 1) {
-
 
111
			$this->donnees['fiche_synonymie']['d']['num_nom'] = $this->donnees['info'];
-
 
112
		}
-
 
113
		// synonyme proparte
98
		// synonyme proparte
114
		if ($this->donnees['info']['synonyme_proparte'] != ''){
99
		if ($this->donnees['info']['synonyme_proparte'] != ''){
115
			$propartes = preg_split('/;/', $this->donnees['info']['synonyme_proparte']);
100
			$propartes = preg_split('/;/', $this->donnees['info']['synonyme_proparte']);
116
			foreach ($propartes as $protarte) {
101
			foreach ($propartes as $protarte) {
117
				$this->donnees['fiche_synonymie']['pp'] =  
-
 
118
				$this->taxonDao->getTaxonAffichage($this->referentiel, $proparte);
102
				$this->donnees['pp'] = $this->taxonDao->getTaxonAffichage($this->referentiel, $proparte);
119
			}
103
			}
120
		}
104
		}
121
		// homonymie
105
		// homonymie
122
		$nom = $this->encodeChaine($this->donnees['info']['nom_complet']);
106
		$nom = $this->encodeChaine($this->donnees['info']['nom_complet']);
123
		$homonymes = $this->taxonDao->getHomonyme($this->referentiel, $nom);
107
		$homonymes = $this->taxonDao->getHomonyme($this->referentiel, $nom);
124
		if (count($homonymes) > 1) {
108
		if (count($homonymes) > 1) {
125
			foreach ($homonymes as $id => &$homonyme) {
109
			foreach ($homonymes as $id => &$homonyme) {
126
				$homonyme['statut'] = $homonyme['homonyme'];
110
				$homonyme['statut'] = $homonyme['homonyme'];
127
			}
111
			}
Line 128... Line 112...
128
			
112
			
129
			$this->donnees['fiche_synonymie']['h'] = $homonymes;
113
			$this->donnees['h'] = $homonymes;
130
		}
114
		}
131
		// Même basionyme
115
		// Même basionyme
132
		if ($this->donnees['info']['basionyme'] != '') {
116
		if ($this->donnees['info']['basionyme'] != '') {
133
			$basionyme_commun = $this->taxonDao->getNomsBasionymeCommun($this->referentiel, $this->donnees['info']['basionyme']);
117
			$basionyme_commun = $this->taxonDao->getNomsBasionymeCommun($this->referentiel, $this->donnees['info']['basionyme']);
134
			foreach ($basionyme_commun as $nom) {
118
			foreach ($basionyme_commun as $nom) {
135
				if ($nom['num_nom_retenu'] != $this->donnees['num_nom_retenu']) {
119
				if ($nom['num_nom_retenu'] != $this->donnees['num_nom_retenu']) {
136
					$this->donnees['fiche_synonymie']['b'][] = $nom;
120
					$this->donnees['b'][] = $nom;
137
				}
121
				}
138
			}
122
			}
139
		}
123
		}
Line 140... Line 124...
140
	}
124
	}
141
	
125
	
142
	private function trierSynonymesNomenclaturauxTaxonomiques($synonyme) {
126
	private function trierSynonymesNomenclaturauxTaxonomiques($synonyme) {
143
		if ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null) {
127
		if ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null) {
144
			if (($this->donnees['num_nom'] != $synonyme['num_nom']) && ($synonyme['basionyme'] == 
128
			if (($this->donnees['num_nom'] != $synonyme['num_nom']) && ($synonyme['basionyme'] == 
145
					$this->donnees['num_nom'] || $this->donnees['info']['basionyme'] == $synonyme['num_nom'] || 
129
					$this->donnees['num_nom'] || $this->donnees['info']['basionyme'] == $synonyme['num_nom'] || 
146
					$this->donnees['info']['basionyme'] == $synonyme['basionyme'])) {
130
					$this->donnees['info']['basionyme'] == $synonyme['basionyme'])) {
147
				$this->donnees['fiche_synonymie']['n'][] = $synonyme;	
131
				$this->donnees['n'][] = $synonyme;	
148
			} elseif ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null && 
132
			} elseif ($this->donnees['num_nom'] != $synonyme['num_nom'] && $synonyme['basionyme'] != null && 
149
					$this->donnees['info']['basionyme'] != null) {
133
					$this->donnees['info']['basionyme'] != null) {
150
				$this->donnees['fiche_synonymie']['t'][] = $synonyme;
134
				$this->donnees['t'][] = $synonyme;
151
			}	
135
			}	
152
		} elseif ($this->donnees['num_nom'] != $synonyme['num_nom']) {
136
		} elseif ($this->donnees['num_nom'] != $synonyme['num_nom']) {
153
			$this->donnees['fiche_synonymie']['i'][] = $synonyme;
137
			$this->donnees['i'][] = $synonyme;
Line 154... Line 138...
154
		}
138
		}
155
	}
139
	}
156
	
140
	
157
	private function trierSynonymesMalAppliques($synonyme) {
141
	private function trierSynonymesMalAppliques($synonyme) {
158
		if ($synonyme['synonyme_mal_applique'] == 1) {
142
		if ($synonyme['synonyme_mal_applique'] == 1) {
159
			if ($synonyme['num_nom'] == $synonyme['num_nom_retenu']) {
143
			if ($synonyme['num_nom'] == $synonyme['num_nom_retenu']) {
160
				$synonyme['statut'] = 'posséde des synonymes mal appliqués';
144
				$synonyme['statut'] = 'posséde des synonymes mal appliqués';
161
			} else {
145
			} else {
162
				$synonyme['statut'] = 'est synonyme mal appliqué du num_nom '.$synonyme['num_nom_retenu'];
146
				$synonyme['statut'] = 'est synonyme mal appliqué du num_nom '.$synonyme['num_nom_retenu'];
163
			}
147
			}
Line 164... Line 148...
164
			$this->donnees['fiche_synonymie']['ma'][] = $synonyme;
148
			$this->donnees['ma'][] = $synonyme;
165
		}
149
		}
166
	}
150
	}
167
	
151
	
168
	private function trierSynonymesOrthographiques($synonyme) {
152
	private function trierSynonymesOrthographiques($synonyme) {
169
		if (isset($synonyme['synonyme_orthographique']) && $synonyme['synonyme_orthographique'] != '') {
153
		if (isset($synonyme['synonyme_orthographique']) && $synonyme['synonyme_orthographique'] != '') {
170
			if ($synonyme['synonyme_orthographique'] == $synonyme['num_nom']) {
154
			if ($synonyme['synonyme_orthographique'] == $synonyme['num_nom']) {
171
				$synonyme['statut'] = 'posséde des synonymes orthographiques';
155
				$synonyme['statut'] = 'posséde des synonymes orthographiques';
172
			} else {
156
			} else {
173
				$synonyme['statut'] = 'est synonyme orthographique du num_nom '.$synonyme['synonyme_orthographique'];
157
				$synonyme['statut'] = 'est synonyme orthographique du num_nom '.$synonyme['synonyme_orthographique'];
Line 174... Line 158...
174
			}	
158
			}	
175
			$this->donnees['fiche_synonymie']['o'][] = $synonyme;
159
			$this->donnees['o'][] = $synonyme;