18,7 → 18,7 |
|
class ListeImagesDeterminationsProbables { |
|
private $imageIds = array(); |
private $indexImagesIds = array(); |
private $conteneur; |
private $navigation; |
private $masque; |
196,6 → 196,7 |
($this->parametres['masque.valeur_vote_min'] != null ? 'HAVING AVG(dvote.valeur) >= '.$this->parametres['masque.valeur_vote_min'].' ' : ' '). |
'ORDER BY moyenne_votes'; |
$requeteLiaisons .= $this->gestionBdd->getLimitSql(); |
|
return $this->bdd->recupererTous($requeteLiaisons); |
} |
|
227,6 → 228,8 |
* @param $liaisons les liaisons de la table del_obs_images |
* */ |
private function chargerImage($liaisons) { |
|
//echo '<pre>'.print_r($liaisons,true).'</pre>';exit; |
$images = array(); |
foreach ($liaisons as $liaison) { |
$idObs = $liaison['id_observation']; |
234,6 → 237,7 |
// On enregistre l'ID de l'obs pour n'effectuer qu'une seule requête par la suite |
$this->obsIds[] = $idObs; |
$index = $liaison['id_image'].'-'.$liaison['id_observation']; |
$this->indexImagesIds[$idImage] = $index; |
$images[$index] = array( |
'id_image' => $idImage, |
'id_observation' => $idObs, |
244,7 → 248,9 |
'determination.nn' => $liaison['nom_ret_nn'], |
'determination.nt' => $liaison['nt'], |
'date_observation' => $liaison['date_observation'], |
'localite' => $this->formaterLieu($liaison) |
'localite' => $this->formaterLieu($liaison), |
'mots_cles_image_cel' => $this->formaterMotsClesCel($liaison['mots_cles_texte_image']), |
'mots_cles_image_del' => "" |
); |
} |
return $images; |
270,8 → 276,14 |
') '. |
'ORDER BY ce_proposition'; |
|
$requeteMotsCles = 'SELECT tag, ce_image '. |
'FROM del_image_tag '. |
'WHERE ce_image IN ('.implode(',', array_keys($this->indexImagesIds)).') '. |
'AND actif = 1 '; |
|
$resultatsPropositions = $this->bdd->recupererTous($requetePropositions); |
$resultatsVotes = $this->bdd->recupererTous($requeteVotes); |
$resultatsMotsCles = $this->bdd->recupererTous($requeteMotsCles); |
|
$propositions = array(); |
$votes = array(); |
305,6 → 317,15 |
} |
} |
|
foreach ($resultatsMotsCles as $motCle) { |
$tag = $motCle['tag']; |
$index = $this->indexImagesIds[$motCle['ce_image']]; |
if($images[$index]['mots_cles_image_del'] != "") { |
$tag = ",".$tag; |
} |
$images[$index]['mots_cles_image_del'] .= $tag ; |
} |
|
foreach ($images as $id => $image) { |
if ($this->doitRemplacerObservationParProposition($propositions, $image)) { |
$id_obs = $image['id_observation']; |
314,8 → 335,10 |
$images[$id]['determination.nt'] = $propositions[$id_obs]['nt']; |
} |
|
if(isset($images[$id]['determination.nn'])) { |
$images[$id]['url_fiche_eflore'] = $this->formaterUrlFicheEflore($images[$id]['determination.nn']); |
} |
} |
|
return $images; |
} |
332,7 → 355,20 |
/*------------------------------------------------------------------------------- |
FORMATER ET METTRE EN FORME |
--------------------------------------------------------------------------------*/ |
/** |
* Formater les mots clés du cel en n'affichant que ceux faisant partie |
* d'une liste définie dans le fichier de configuration |
* @param $chaineMotCleCel la chaine de mots clés du cel |
* @return string la chaine filtrée |
* */ |
private function formaterMotsClesCel($chaineMotCleCel) { |
$tabMotsClesCel = explode(',', $chaineMotCleCel); |
$chaineMotsClesAffiches = $this->conteneur->getParametre('mots_cles_cel_affiches'); |
$tabMotsClesAffiches = explode(',',$chaineMotsClesAffiches); |
|
return implode(',', array_intersect($tabMotsClesAffiches, $tabMotsClesCel)); |
} |
|
/** |
* Formater une observation depuis une ligne liaison |
* @param $liaison liaison issue de la recherche |