247,7 → 247,7 |
|
private function creerDescription($donnees, $item) { |
$methode = 'creerDescription'.$this->service; |
$methode = (method_exists($this, $methode)) ? $methode : 'creerDescriptionSimple'; |
$methode = (method_exists($this, $methode)) ? $methode : 'creerDescriptionComplet'; |
$description = $this->$methode($donnees, $item); |
$description = $this->nettoyerTexte($description); |
return $description; |
317,42 → 317,157 |
|
private function getServiceComplet() { |
// Construction de la requête |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, ci_id_image, ci_nom_original, ci_meta_date_ajout, ci_meta_user_comment, ci_note_image '. |
'FROM cel_obs_images AS coi '. |
'LEFT JOIN cel_inventory AS ci '. |
'ON (coi.coi_ce_observation = ci.ordre AND coi.coi_ce_utilisateur = ci.identifiant) '. |
'LEFT JOIN cel_images AS cim '. |
'ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '. |
'WHERE ci.transmission = 1 '. |
' AND ci.identifiant = cim.ci_ce_utilisateur '. |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '. |
' ci_id_image, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '. |
'FROM cel_images AS cim '. |
' LEFT JOIN cel_obs_images AS coi '. |
' ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '. |
' LEFT JOIN cel_inventory AS ci '. |
' ON (coi.coi_ce_observation = ci.ordre AND coi.coi_ce_utilisateur = ci.identifiant) '. |
(($this->etreFluxAdmin()) ? '' : 'WHERE ci.transmission = 1 '). |
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'ci_meta_date_ajout DESC').' '. |
"LIMIT $this->start, $this->limit "; |
|
$elements = $this->executerRequete($requete); |
|
|
// Création du contenu |
$contenu = $this->executerService($elements); |
if ($elements != false && count($elements) > 0) { |
$contenu = $this->executerService($elements); |
} else { |
$this->messages[] = "Aucune image disponible."; |
} |
|
return $contenu; |
} |
|
private function creerDescriptionComplet($donnees, $item) { |
$id_img = $donnees['ci_id_image']; |
$id_obs = $donnees['id']; |
$url_img = $this->getUrlImage($donnees['ci_id_image'], 'M'); |
$description .= '<style>.champ{color:grey} img{float:left;padding:0 20px 0 0;}</style>'; |
$description .= '<img src="'.$url_img.'" alt="'.$donnees['ci_nom_original'].'" />'; |
$description .= '<ul>'; |
$description .= '<li>'."Image liée à l'observation ".$donnees['id'].'</li>'; |
$description .= '<li>'.'<span class="champ">Importée le :</span> '.$item['date_maj_simple'].'</li>'; |
$description .= '<li>'.'<span class="champ">Nom du fichier :</span> '.$donnees['ci_nom_original'].'</li>'; |
$description .= '<li>'.'<span class="champ">Note qualité image :</span> '.($donnees['ci_note_image'] +1).'/5</li>'; |
// TODO :traiter le problème du champ commentaire. |
//$description .= '<li>'.'<span class="champ">Commentaire :</span> '.$donnees['ci_meta_user_comment'].'</li>'; |
$auteur = $this->creerAuteur($donnees['identifiant'], $this->etreFluxAdmin()); |
$mots_cles_obs = $this->decoderMotsClesObs($donnees['identifiant'], $donnees['mots_cles']); |
$mots_cles_image = $this->decoderMotsClesImg($donnees['identifiant'], $donnees['ci_meta_mots_cles']); |
$lieu = $donnees['location'].' ('.$donnees['id_location'].') > '.$donnees['lieudit'].' > '.$donnees['station']; |
$coordonnees = ($this->etreNull($donnees['coord_x']) && $this->etreNull($donnees['coord_y'])) ? '' : $donnees['coord_x'].'/'.$donnees['coord_y']; |
$date_observation = $this->formaterDate($donnees['date_observation'], '%A %d %B %Y'); |
$date_transmission = $this->formaterDate($donnees['date_transmission']); |
$date_modification = $this->formaterDate($donnees['date_modification']); |
$date_creation = $this->formaterDate($donnees['date_creation']); |
$transmission = $donnees['transmission'] == 1 ? "oui ($date_transmission)" : 'non'; |
|
$description .= '<li>'.'<span class="champ">Nom saisi :</span> '.$donnees['nom_sel'].'</li>'; |
$description .= '<li>'.'<span class="champ">Nom retenu :</span> '.$donnees['nom_ret'].'</li>'; |
$description .= '<li>'.'<span class="champ">Observée le :</span> '.strftime('%A %d %B %Y', strtotime($donnees['date_observation'])).'</li>'; |
$description .= '<li>'.'<span class="champ">Lieu :</span> '.$donnees['location'].' ('.$donnees['id_location'].') '.$donnees['station'].' '.$donnees['lieudit'].'</li>'; |
$description .= '</ul>'; |
$description = '<style>.champ{color:grey} .gauche{float:left;padding:0 20px 0 0;} ul{list-style-type:none;padding:0;}</style>'. |
'<h2>'."Image #$id_img liée à l'observation #$id_obs".'</h2>'. |
'<img class="gauche" src="'.$url_img.'" alt="'.$donnees['ci_nom_original'].'" />'. |
'<div class="gauche">'. |
'<h3>'.'Image'.'</h3>'. |
'<ul>'. |
'<li>'.'<span class="champ">Importée le :</span> '.$item['date_maj_simple'].'</li>'. |
'<li>'.'<span class="champ">Par :</span> '. |
(($this->etreFluxAdmin()) ? '<a href="mailto:'.$auteur.'">'.$auteur.'</a>' : $auteur). |
'</li>'. |
'<li>'.'<span class="champ">Nom du fichier :</span> '.$donnees['ci_nom_original'].'</li>'. |
'<li>'.'<span class="champ">Note qualité :</span> '.($donnees['ci_note_image'] +1).'/5</li>'. |
'<li>'.'<span class="champ">Commentaires :</span> '.$donnees['ci_meta_comment'].'</li>'. |
'<li>'.'<span class="champ">Mots-clés :</span> '.implode(', ', $mots_cles_image).'</li>'. |
'</ul>'. |
'</div>'. |
// TODO : ajouter le champ commentaire EXIF. |
'<div class="gauche">'. |
'<h3>'.'Observation'.'</h3>'. |
'<ul>'. |
'<li>'.'<span class="champ">Famille :</span> '.$donnees['famille'].'</li>'. |
'<li>'.'<span class="champ">Nom saisi :</span> '.$donnees['nom_sel'].'</li>'. |
'<li>'.'<span class="champ">Nom retenu :</span> '.$donnees['nom_ret'].'</li>'. |
'<li>'.'<span class="champ">Observée le :</span> '.$date_observation.'</li>'. |
'<li>'.'<span class="champ">Lieu :</span> '.$lieu.'</li>'. |
'<li>'.'<span class="champ">Milieu :</span> '.$donnees['milieu'].'</li>'. |
(($this->etreFluxAdmin()) ? '<li><span class="champ">Coordonnées (Lat/Long) :</span> '.$coordonnees.'</li>' : ''). |
'<li>'.'<span class="champ">Commentaire :</span> '.$donnees['commentaire'].'</li>'. |
'<li>'.'<span class="champ">Mots-clés :</span> '.implode(', ', $mots_cles_obs).'</li>'. |
(($this->etreFluxAdmin()) ? '<li><span class="champ">Transmis (= public) :</span> '.$transmission.'</li>' : ''). |
'<li><span class="champ">Modifiée le :</span> '.$date_modification.'</li>'. |
'<li><span class="champ">Créée le :</span> '.$date_creation.'</li>'. |
'</ul>'. |
'</div>'; |
$description = $this->nettoyerTexte($description); |
return $description; |
} |
|
private function getServiceParMotsCles() { |
$contenu = ''; |
$mot_cle = $this->parametres[0]; |
|
if (isset($mot_cle)) { |
$mot_cle_encode = $this->bdd->quote($this->encoderMotCle($mot_cle)); |
|
// Construction de la requête |
$requete = 'SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire '. |
'FROM cel_mots_cles_images '. |
"WHERE cmc_id_mot_cle_general = $mot_cle_encode "; |
$elements = $this->executerRequete($requete); |
|
if ($elements != false && count($elements) > 0) { |
// Pré-construction du where de la requête |
$tpl_where = '(ci_meta_mots_cles LIKE "%%%s%%" AND ci_ce_utilisateur = %s )'; |
$requete_where = array(); |
foreach ($elements as $occurence) { |
$requete_where[] = sprintf($tpl_where, $occurence['cmc_id_mot_cle_utilisateur'], $this->bdd->quote($occurence['cmc_id_proprietaire'])); |
} |
|
// Construction de la requête |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '. |
' ci_id_image, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '. |
'FROM cel_images AS cim '. |
' LEFT JOIN cel_obs_images AS coi '. |
' ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '. |
' LEFT JOIN cel_inventory AS ci '. |
' ON (coi.coi_ce_observation = ci.ordre AND coi.coi_ce_utilisateur = ci.identifiant) '. |
'WHERE '.implode(" \nOR ", $requete_where).' '. |
' '.(($this->etreFluxAdmin()) ? '' : 'AND ci.transmission = 1').' '. |
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'ci_meta_date_ajout DESC').' '. |
"LIMIT $this->start, $this->limit "; |
$elements = $this->executerRequete($requete); |
|
// Création du contenu |
$contenu = $this->executerService($elements); |
} else { |
$this->messages[] = "Aucune image ne correspond à ce mot clé."; |
} |
} else { |
$this->messages[] = "Le service demandé nécessite d'indiquer un mot-clé en dernier paramêtre."; |
} |
return $contenu; |
} |
|
private function getServiceParCommune() { |
$contenu = ''; |
$commune = $this->parametres[0]; |
if (isset($commune)) { |
$commune = $this->bdd->quote($commune); |
|
// Construction de la requête |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '. |
' ci_id_image, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '. |
'FROM cel_images AS cim '. |
' LEFT JOIN cel_obs_images AS coi '. |
' ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '. |
' LEFT JOIN cel_inventory AS ci '. |
' ON (coi.coi_ce_observation = ci.ordre AND coi.coi_ce_utilisateur = ci.identifiant) '. |
"WHERE ci.location = $commune ". |
' '.(($this->etreFluxAdmin()) ? '' : 'AND ci.transmission = 1').' '. |
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'ci_meta_date_ajout DESC').' '. |
"LIMIT $this->start,$this->limit "; |
$elements = $this->executerRequete($requete); |
|
// Création du contenu |
if ($elements != false && count($elements) > 0) { |
$contenu = $this->executerService($elements); |
} else { |
$this->messages[] = "Aucune image ne correspond à cette commune."; |
} |
} else { |
$this->messages[] = "Le service demandé nécessite d'indiquer une nom de commune en dernier paramêtre."; |
} |
return $contenu; |
} |
} |