Subversion Repositories eFlore/Applications.eflore-consultation

Rev

Rev 1585 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1585 Rev 1589
1
<?php
1
<?php
2
// declare(encoding='UTF-8');
2
// declare(encoding='UTF-8');
3
/**
3
/**
4
 * Classe gérant les images.
4
 * Classe gérant les images.
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 Images extends Eflore {
15
class Images extends Eflore {
16
	
16
	
17
	private $nntaxon;
17
	private $nntaxon;
18
	private $limite;
18
	private $limite;
19
	private $depart;
19
	private $depart;
20
 
20
 
21
	public function setNnTaxon($nntax) {
21
	public function setNnTaxon($nntax) {
22
		$this->nntaxon = $nntax;
22
		$this->nntaxon = $nntax;
23
	}
23
	}
24
	
24
	
25
	public function setLimite($limite) {
25
	public function setLimite($limite) {
26
		$this->limite = $limite;
26
		$this->limite = $limite;
27
	}
27
	}
28
	
28
	
29
	public function setDepart($depart) {
29
	public function setDepart($depart) {
30
		$this->depart = $depart;
30
		$this->depart = $depart;
31
	}
31
	}
32
	
32
	
33
	//TODO: créer des fonctions spécifiques cel et photoflora pour plus de clarté ?
33
	//TODO: créer des fonctions spécifiques cel et photoflora pour plus de clarté ?
34
	public function getUrlsImagesParIdsNoms(Array $idsNoms) {
34
	public function getUrlsImagesParIdsNoms(Array $idsNoms) {
35
		$infosImages = $this->getInfosImagesParIdsNoms($idsNoms);
35
		$infosImages = $this->getInfosImagesParIdsNoms($idsNoms);
36
		$urls = array();
36
		$urls = array();
37
		if (count($infosImages) > 0) {
37
		if (count($infosImages) > 0) {
38
			foreach ($infosImages as $img) {
38
			foreach ($infosImages as $img) {
39
				$id = $img['determination.nom_sci.code'];
39
				$id = $img['determination.nom_sci.code'];
40
				$urls[$id][] = $img['binaire.href'];
40
				$urls[$id][] = $img['binaire.href'];
41
			}
41
			}
42
		}
42
		}
43
		return $urls;
43
		return $urls;
44
	}
44
	}
45
 
45
 
46
	// retourne les urls d'une série d'images tirées de del, avec en premier les
46
	// retourne les urls d'une série d'images tirées de del, avec en premier les
47
	// images d'organes les mieux votées, et ensuite toute les autres images disponibles
47
	// images d'organes les mieux votées, et ensuite toute les autres images disponibles
48
	public function getUrlsImagesOrganesParIdsNom($idNom) {
48
	public function getUrlsImagesOrganesParIdsNom($idNom) {
49
		$infosImages0 = $this->getInfosMeilleuresImagesParTag($idNom, array('fleur', 'feuille', 'fruit', 'ecorce', 'port', 'rameau'), Eflore::PROTOCOLE_CAPITALISATION, 6);
49
		$infosImages0 = $this->getInfosMeilleuresImagesParTag($idNom, array('fleur', 'feuille', 'fruit', 'ecorce', 'port', 'rameau'), Eflore::PROTOCOLE_CAPITALISATION, 6);
50
		$infosImages1 = $this->getInfosImagesParIdsNoms(array($idNom));
50
		$infosImages1 = $this->getInfosImagesParIdsNoms(array($idNom));
51
		$urls = array();
51
		$urls = array();
52
		foreach ($infosImages0 as $imgs) {
52
		foreach ($infosImages0 as $imgs) {
53
			foreach ($imgs as $img) {
53
			foreach ($imgs as $img) {
54
				$id = $img['determination.nom_sci.code'];
54
				$id = $img['determination.nom_sci.code'];
55
				$urls[$id][] = $img['binaire.href'];
55
				$urls[$id][] = $img['binaire.href'];
56
			}
56
			}
57
		}
57
		}
58
		foreach ($infosImages1 as $img) {
58
		foreach ($infosImages1 as $img) {
59
			$id = $img['determination.nom_sci.code'];
59
			$id = $img['determination.nom_sci.code'];
60
			if (! in_array($img['binaire.href'], $urls[$id])) {
60
			if (! in_array($img['binaire.href'], $urls[$id])) {
61
				$urls[$id][] = $img['binaire.href'];
61
				$urls[$id][] = $img['binaire.href'];
62
			}
62
			}
63
		}
63
		}
64
		return $urls;
64
		return $urls;
65
	}
65
	}
66
 
66
 
67
	public function getInfosImagesParIdsNoms(Array $idsNoms) {
67
	public function getInfosImagesParIdsNoms(Array $idsNoms) {
68
		$pas = 800;
68
		$pas = 800;
69
		if(count($idsNoms) >= $pas) {
69
		if(count($idsNoms) >= $pas) {
70
			$images = array();
70
			$images = array();
71
			$idsPartages = array_chunk($idsNoms, $pas);
71
			$idsPartages = array_chunk($idsNoms, $pas);
72
			foreach ($idsPartages as $sousEnsembleIdsNoms) {
72
			foreach ($idsPartages as $sousEnsembleIdsNoms) {
73
				$url = $this->getUrlImagesParIdsNoms($sousEnsembleIdsNoms);
73
				$url = $this->getUrlImagesParIdsNoms($sousEnsembleIdsNoms);
74
				$donnees = $this->chargerDonnees($url);
74
				$donnees = $this->chargerDonnees($url);
75
				$resultats = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
75
				$resultats = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
76
				$images += $resultats;
76
				$images += $resultats;
77
			}
77
			}
78
		} else {
78
		} else {
79
			$url = $this->getUrlImagesParIdsNoms($idsNoms);
79
			$url = $this->getUrlImagesParIdsNoms($idsNoms);
80
			$donnees = $this->chargerDonnees($url);
80
			$donnees = $this->chargerDonnees($url);
81
			$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
81
			$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
82
		}
82
		}
83
		return $this->formaterResultatImages($images);
83
		return $this->formaterResultatImages($images);
84
	}
84
	}
85
	
85
	
86
	public function getInfosTrancheImagesParIdsNoms($idNom, $limite = 12) {
86
	public function getInfosTrancheImagesParIdsNoms($idNom, $limite = 12) {
87
		// 12 fait 4 lignes de 3 images donc bien pour l'affichage
87
		// 12 fait 4 lignes de 3 images donc bien pour l'affichage
88
		$url = $this->getUrlImagesParIdsNoms($idNom, $limite);
88
		$url = $this->getUrlImagesParIdsNoms($idNom, $limite);
89
		$donnees = $this->chargerDonnees($url);
89
		$donnees = $this->chargerDonnees($url);
90
		$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
90
		$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
91
		return $this->formaterResultatImages($images);
91
		return $this->formaterResultatImages($images);
92
	}
92
	}
93
 
93
 
94
	public function getInfosImageParIdImage($id_image) {
94
	public function getInfosImageParIdImage($id_image) {
95
		$tpl = $this->obtenirSqueletteSelonApi('imagesPopup');
95
		$tpl = $this->obtenirSqueletteSelonApi('imagesPopup');
96
		$url = $this->formaterUrl($tpl, array('id' => $id_image, 'referentiel' => Registre::get('parametres.referentiel')));
96
		$url = $this->formaterUrl($tpl, array('id' => $id_image, 'referentiel' => Registre::get('parametres.referentiel')));
97
		$image = $this->chargerDonnees($url);
97
		$image = $this->chargerDonnees($url);
98
		return $this->formaterResultatImages($image, true);
98
		return $this->formaterResultatImages($image, true);
99
	}
99
	}
100
	
100
	
101
	public function getInfosImages() {
101
	public function getInfosImages() {
102
		$url = $this->getUrlImages();
102
		$url = $this->getUrlImages();
103
		$donnees = $this->chargerDonnees($url);
103
		$donnees = $this->chargerDonnees($url);
104
		$images = (empty($donnees['resultats']) == false) ? $donnees['resultats'] : array();
104
		$images = (empty($donnees['resultats']) == false) ? $donnees['resultats'] : array();
105
		return $this->formaterResultatImages($images);
105
		return $this->formaterResultatImages($images);
106
	}
106
	}
107
	
107
	
108
	public function getInfosImagesParFicheEtSentier($tagFiche, $sentier) {
108
	public function getInfosImagesParFicheEtSentier($tagFiche, $sentier) {
109
		$tpl = Config::get('smartFloreIllustrationsParSentier');
109
		$tpl = Config::get('smartFloreIllustrationsParSentier');
110
		$url = $this->formaterUrl($tpl, array('tagFiche' => $tagFiche, 'sentier' => $sentier));
110
		$url = $this->formaterUrl($tpl, array('tagFiche' => $tagFiche, 'sentier' => $sentier));
111
		$donnees = $this->chargerDonnees($url);
111
		$donnees = $this->chargerDonnees($url);
112
		return $donnees['illustrations'] ?? false;
112
		return $donnees['illustrations'] ?? false;
113
	}
113
	}
114
 
114
 
115
	public function getInfosImageParId($imageId) {
115
	public function getInfosImageParId($imageId) {
116
		$tpl = Config::get('baseUrlServicesCelTpl');
116
		$tpl = Config::get('baseUrlServicesCelTpl');
117
		$urlTpl = sprintf($tpl, 'CelImage').'/image/imgId=%d';
117
		$urlTpl = sprintf($tpl, 'CelImage').'/image?imgId=%d';
118
		$url = sprintf($urlTpl, $imageId);
118
		$url = sprintf($urlTpl, $imageId);
119
		return $this->chargerDonnees($url);
119
		return $this->chargerDonnees($url);
120
	}
120
	}
121
 
121
 
122
	public function getInfosImagesTaxons() {
122
	public function getInfosImagesTaxons() {
123
		$pas = 800;
123
		$pas = 800;
124
		$idsTaxons = explode(',', $this->nntaxon);
124
		$idsTaxons = explode(',', $this->nntaxon);
125
		if(count($idsTaxons) >= $pas) {
125
		if(count($idsTaxons) >= $pas) {
126
			$images = array();
126
			$images = array();
127
			$idsPartages = array_chunk($idsTaxons, $pas);
127
			$idsPartages = array_chunk($idsTaxons, $pas);
128
			foreach ($idsPartages as $sousEnsembleIdsTaxons) {
128
			foreach ($idsPartages as $sousEnsembleIdsTaxons) {
129
				$url = $this->getUrlImagesTaxons(implode(',',$sousEnsembleIdsTaxons));
129
				$url = $this->getUrlImagesTaxons(implode(',',$sousEnsembleIdsTaxons));
130
				$donnees = $this->chargerDonnees($url);
130
				$donnees = $this->chargerDonnees($url);
131
				$resultats = (empty($donnees['resultats']) == false) ? $donnees['resultats'] : array();
131
				$resultats = (empty($donnees['resultats']) == false) ? $donnees['resultats'] : array();
132
				$images += $resultats;
132
				$images += $resultats;
133
			}
133
			}
134
		} else {
134
		} else {
135
			$url = $this->getUrlImagesTaxons($idsTaxons);
135
			$url = $this->getUrlImagesTaxons($idsTaxons);
136
			$donnees = $this->chargerDonnees($url);
136
			$donnees = $this->chargerDonnees($url);
137
			$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
137
			$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
138
		}
138
		}
139
		return $this->formaterResultatImages($images);
139
		return $this->formaterResultatImages($images);
140
	}
140
	}
141
 
141
 
142
	public function getInfosPremiereImageParIdsNoms($idsNoms) {
142
	public function getInfosPremiereImageParIdsNoms($idsNoms) {
143
		$url = $this->getUrlPremiereImageParIdsNoms($idsNoms);
143
		$url = $this->getUrlPremiereImageParIdsNoms($idsNoms);
144
		$donnees = $this->chargerDonnees($url);
144
		$donnees = $this->chargerDonnees($url);
145
		$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
145
		$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
146
		return $this->formaterResultatImages($images);
146
		return $this->formaterResultatImages($images);
147
	}
147
	}
148
 
148
 
149
	public function getInfosImagesGalerieMobile($nn) {
149
	public function getInfosImagesGalerieMobile($nn) {
150
		$url = $this->getUrlImagesGalerieMobile($nn);
150
		$url = $this->getUrlImagesGalerieMobile($nn);
151
		$donnees = $this->chargerDonnees($url);
151
		$donnees = $this->chargerDonnees($url);
152
		$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
152
		$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
153
		return $images;
153
		return $images;
154
	}
154
	}
155
 
155
 
156
	/**
156
	/**
157
	 * Retourne les $limite images ayant le plus de votes pour CHAQUE tag de $tags pour le protocole $protocole
157
	 * Retourne les $limite images ayant le plus de votes pour CHAQUE tag de $tags pour le protocole $protocole
158
	 */
