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 |
?>
|