Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1730 Rev 1731
Line 87... Line 87...
87
	}
87
	}
Line 88... Line 88...
88
 
88
 
89
	private function formaterObservations($liste_obs) {
89
	private function formaterObservations($liste_obs) {
90
		foreach ($liste_obs as $obs) {
90
		foreach ($liste_obs as $obs) {
91
			$id_obs = $obs['id_observation'];
91
			$id_obs = $obs['id_observation'];
-
 
92
			$id_auteur_obs = $obs['ce_utilisateur'];
-
 
93
 
-
 
94
			$infos = array();
-
 
95
			$infos['id'] = $id_obs;
92
			$auteur_obs = $obs['ce_utilisateur'];
96
			$infos['nom_sci'] = $this->formaterNomSci($obs);
93
			$obs['date'] = $this->formaterDateObs($obs['date_observation']);
97
			$infos['date'] = $this->formaterDate($obs['date_observation']);
94
			$obs['lieu'] = $this->formaterLieuObservation($obs);
98
			$infos['lieu'] = $this->formaterLieu($obs);
95
			$obs['lien'] = $this->obtenirLienFicheObs($obs['id_observation']);
99
			$infos['lien'] = $this->obtenirLienFiche($id_obs);
-
 
100
			$infos['commentaires'] = array();
96
			$obs['commentaires'] = array();
101
 
97
			$this->correspondance_id_obs_auteurs[$id_obs] = $auteur_obs;
102
			$this->correspondance_id_obs_auteurs[$id_obs] = $id_auteur_obs;
98
			$this->observations_concernees[$auteur_obs][$id_obs] = $obs;
103
			$this->observations_concernees[$id_auteur_obs][$id_obs] = $infos;
99
		}
104
		}
Line 100... Line 105...
100
	}
105
	}
-
 
106
 
-
 
107
	private function formaterNomSci($obs) {
101
 
108
		$nom = 'Espèce indéterminée';
-
 
109
		if ($obs['nom_ret'] != '') {
-
 
110
			$nom = $obs['nom_ret'];
-
 
111
		} else if($obs['nom_sel'] != '') {
102
	private function formaterDateObs($date) {
112
			$nom = $obs['nom_sel'];
103
		$time = strtotime($date);
113
		}
Line 104... Line 114...
104
		return date('d/m/Y', $time);
114
		return $nom;
105
	}
115
	}
106
 
116
 
107
	private function formaterLieuObservation($obs) {
117
	private function formaterDate($date) {
108
		$lieux = array();
-
 
109
		if (!empty($obs['zone_geo'])) {
118
		$dateFmt = '(date inconnue)';
110
			$zone_geo = $obs['zone_geo'];
119
		if ($date != '0000-00-00 00:00:00') {
111
			$zone_geo.= (!empty($obs['ce_zone_geo']) ? ' ('.$this->convertirCodeZoneGeoVersDepartement($obs['ce_zone_geo']).')' : '');
-
 
112
			$lieux[] = $zone_geo;
-
 
113
		}
-
 
114
		if (!empty($obs['lieudit'])) {
-
 
115
			$lieux[] = $obs['lieudit'];
-
 
116
		}
-
 
117
		if (!empty($obs['station'])) {
120
			$time = strtotime($date);
118
			$lieux[] = $obs['station'];
121
			$dateFmt = date('d/m/Y', $time);
Line -... Line 122...
-
 
122
		}
-
 
123
		return $dateFmt;
-
 
124
	}
-
 
125
 
-
 
126
	private function formaterLieu($obs) {
-
 
127
		$lieuInfos = [];
-
 
128
		$champsLieu = ['zone_geo', 'lieudit', 'station'];
-
 
129
		foreach ($champsLieu as $champ) {
-
 
130
			if (trim($obs[$champ]) == '') {
-
 
131
				continue;
-
 
132
			}
-
 
133
 
-
 
134
			$lieuIntitule = $obs[$champ];
-
 
135
			if ($champ == 'zone_geo') {
-
 
136
				$codeDept = $this->convertirCodeZoneGeoVersDepartement($obs['ce_zone_geo']);
-
 
137
				$lieuIntitule .= empty($codeDept) ? '' : " ($codeDept)";
-
 
138
			}
-
 
139
			$lieuInfos[] = $lieuIntitule;
Line 119... Line 140...
119
		}
140
		}
120
		return implode(' > ', $lieux);
141
		$lieu = (count($lieuInfos) > 0) ? implode(' > ', $lieuInfos) : '(lieu inconnu)';
121
	}
142
		return $lieu;
122
 
143
	}
123
 
144
 
124
	private function convertirCodeZoneGeoVersDepartement($code_zone_geo) {
145
	private function convertirCodeZoneGeoVersDepartement($code_zone_geo) {
125
		$code_departement = '';
146
		$code_departement = '';
Line 126... Line -...
126
		if ($this->estUnCodeInseeDepartement($code_zone_geo)) {
-
 
127
			$code_departement = substr(ltrim($code_zone_geo, 'INSEE-C:'), 0, 2);
-
 
128
		}
-
 
129
		return $code_departement;
-
 
130
	}
147
		if (preg_match('/^INSEE-C:([0-9]){2}[0-9]{3}$/', $code_a_tester, $match)) {
131
 
148
			$code_departement = $match[1];
132
	private function estUnCodeInseeDepartement($code_a_tester) {
149
		}
Line 133... Line 150...
133
		return preg_match('/^INSEE-C:[0-9]{5}/', $code_a_tester);
150
		return $code_departement;
134
	}
151
	}
Line 164... Line 181...
164
	}
181
	}
Line 165... Line 182...
165
 
182
 
166
	protected function formaterCommentaires($liste_commentaires) {
183
	protected function formaterCommentaires($liste_commentaires) {
167
		foreach ($liste_commentaires as $commentaire) {
184
		foreach ($liste_commentaires as $commentaire) {
168
			$id_obs = $commentaire['ce_observation'];
185
			$id_obs = $commentaire['ce_observation'];
169
			if (isset($this->correspondance_id_obs_auteurs[$commentaire['ce_observation']])) {
186
			if (isset($this->correspondance_id_obs_auteurs[$id_obs])) {
170
				$id_auteur_obs = $this->correspondance_id_obs_auteurs[$commentaire['ce_observation']];
187
				$id_auteur_obs = $this->correspondance_id_obs_auteurs[$id_obs];
171
				$commentaire['auteur'] = $this->formaterAuteur($commentaire);
188
				$commentaire['auteur'] = $this->formaterAuteur($commentaire);
172
				$this->observations_concernees[$id_auteur_obs][$id_obs]['commentaires'][] = $commentaire;
189
				$this->observations_concernees[$id_auteur_obs][$id_obs]['commentaires'][] = $commentaire;
173
			}
190
			}
174
		}
191
		}