158
	 */
159
	public function getInfosMeilleuresImagesParTag($nn, $tags, $protocole = Eflore::PROTOCOLE_CAPITALISATION, $limite = 10, $format = 'CRS') {
159
	public function getInfosMeilleuresImagesParTag($nn, $tags, $protocole = Eflore::PROTOCOLE_CAPITALISATION, $limite = 10, $format = 'CRS') {
160
		if (! is_array($tags)) {
160
		if (! is_array($tags)) {
161
			$tags = array($tags);
161
			$tags = array($tags);
162
		}
162
		}
163
		$images_tag = array();
163
		$images_tag = array();
164
		foreach ($tags as $tag) {
164
		foreach ($tags as $tag) {
165
			$url = $this->getUrlMeilleuresImagesParTag($nn, $tag, $protocole, $limite, $format);
165
			$url = $this->getUrlMeilleuresImagesParTag($nn, $tag, $protocole, $limite, $format);
166
			$donnees = $this->chargerDonnees($url);
166
			$donnees = $this->chargerDonnees($url);
167
			$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
167
			$images = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
168
			$images_tag[$tag] = $this->formaterResultatImagesDel($images);
168
			$images_tag[$tag] = $this->formaterResultatImagesDel($images);
169
		}
169
		}
170
		return $images_tag;
170
		return $images_tag;
171
	}
171
	}
