Line 16... |
Line 16... |
16 |
* @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images
|
16 |
* @see http://www.tela-botanica.org/wikini/eflore/wakka.php?wiki=ApiIdentiplante01Images
|
17 |
*/
|
17 |
*/
|
Line 18... |
Line 18... |
18 |
|
18 |
|
Line 19... |
Line 19... |
19 |
class ListeImagesDeterminationsProbables {
|
19 |
class ListeImagesDeterminationsProbables {
|
20 |
|
20 |
|
21 |
private $imageIds = array();
|
21 |
private $indexImagesIds = array();
|
22 |
private $conteneur;
|
22 |
private $conteneur;
|
23 |
private $navigation;
|
23 |
private $navigation;
|
24 |
private $masque;
|
24 |
private $masque;
|
Line 194... |
Line 194... |
194 |
($this->parametres['masque.protocole'] != null ? 'AND dvote.ce_protocole = '.$this->parametres['masque.protocole'].' ' : ' ');
|
194 |
($this->parametres['masque.protocole'] != null ? 'AND dvote.ce_protocole = '.$this->parametres['masque.protocole'].' ' : ' ');
|
195 |
$requeteLiaisons .= 'GROUP BY dvote.ce_image '.
|
195 |
$requeteLiaisons .= 'GROUP BY dvote.ce_image '.
|
196 |
($this->parametres['masque.valeur_vote_min'] != null ? 'HAVING AVG(dvote.valeur) >= '.$this->parametres['masque.valeur_vote_min'].' ' : ' ').
|
196 |
($this->parametres['masque.valeur_vote_min'] != null ? 'HAVING AVG(dvote.valeur) >= '.$this->parametres['masque.valeur_vote_min'].' ' : ' ').
|
197 |
'ORDER BY moyenne_votes';
|
197 |
'ORDER BY moyenne_votes';
|
198 |
$requeteLiaisons .= $this->gestionBdd->getLimitSql();
|
198 |
$requeteLiaisons .= $this->gestionBdd->getLimitSql();
|
- |
|
199 |
|
199 |
return $this->bdd->recupererTous($requeteLiaisons);
|
200 |
return $this->bdd->recupererTous($requeteLiaisons);
|
200 |
}
|
201 |
}
|
Line 201... |
Line 202... |
201 |
|
202 |
|
202 |
private function doitJoindreTableVotes() {
|
203 |
private function doitJoindreTableVotes() {
|
Line 225... |
Line 226... |
225 |
/**
|
226 |
/**
|
226 |
* Retourner un tableau d'images formaté en fonction des liaisons trouvées
|
227 |
* Retourner un tableau d'images formaté en fonction des liaisons trouvées
|
227 |
* @param $liaisons les liaisons de la table del_obs_images
|
228 |
* @param $liaisons les liaisons de la table del_obs_images
|
228 |
* */
|
229 |
* */
|
229 |
private function chargerImage($liaisons) {
|
230 |
private function chargerImage($liaisons) {
|
- |
|
231 |
|
- |
|
232 |
//echo '<pre>'.print_r($liaisons,true).'</pre>';exit;
|
230 |
$images = array();
|
233 |
$images = array();
|
231 |
foreach ($liaisons as $liaison) {
|
234 |
foreach ($liaisons as $liaison) {
|
232 |
$idObs = $liaison['id_observation'];
|
235 |
$idObs = $liaison['id_observation'];
|
233 |
$idImage = $liaison['id_image'];
|
236 |
$idImage = $liaison['id_image'];
|
234 |
// On enregistre l'ID de l'obs pour n'effectuer qu'une seule requête par la suite
|
237 |
// On enregistre l'ID de l'obs pour n'effectuer qu'une seule requête par la suite
|
235 |
$this->obsIds[] = $idObs;
|
238 |
$this->obsIds[] = $idObs;
|
236 |
$index = $liaison['id_image'].'-'.$liaison['id_observation'];
|
239 |
$index = $liaison['id_image'].'-'.$liaison['id_observation'];
|
- |
|
240 |
$this->indexImagesIds[$idImage] = $index;
|
237 |
$images[$index] = array(
|
241 |
$images[$index] = array(
|
238 |
'id_image' => $idImage,
|
242 |
'id_image' => $idImage,
|
239 |
'id_observation' => $idObs,
|
243 |
'id_observation' => $idObs,
|
240 |
'auteur.intitule' => $liaison['prenom'].' '.$liaison['nom'],
|
244 |
'auteur.intitule' => $liaison['prenom'].' '.$liaison['nom'],
|
241 |
'binaire.href' => $this->formaterLienImage($idImage),
|
245 |
'binaire.href' => $this->formaterLienImage($idImage),
|
242 |
'determination.famille' => $liaison['famille'],
|
246 |
'determination.famille' => $liaison['famille'],
|
243 |
'determination.ns' => $liaison['nom_ret'],
|
247 |
'determination.ns' => $liaison['nom_ret'],
|
244 |
'determination.nn' => $liaison['nom_ret_nn'],
|
248 |
'determination.nn' => $liaison['nom_ret_nn'],
|
245 |
'determination.nt' => $liaison['nt'],
|
249 |
'determination.nt' => $liaison['nt'],
|
246 |
'date_observation' => $liaison['date_observation'],
|
250 |
'date_observation' => $liaison['date_observation'],
|
247 |
'localite' => $this->formaterLieu($liaison)
|
251 |
'localite' => $this->formaterLieu($liaison),
|
- |
|
252 |
'mots_cles_image_cel' => $this->formaterMotsClesCel($liaison['mots_cles_texte_image']),
|
- |
|
253 |
'mots_cles_image_del' => ""
|
248 |
);
|
254 |
);
|
249 |
}
|
255 |
}
|
250 |
return $images;
|
256 |
return $images;
|
251 |
}
|
257 |
}
|
Line 268... |
Line 274... |
268 |
'WHERE ce_observation IN ('.implode(',', $this->obsIds).') '.
|
274 |
'WHERE ce_observation IN ('.implode(',', $this->obsIds).') '.
|
269 |
'AND nom_sel IS NOT NULL'.
|
275 |
'AND nom_sel IS NOT NULL'.
|
270 |
') '.
|
276 |
') '.
|
271 |
'ORDER BY ce_proposition';
|
277 |
'ORDER BY ce_proposition';
|
Line -... |
Line 278... |
- |
|
278 |
|
- |
|
279 |
$requeteMotsCles = 'SELECT tag, ce_image '.
|
- |
|
280 |
'FROM del_image_tag '.
|
- |
|
281 |
'WHERE ce_image IN ('.implode(',', array_keys($this->indexImagesIds)).') '.
|
- |
|
282 |
'AND actif = 1 ';
|
272 |
|
283 |
|
273 |
$resultatsPropositions = $this->bdd->recupererTous($requetePropositions);
|
284 |
$resultatsPropositions = $this->bdd->recupererTous($requetePropositions);
|
- |
|
285 |
$resultatsVotes = $this->bdd->recupererTous($requeteVotes);
|
Line 274... |
Line 286... |
274 |
$resultatsVotes = $this->bdd->recupererTous($requeteVotes);
|
286 |
$resultatsMotsCles = $this->bdd->recupererTous($requeteMotsCles);
|
275 |
|
287 |
|
Line 276... |
Line 288... |
276 |
$propositions = array();
|
288 |
$propositions = array();
|
Line 302... |
Line 314... |
302 |
$score_ancienne_proposition = $propositions[$id_obs]['valeur'];
|
314 |
$score_ancienne_proposition = $propositions[$id_obs]['valeur'];
|
303 |
$propositions[$id_obs] = ($score >= $score_ancienne_proposition) ?
|
315 |
$propositions[$id_obs] = ($score >= $score_ancienne_proposition) ?
|
304 |
$proposition : $propositions[$id_obs];
|
316 |
$proposition : $propositions[$id_obs];
|
305 |
}
|
317 |
}
|
306 |
}
|
318 |
}
|
307 |
|
319 |
|
- |
|
320 |
foreach ($resultatsMotsCles as $motCle) {
|
- |
|
321 |
$tag = $motCle['tag'];
|
- |
|
322 |
$index = $this->indexImagesIds[$motCle['ce_image']];
|
- |
|
323 |
if($images[$index]['mots_cles_image_del'] != "") {
|
- |
|
324 |
$tag = ",".$tag;
|
- |
|
325 |
}
|
- |
|
326 |
$images[$index]['mots_cles_image_del'] .= $tag ;
|
- |
|
327 |
}
|
- |
|
328 |
|
308 |
foreach ($images as $id => $image) {
|
329 |
foreach ($images as $id => $image) {
|
309 |
if ($this->doitRemplacerObservationParProposition($propositions, $image)) {
|
330 |
if ($this->doitRemplacerObservationParProposition($propositions, $image)) {
|
310 |
$id_obs = $image['id_observation'];
|
331 |
$id_obs = $image['id_observation'];
|
311 |
$images[$id]['determination.famille'] = $propositions[$id_obs]['famille'];
|
332 |
$images[$id]['determination.famille'] = $propositions[$id_obs]['famille'];
|
312 |
$images[$id]['determination.ns'] = $propositions[$id_obs]['nom_ret'];
|
333 |
$images[$id]['determination.ns'] = $propositions[$id_obs]['nom_ret'];
|
313 |
$images[$id]['determination.nn'] = $propositions[$id_obs]['nom_ret_nn'];
|
334 |
$images[$id]['determination.nn'] = $propositions[$id_obs]['nom_ret_nn'];
|
314 |
$images[$id]['determination.nt'] = $propositions[$id_obs]['nt'];
|
335 |
$images[$id]['determination.nt'] = $propositions[$id_obs]['nt'];
|
315 |
}
|
336 |
}
|
Line -... |
Line 337... |
- |
|
337 |
|
316 |
|
338 |
if(isset($images[$id]['determination.nn'])) {
|
- |
|
339 |
$images[$id]['url_fiche_eflore'] = $this->formaterUrlFicheEflore($images[$id]['determination.nn']);
|
317 |
$images[$id]['url_fiche_eflore'] = $this->formaterUrlFicheEflore($images[$id]['determination.nn']);
|
340 |
}
|
Line 318... |
Line 341... |
318 |
}
|
341 |
}
|
319 |
|
342 |
|
Line 330... |
Line 353... |
330 |
}
|
353 |
}
|
Line 331... |
Line 354... |
331 |
|
354 |
|
332 |
/*-------------------------------------------------------------------------------
|
355 |
/*-------------------------------------------------------------------------------
|
333 |
FORMATER ET METTRE EN FORME
|
356 |
FORMATER ET METTRE EN FORME
|
- |
|
357 |
--------------------------------------------------------------------------------*/
|
- |
|
358 |
/**
|
- |
|
359 |
* Formater les mots clés du cel en n'affichant que ceux faisant partie
|
- |
|
360 |
* d'une liste définie dans le fichier de configuration
|
- |
|
361 |
* @param $chaineMotCleCel la chaine de mots clés du cel
|
- |
|
362 |
* @return string la chaine filtrée
|
- |
|
363 |
* */
|
- |
|
364 |
private function formaterMotsClesCel($chaineMotCleCel) {
|
- |
|
365 |
$tabMotsClesCel = explode(',', $chaineMotCleCel);
|
- |
|
366 |
$chaineMotsClesAffiches = $this->conteneur->getParametre('mots_cles_cel_affiches');
|
- |
|
367 |
$tabMotsClesAffiches = explode(',',$chaineMotsClesAffiches);
|
- |
|
368 |
|
- |
|
369 |
return implode(',', array_intersect($tabMotsClesAffiches, $tabMotsClesCel));
|
Line 334... |
Line 370... |
334 |
--------------------------------------------------------------------------------*/
|
370 |
}
|
335 |
|
371 |
|
336 |
/**
|
372 |
/**
|
337 |
* Formater une observation depuis une ligne liaison
|
373 |
* Formater une observation depuis une ligne liaison
|