Subversion Repositories eFlore/Applications.del

Compare Revisions

Ignore whitespace Rev 1167 → Rev 1168

/trunk/services/modules/0.1/determinations/ListeImagesDeterminationsProbables.php
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();
304,7 → 316,16
$proposition : $propositions[$id_obs];
}
}
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,7 → 335,9
$images[$id]['determination.nt'] = $propositions[$id_obs]['nt'];
}
$images[$id]['url_fiche_eflore'] = $this->formaterUrlFicheEflore($images[$id]['determination.nn']);
if(isset($images[$id]['determination.nn'])) {
$images[$id]['url_fiche_eflore'] = $this->formaterUrlFicheEflore($images[$id]['determination.nn']);
}
}
return $images;
332,6 → 355,19
/*-------------------------------------------------------------------------------
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