172
 
172
 
173
	/**
173
	/**
174
	 * Retourne l'image ayant le plus de votes pour le pour capitalisation d'images, pour le premier tags de $tags. S'il
174
	 * Retourne l'image ayant le plus de votes pour le pour capitalisation d'images, pour le premier tags de $tags. S'il
175
	 * n'y a aucune image pour le premier tag, parcourt les autres tags jusqu'à en trouver une.
175
	 * n'y a aucune image pour le premier tag, parcourt les autres tags jusqu'à en trouver une.
176
	 */
176
	 */
177
	public function getInfosMeilleureImageParPrioriteTags($nn, $tags, $format = 'CRS') {
177
	public function getInfosMeilleureImageParPrioriteTags($nn, $tags, $format = 'CRS') {
178
		if (! is_array($tags)) {
178
		if (! is_array($tags)) {
179
			$tags = array($tags);
179
			$tags = array($tags);
180
		}
180
		}
181
		$image = null;
181
		$image = null;
182
		foreach ($tags as $tag) {
182
		foreach ($tags as $tag) {
183
			$url = $this->getUrlMeilleuresImagesParTag($nn, $tag, Eflore::PROTOCOLE_CAPITALISATION, 1, $format);
183
			$url = $this->getUrlMeilleuresImagesParTag($nn, $tag, Eflore::PROTOCOLE_CAPITALISATION, 1, $format);
184
			$donnees = $this->chargerDonnees($url);
184
			$donnees = $this->chargerDonnees($url);
185
			$image = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
185
			$image = (isset($donnees['resultats'])) ? $donnees['resultats'] : array();
186
			$image = $this->formaterResultatImagesDel($image);
186
			$image = $this->formaterResultatImagesDel($image);
187
			if (empty($image) == false) {
187
			if (empty($image) == false) {
188
				break;
188
				break;
189
			}
189
			}
190
		}
190
		}
191
		//echo "<pre>" . print_r($image, true) . "</pre>";
191
		//echo "<pre>" . print_r($image, true) . "</pre>";
192
		if (is_array($image)) {
192
		if (is_array($image)) {
193
			$image = array_pop($image);
193
			$image = array_pop($image);
194
		}
194
		}
195
		return $image;
195
		return $image;
196
	}
196
	}
197
 
197
 
198
	private function getUrlImagesParIdsNoms($idsNoms, $limite = 801) {
198
	private function getUrlImagesParIdsNoms($idsNoms, $limite = 801) {
199
		$tpl = $this->obtenirSqueletteSelonApi('imagesResultatsDetermination');
199
		$tpl = $this->obtenirSqueletteSelonApi('imagesResultatsDetermination');
200
		$params = array('idsNoms' => implode(',', $idsNoms), 'referentiel' => Registre::get('parametres.referentiel'), 'limite' => $limite);
200
		$params = array('idsNoms' => implode(',', $idsNoms), 'referentiel' => Registre::get('parametres.referentiel'), 'limite' => $limite);
201
		$url = $this->formaterUrl($tpl, $params);
201
		$url = $this->formaterUrl($tpl, $params);
202
		return $url;
202
		return $url;
203
	}
203
	}
204
 
204
 
205
	public function getUrlPremiereImageParIdsNoms($idsNoms) {
205
	public function getUrlPremiereImageParIdsNoms($idsNoms) {
206
		$tpl = $this->obtenirSqueletteSelonApi('imagesPremiere');
206
		$tpl = $this->obtenirSqueletteSelonApi('imagesPremiere');
207
		$params = array('idsNoms' => implode(',', $idsNoms), 'referentiel' => Registre::get('parametres.referentiel'));
207
		$params = array('idsNoms' => implode(',', $idsNoms), 'referentiel' => Registre::get('parametres.referentiel'));
208
		$url = $this->formaterUrl($tpl, $params);
208
		$url = $this->formaterUrl($tpl, $params);
209
		return $url;
209
		return $url;
210
	}
210
	}
211
 
211
 
212
	private function getUrlImages($nn = false) {
212
	private function getUrlImages($nn = false) {
213
		$tpl = $this->obtenirSqueletteSelonApi('images');
213
		$tpl = $this->obtenirSqueletteSelonApi('images');
214
		if ($this->getApi() == Eflore::API_EFLORE) {
214
		if ($this->getApi() == Eflore::API_EFLORE) {
215
			$params = array('projet' => $this->getProjet(), 'limite' => $this->limite, 'depart' => $this->depart, 'referentiel' => Registre::get('parametres.referentiel'));
215
			$params = array('projet' => $this->getProjet(), 'limite' => $this->limite, 'depart' => $this->depart, 'referentiel' => Registre::get('parametres.referentiel'));
216
		}
216
		}
217
		$url = $this->formaterUrl($tpl, $params);
217
		$url = $this->formaterUrl($tpl, $params);
218
		return $url;
218
		return $url;
219
	}
219
	}
220
 
220
 
221
	private function getUrlImagesTaxons($idsTaxons) {
221
	private function getUrlImagesTaxons($idsTaxons) {
222
		$tpl = $this->obtenirSqueletteSelonApi('imagesTaxons');
222
		$tpl = $this->obtenirSqueletteSelonApi('imagesTaxons');
223
		$params = array('projet' => $this->getProjet(),'nntaxon'=> $idsTaxons, 'referentiel' => Registre::get('parametres.referentiel'));
223
		$params = array('projet' => $this->getProjet(),'nntaxon'=> $idsTaxons, 'referentiel' => Registre::get('parametres.referentiel'));
224
		$url = $this->formaterUrl($tpl, $params);
224
		$url = $this->formaterUrl($tpl, $params);
225
		return $url;
225
		return $url;
226
	}
226
	}
227
 
227
 
228
	private function getUrlImagesGalerieMobile($nn) {
228
	private function getUrlImagesGalerieMobile($nn) {
229
		$tpl = Config::get('delGalerieMobileTpl');
229
		$tpl = Config::get('delGalerieMobileTpl');
230
		$params = array('nn' => $nn, 'referentiel' => Registre::get('parametres.referentiel'));
230
		$params = array('nn' => $nn, 'referentiel' => Registre::get('parametres.referentiel'));
231
		$url = $this->formaterUrl($tpl, $params);
231
		$url = $this->formaterUrl($tpl, $params);
232
		return $url;
232
		return $url;
233
	}
233
	}
234
 
234
 
235
	private function getUrlMeilleuresImagesParTag($nn, $tag, $protocole = Eflore::PROTOCOLE_CAPITALISATION, $limite = 10, $format = 'CRS') {
235
	private function getUrlMeilleuresImagesParTag($nn, $tag, $protocole = Eflore::PROTOCOLE_CAPITALISATION, $limite = 10, $format = 'CRS') {
236
		$tpl = Config::get('delMeilleuresImagesParTagTpl');
236
		$tpl = Config::get('delMeilleuresImagesParTagTpl');
237
		$params = array('nn'=> $nn,
237
		$params = array('nn'=> $nn,
238
						'tag'=> $tag,
238
						'tag'=> $tag,
239
						'protocole' => $protocole,
239
						'protocole' => $protocole,
240
						'referentiel' => Registre::get('parametres.referentiel'),
240
						'referentiel' => Registre::get('parametres.referentiel'),
241
						'limite' => $limite,
241
						'limite' => $limite,
242
						'format' => $format);
242
						'format' => $format);
243
		$url = $this->formaterUrl($tpl, $params);
243
		$url = $this->formaterUrl($tpl, $params);
244
		return $url;
244
		return $url;
245
	}
245
	}
246
 
246
 
247
	/**
247
	/**
248
	 * Transforme les résultats issus des Webservices autres que eflore/cel afin de conserver un format homogène
248
	 * Transforme les résultats issus des Webservices autres que eflore/cel afin de conserver un format homogène
249
	 * @param mixed $images
249
	 * @param mixed $images
250
	 */
250
	 */
251
	private function formaterResultatImages($images, $seulementUne = false) {
251
	private function formaterResultatImages($images, $seulementUne = false) {
252
		switch ($this->getApi()) {
252
		switch ($this->getApi()) {
253
			case Eflore::API_DEL:
253
			case Eflore::API_DEL:
254
				return $this->formaterResultatImagesDel($images, $seulementUne);
254
				return $this->formaterResultatImagesDel($images, $seulementUne);
255
			break;
255
			break;
256
			default:
256
			default:
257
				return $images;
257
				return $images;
258
		}
258
		}
259
	}
259
	}
260
 
260
 
261
	private function formaterResultatImagesDel($images, $seulementUne = false) {
261
	private function formaterResultatImagesDel($images, $seulementUne = false) {
262
		if ($seulementUne) {
262
		if ($seulementUne) {
263
			return $this->formaterUnResultatImagesDel($images);
263
			return $this->formaterUnResultatImagesDel($images);
264
		} else {
264
		} else {
265
			$retour = array();
265
			$retour = array();
266
			foreach ($images as $idObsImage => $image) {
266
			foreach ($images as $idObsImage => $image) {
267
				$retour[$image['id_image']] = array_merge($images[$idObsImage], $this->formaterUnResultatImagesDel($image));
267
				$retour[$image['id_image']] = array_merge($images[$idObsImage], $this->formaterUnResultatImagesDel($image));
268
			}
268
			}
269
			return $retour;
269
			return $retour;
270
		}
270
		}
271
	}
271
	}
272
 
272
 
273
	/**
273
	/**
274
	 * Convertit un array venant d'un Webservice del vers le format retourné par eflore/cel
274
	 * Convertit un array venant d'un Webservice del vers le format retourné par eflore/cel
275
	 * @param array $image
275
	 * @param array $image
276
	 * @return array
276
	 * @return array
277
	 */
277
	 */
278
	private function formaterUnResultatImagesDel(array $image) {
278
	private function formaterUnResultatImagesDel(array $image) {
279
		$libelleAuteur = $image['observation']['auteur.prenom'].' '.$image['observation']['auteur.nom'];
279
		$libelleAuteur = $image['observation']['auteur.prenom'].' '.$image['observation']['auteur.nom'];
280
		$codeReferentiel = $image['observation']['determination.referentiel'];
280
		$codeReferentiel = $image['observation']['determination.referentiel'];
281
		if (strpos($codeReferentiel, ':') !== false) {
281
		if (strpos($codeReferentiel, ':') !== false) {
282
			$codeReferentiel = substr($image['observation']['determination.referentiel'], 0, strpos($image['observation']['determination.referentiel'], ':'));
282
			$codeReferentiel = substr($image['observation']['determination.referentiel'], 0, strpos($image['observation']['determination.referentiel'], ':'));
283
		}
283
		}
284
		$localiteLibelle = array($image['observation']['zone_geo'],
284
		$localiteLibelle = array($image['observation']['zone_geo'],
285
				$image['observation']['lieudit'],
285
				$image['observation']['lieudit'],
286
				$image['observation']['station'],
286
				$image['observation']['station'],
287
				$image['observation']['milieu']);
287
				$image['observation']['milieu']);
288
		$retourImage = array(
288
		$retourImage = array(
289
				'date' => $image['observation']['date_observation'],
289
				'date' => $image['observation']['date_observation'],
290
				'mime' => 'image/jpeg',
290
				'mime' => 'image/jpeg',
291
				'auteur.libelle' => $libelleAuteur,
291
				'auteur.libelle' => $libelleAuteur,
292
				'auteur.id' => $image['observation']['auteur.id'],
292
				'auteur.id' => $image['observation']['auteur.id'],
293
				'binaire.href' => $image['binaire.href'],
293
				'binaire.href' => $image['binaire.href'],
294
				'observation.id' => $image['observation']['id_observation'],
294
				'observation.id' => $image['observation']['id_observation'],
295
				'determination.libelle' => $image['observation']['determination.ns'].'[Dét. : '.$libelleAuteur.']',
295
				'determination.libelle' => $image['observation']['determination.ns'].'[Dét. : '.$libelleAuteur.']',
296
				'determination.nom_sci' => $image['observation']['determination.ns'],
296
				'determination.nom_sci' => $image['observation']['determination.ns'],
297
				'determination.nom_sci.code' => $codeReferentiel.'.'.$image['observation']['determination.nn'],
297
				'determination.nom_sci.code' => $codeReferentiel.'.'.$image['observation']['determination.nn'],
298
				'station.commune' => $image['observation']['zone_geo'],
298
				'station.commune' => $image['observation']['zone_geo'],
299
				'station.lieudit' => $image['observation']['lieudit'],
299
				'station.lieudit' => $image['observation']['lieudit'],
300
				'station.station' => $image['observation']['station'],
300
				'station.station' => $image['observation']['station'],
301
				'station.milieu' => $image['observation']['milieu'],
301
				'station.milieu' => $image['observation']['milieu'],
302
				'station.libelle' => $this->formaterLocalite($localiteLibelle)
302
				'station.libelle' => $this->formaterLocalite($localiteLibelle)
303
		);
303
		);
304
		return $retourImage;
304
		return $retourImage;
305
	}
305
	}
306
	
306
	
307
	private function formaterLocalite($infosLocalite) {
307
	private function formaterLocalite($infosLocalite) {
308
		$localiteFmt = array();
308
		$localiteFmt = array();
309
		foreach ($infosLocalite as $localite) {
309
		foreach ($infosLocalite as $localite) {
310
			if($localite != '') {
310
			if($localite != '') {
311
				$localiteFmt[] = $localite;
311
				$localiteFmt[] = $localite;
312
			}
312
			}
313
		}
313
		}
314
		if (empty($localiteFmt)) {
314
		if (empty($localiteFmt)) {
315
			$localiteFmt[0] = 'localité inconnue';
315
			$localiteFmt[0] = 'localité inconnue';
316
		}
316
		}
317
		return implode(" > ", $localiteFmt);
317
		return implode(" > ", $localiteFmt);
318
	}
318
	}
319
}
319
}
320
?>
320
?>