Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 1328 → Rev 1329

/trunk/jrest/services/CelSyndicationImage.php
26,9 → 26,9
private $format_image = 'XL';
private $criteres = array(
'utilisateur' => 'c.id_utilisateur',
'utilisateur' => 'c.courriel_utilisateur',
'commune' => 'b.zone_geo',
'dept' => 'b.id_zone_geo',
'dept' => 'b.ce_zone_geo',
'taxon' => 'b.nom_ret',
'commentaire' => 'c.commentaire',
'date' => 'c.date_prise_de_vue',
201,6 → 201,7
}
protected function executerRequete($requete, $retour = 'All', $mode = PDO::FETCH_ASSOC) {
$infos = null;
try {
$infos = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC);
if ($infos === false) {
216,7 → 217,7
// Prétraitement des données
$donnees = $this->construireDonneesCommunesAuFlux($elements);
foreach ($elements as $element) {
$identifiants[$element['ci_ce_utilisateur']] = $element['ci_ce_utilisateur'];
$identifiants[$element['ce_utilisateur']] = $element['ce_utilisateur'];
}
$this->auteurs = $this->creerAuteurs($identifiants);
foreach ($elements as $element) {
233,11 → 234,11
$donnees = $this->getFlux($this->service);
$donnees['guid'] = $this->getUrlServiceBase();
$donnees['lien_service'] = $this->creerUrlService();
$donnees['lien_cel'] = (isset($infos['num_nom_sel'])) ?
sprintf($this->config['settings']['efloreUrlTpl'], $infos['num_nom_sel'], 'illustration') : '';
$donnees['lien_cel'] = (isset($infos['nom_sel_nn'])) ?
sprintf($this->config['settings']['efloreUrlTpl'], $infos['nom_sel_nn'], 'illustration') : '';
$donnees['editeur'] = $this->config['settings']['editeur'];
$derniere_info_en_date = reset($infos);
$date_modification_timestamp = strtotime($derniere_info_en_date['ci_meta_date_ajout']);
$date_modification_timestamp = strtotime($derniere_info_en_date['date_creation']);
$donnees['date_maj_RSS'] = date(DATE_RSS, $date_modification_timestamp);
$donnees['date_maj_ATOM'] = date(DATE_ATOM, $date_modification_timestamp);
$donnees['date_maj_W3C'] = date(DATE_W3C, $date_modification_timestamp);
249,7 → 250,7
private function construireDonneesCommunesAuxItems($info) {
$item = array();
$date_modification_timestamp = $this->convertirDateHeureMysqlEnTimestamp($info['ci_meta_date_ajout']);
$date_modification_timestamp = $this->convertirDateHeureMysqlEnTimestamp($info['date_creation']);
$item['date_maj_simple'] = strftime('%A %d %B %Y à %H:%M', $date_modification_timestamp);
$item['date_maj_RSS'] = date(DATE_RSS, $date_modification_timestamp);
$item['date_maj_ATOM'] = date(DATE_ATOM, $date_modification_timestamp);
260,12 → 261,12
$item['categorie'] = $this->creerCategorie($item);
$item['description'] = $this->creerDescription($this->protegerCaracteresHtmlDansChamps($info), $item);
$item['description_encodee'] = htmlspecialchars($this->creerDescription($info, $item));
$item['modifier_par'] = $this->auteurs[$info['ci_ce_utilisateur']];
$item['modifier_par'] = $this->auteurs[$info['ce_utilisateur']];
return $item;
}
private function creerGuidItem($element) {
$guid = $this->getUrlImage($element['ci_id_image']);
$guid = $this->getUrlImage($element['id_image']);
return $guid;
}
286,12 → 287,13
}
 
private function creerLienItem($element) {
if ($this->etreNull($element['id'])) {
 
if ($this->etreNull($element['id_observation'])) {
// Lien vers image grand format
$lien = $this->getUrlImage($element['ci_id_image'], $this->format_image);
$lien = $this->getUrlImage($element['id_image'], $this->format_image);
} else {
// Lien vers fiche eFlore onglet Illustration
$lien = sprintf($this->config['settings']['efloreUrlTpl'], $element['num_nom_sel'], 'illustration');
$lien = sprintf($this->config['settings']['efloreUrlTpl'], $element['nom_sel_nn'], 'illustration');
}
return $lien;
}
326,17 → 328,18
// Construction de la requête
$requete = (isset($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '.
' ci_id_image, ci_ce_utilisateur, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '.
' cim.id_image, cim.ce_utilisateur, nom_original, cim.date_creation, cim.mots_cles_texte as mots_cles_texte_images,
ci.mots_cles_texte as mots_cles_texte_images_obs, cim.commentaire, note_qualite '.
'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_obs AS ci '.
'ON (coi.id_observation = ci.id_observation) '.
'LEFT JOIN cel_images AS cim '.
'ON (coi.coi_ce_image = cim.ci_id_image AND coi.coi_ce_utilisateur = cim.ci_ce_utilisateur) '.
'ON (coi.id_image = cim.id_image) '.
'WHERE ci.transmission = 1 '.
' AND ci.identifiant = cim.ci_ce_utilisateur '.
'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : 'ci_meta_date_ajout DESC').' '.
' AND ci.ce_utilisateur = cim.ce_utilisateur '.
'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : 'cim.date_creation DESC').' '.
"LIMIT $this->start, $this->limit ";
 
$elements = $this->executerRequete($requete);
// Création du contenu
345,30 → 348,32
}
private function creerTitreSimple($element) {
if ($this->etreNull($element['nom_sel']) && $this->etreNull($element['num_nom_sel'])) {
$titre = "Ajout d'une photo par ".$this->auteurs[$element['ci_ce_utilisateur']];
if ($this->etreNull($element['nom_sel']) && $this->etreNull($element['nom_sel_nn'])) {
$titre = "Ajout d'une photo par ".$this->auteurs[$element['ce_utilisateur']];
} else {
$titre = $element['nom_sel'].' [nn'.$element['num_nom_sel'].'] par '.$this->auteurs[$element['ci_ce_utilisateur']];
$titre = $element['nom_sel'].' [nn'.$element['nom_sel_nn'].'] par '.$element['prenom_utilisateur'].' '.$element['nom_utilisateur'];
}
return $titre;
}
private function creerDescriptionSimple($donnees, $item) {
$description = sprintf($this->config['settings']['efloreUrlTpl'], urlencode($donnees['num_nom_sel']), 'illustration');
$description = sprintf($this->config['settings']['efloreUrlTpl'], urlencode($donnees['nom_sel_nn']), 'illustration');
return $description;
}
private function getServiceComplet() {
// Construction de la requête
$requete = (isset($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '.
' ci_id_image, ci_ce_utilisateur, ci_nom_original, ci_meta_date_ajout, ci_meta_mots_cles, ci_meta_comment, ci_note_image '.
' cim.id_image, ci.ce_utilisateur, nom_original, cim.date_creation, cim.mots_cles_texte as mots_cles_texte_images, '.
' ci.mots_cles_texte as mots_cles_texte_obs, cim.commentaire, note_qualite '.
'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) '.
' ON (coi.id_image = cim.id_image) '.
' LEFT JOIN cel_obs AS ci '.
' ON (coi.id_observation = ci.id_observation) '.
(($this->etreFluxAdmin()) ? '' : 'WHERE ci.transmission = 1 ').
'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : 'ci_meta_date_ajout DESC').' '.
'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : 'cim.date_creation DESC').' '.
"LIMIT $this->start, $this->limit ";
$elements = $this->executerRequete($requete);
378,6 → 383,7
$contenu = $this->executerService($elements);
} else {
$this->messages[] = "Aucune image disponible.";
$contenu = array();
}
 
return $contenu;
389,13 → 395,13
if (isset($_GET['limite'])) $this->limite = $_GET['limite'];
// Construction de la requête
$requete = 'SELECT * '.
$requete = 'SELECT *, b.mots_cles_texte as mots_cles_texte_obs, c.mots_cles_texte as mots_cles_texte_images '.
'FROM cel_obs_images AS a '.
' INNER JOIN cel_inventory AS b '.
' ON (a.coi_ce_observation = b.ordre AND a.coi_ce_utilisateur = b.identifiant) '.
' INNER JOIN cel_obs AS b '.
' ON (a.id_observation = b.id_observation) '.
' INNER JOIN cel_images AS c '.
' ON (a.coi_ce_image = c.ci_id_image AND a.coi_ce_utilisateur = c.ci_ce_utilisateur) '.
'WHERE b.identifiant = c.ci_ce_utilisateur '.
' ON (a.id_image = c.id_image) '.
'WHERE b.ce_utilisateur = c.ce_utilisateur '.
(($this->etreFluxAdmin()) ? '' : 'AND b.transmission = 1 ').
' AND ';
411,7 → 417,8
$requete = str_replace(' AND ) ',' ', $requete);
$requete = rtrim($requete, 'AND ');
$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby :
'c.ci_meta_date_ajout DESC').' '."LIMIT $this->start,$this->limit ";
'c.date_creation DESC').' '."LIMIT $this->start,$this->limit ";
 
$elements = $this->executerRequete($requete);
 
// Création du contenu
432,18 → 439,20
switch ($nom_valeur[0]) {
case "ci_limite" : $this->limite = $this->bdd->quote($nom_valeur[1]); break;
case "c.ci_numero_page" : $this->limite*$this->bdd->quote($nom_valeur[1]); break;
case "c.ci_meta_comment" : $mots_comment_liste = explode(" " , $nom_valeur[1]);
case "c.commentaire" : $mots_comment_liste = explode(" " , $nom_valeur[1]);
foreach($mots_comment_liste as $mot_comment) {
$mot_comment = trim($mot_comment) ;
$requete .= $nom_valeur[0].' LIKE '.$this->bdd->quote('%'.$mot_comment.'%').' AND ';
}
break;
case "c.ci_meta_date" :
case "c.date_prise_de_vue" :
$nom_valeur[1] = str_replace('/', '-', $nom_valeur[1]);
if (preg_match('/(^[0-9]{2})-([0-9]{2})-([0-9]{4}$)/', $nom_valeur[1], $matches)) {
$nom_valeur[1] = $matches[3].'-'.$matches[2].'-'.$matches[1];
}
$requete .= $nom_valeur[0].'='.$this->bdd->quote($nom_valeur[1]).' AND '; break;
$requete .= $nom_valeur[0].' LIKE '.$this->bdd->quote($nom_valeur[1]."%").' AND '; break;
case "b.ce_zone_geo" :
$requete .= ' ('.$nom_valeur[0].' LIKE "%INSEE-C:'.$nom_valeur[1].'%") AND '; break;
case "b.nom_ret" :
if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null';
$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR b.nom_sel LIKE "%'.
459,176 → 468,45
}
private function creerSousRequeteMotsCles($mot_cle) {
$requete = '';
if (preg_match('/.*OU.*/', $mot_cle)) {
$requete = $this->creerSousRequeteMotsClesOu($mot_cle);
$mots_cles_tab = explode('OU',$mot_cle);
foreach($mots_cles_tab as $mot_cle_item) {
$requete .= '(c.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') OR ';
}
$requete = '('.rtrim($requete,'OR ').')';
} else if (preg_match('/.*ET.*/', $mot_cle)) {
$requete = $this->creerSousRequeteMotsClesEt($mot_cle);
} else {
// Construction de la requête
$prerequete = "SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_images WHERE ".
'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle($mot_cle));
$elements = $this->executerRequete($prerequete);
if ($elements != false && count($elements) > 0) {
$requete = ' ( ';
foreach ($elements as $occurence) {
$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
}
} else {
$requete = ' (ci_meta_mots_cles like "inexistant" OR';
$mots_cles_tab = explode('ET',$mot_cle);
foreach($mots_cles_tab as $mot_cle_item) {
$requete .= '(c.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') AND ';
}
}
$requete = rtrim($requete,' OR ').' ) AND ';
return $requete;
}
private function creerSousRequeteMotsClesOu($mot_cle) {
$tab_mots_cles = explode('OU', $mot_cle);
$where = '';
foreach ($tab_mots_cles as $mot) {
$where .= 'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle(trim($mot))).' OR ';
}
$where = rtrim($where,' OR ');
// Construction de la requête
$prerequete = "SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_images WHERE $where ";
$elements = $this->executerRequete($prerequete);//print_r($elements);
if ($elements != false && count($elements) > 0) {
$requete = ' ( ';
foreach ($elements as $occurence) {
$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '.
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
}
$requete = '('.rtrim($requete, 'AND ').')';
} else {
$requete = ' (ci_meta_mots_cles like "inexistant" OR';
$requete = "(c.mots_cles_texte LIKE ".$this->proteger('%'.$mot_cle.'%').') AND';
}
return $requete;
}
private function creerSousRequeteMotsClesEt($mot_cle) {
$where = '';
$champs = 'a.cmc_id_proprietaire , ';
$table = '';
$i = "a"; $j = "a";
$tab_mots_cles = explode("ET", $mot_cle);
foreach ($tab_mots_cles as $mot) {
$champs .= "$i.cmc_id_mot_cle_utilisateur as $i , ";
$table .= "cel_mots_cles_images $i , ";
$where .= "$i.cmc_id_mot_cle_general = ".$this->bdd->quote($this->encoderMotCle(trim($mot))).' AND ';
if ($i !== "a") {
$where .= " $i.cmc_id_proprietaire = ".$j.".cmc_id_proprietaire AND ";
$j++;
}
$i++;
}
$where = rtrim($where,' AND ');
$champs = rtrim($champs,' , ');
$table = rtrim($table,' , ');
// Construction de la requête
$prerequete = "SELECT $champs FROM $table WHERE $where ";
$elements = $this->executerRequete($prerequete);//print_r($elements);
if ($elements != false && count($elements) > 0) {
$requete = ' ( ';
foreach ($elements as $occurence) {
$requete .= ' (';
for ($j = 'a'; $j < $i; $j++) {
$requete .= 'ci_meta_mots_cles like "%'.$occurence[$j].'%" AND ';
}
$requete .= ' ci_ce_utilisateur = '.$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
}
} else {
$requete = ' (ci_meta_mots_cles like "inexistant" OR';
}
return $requete;
}
private function creerSousRequeteProjet($mot_cle) {
$requete = 'mots_cles like "inexistant" OR';
$requete = '';
if (preg_match('/.*OU.*/', $mot_cle)) {
$requete = $this->creerSousRequeteProjetOu($mot_cle);
$mots_cles_tab = explode('OU',$mot_cle);
foreach($mots_cles_tab as $mot_cle_item) {
$requete .= '(b.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') OR ';
}
$requete = '('.rtrim($requete,'OR ').')';
} else if (preg_match('/.*ET.*/', $mot_cle)) {
$requete = $this->creerSousRequeteProjetEt($mot_cle);
$mots_cles_tab = explode('ET',$mot_cle);
foreach($mots_cles_tab as $mot_cle_item) {
$requete .= '(b.mots_cles_texte LIKE '.$this->proteger('%'.$mot_cle_item.'%').') AND ';
}
$requete = '('.rtrim($requete, 'AND ').')';
} else {
// Construction de la requête
$prerequete = 'SELECT * '.
'FROM cel_mots_cles_obs '.
'WHERE cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle($mot_cle));
$elements = $this->executerRequete($prerequete);
if ($elements != false && count($elements) > 0) {
$requete = '';
foreach ($elements as $occurence) {
$requete .= '(mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND identifiant = '.
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
}
}
$requete = "(b.mots_cles_texte LIKE ".$this->proteger('%'.$mot_cle.'%').') AND';
}
$requete = rtrim($requete,' OR ').' AND ';
return $requete;
}
private function creerSousRequeteProjetOu($mot_cle) {
$requete = 'mots_cles like "inexistant" OR';
$tab_mots_cles = explode('OU', $mot_cle);
$where = '';
foreach ($tab_mots_cles as $mot) {
$where .= 'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle(trim($mot))).' OR ';
}
$where = rtrim($where,' OR ');
// Construction de la requête
$prerequete = "SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_obs WHERE $where ";
$elements = $this->executerRequete($prerequete);
if ($elements != false && count($elements) > 0) {
$requete = '';
foreach ($elements as $occurence) {
$requete .= '(mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND identifiant = '.
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
}
}
return $requete;
}
private function creerSousRequeteProjetEt($mot_cle) {
$requete = 'mots_cles like "inexistant" OR';
$where = '';
$champs = 'a.cmc_id_proprietaire , ';
$table = '';
$i = "a"; $j = "a";
$tab_mots_cles = explode("ET", $mot_cle);
foreach ($tab_mots_cles as $mot) {
$champs .= "$i.cmc_id_mot_cle_utilisateur as $i , ";
$table .= "cel_mots_cles_obs $i , ";
$where .= "$i.cmc_id_mot_cle_general = ".$this->bdd->quote($this->encoderMotCle(trim($mot))).' AND ';
if ($i !== "a") {
$where .= " $i.cmc_id_proprietaire = ".$j.".cmc_id_proprietaire AND ";
$j++;
}
$i++;
}
$where = rtrim($where, ' AND ');
$champs = rtrim($champs, ' , ');
$table = rtrim($table, ' , ');
// Construction de la requête
$prerequete = "SELECT $champs FROM $table WHERE $where ";
$elements = $this->executerRequete($prerequete);//print_r($elements);
if ($elements != false && count($elements) > 0) {
$requete = '';
foreach ($elements as $occurence) {
$requete = ' (';
for ($j = 'a'; $j < $i; $j++) {
$requete .= 'mots_cles like "%'.$occurence[$j].'%" AND ';
}
$requete .= ' identifiant = '.$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR ';
}
}
return $requete;
}
private function creerSousRequeteRechercheGenerale($chaine_requete) {
$requete = '';
if (trim($chaine_requete) != '') {
639,11 → 517,17
' OR '.
'b.nom_sel LIKE "'.$chaine_requete.'%"'.
' OR '.
'b.location LIKE "'.$chaine_requete.'%" '.
'b.zone_geo LIKE "'.$chaine_requete.'%" '.
' OR '.
'b.id_location LIKE "'.$chaine_requete.'%" '.
'b.ce_zone_geo LIKE "INSEE-C:'.$chaine_requete.'%" '.
' OR '.
'c.ci_ce_utilisateur LIKE "'.$chaine_requete.'%" '.
'b.ce_zone_geo LIKE "'.$chaine_requete.'%" '.
' OR '.
'c.id_utilisateur LIKE "'.$chaine_requete.'%" '.
' OR '.
'b.mots_cles_texte LIKE "'.$chaine_requete.'%" '.
' OR '.
'c.mots_cles_texte LIKE "'.$chaine_requete.'%" '.
') ';
}
return $requete;
665,25 → 549,27
}
 
private function creerDescriptionComplet($donnees, $item) {
$auteur = $this->auteurs[$donnees['ci_ce_utilisateur']];
$auteur_mail = $donnees['ci_ce_utilisateur'];
$auteur = $donnees['prenom_utilisateur'].' '.$donnees['nom_utilisateur'];
$auteur_mail = $donnees['courriel_utilisateur'];
$id_img = $donnees['ci_id_image'];
$nom_fichier = $donnees['ci_nom_original'];
$url_img = $this->getUrlImage($donnees['ci_id_image'], 'CS');
$url_img_normale = $this->getUrlImage($donnees['ci_id_image'], 'XL');
$mots_cles_image = $this->decoderMotsClesImg($donnees['identifiant'], $donnees['ci_meta_mots_cles']);
$note = ($donnees['ci_note_image'] +1).'/5';
$commentaire_img = $donnees['ci_meta_comment'];
$id_img = $donnees['id_image'];
$nom_fichier = $donnees['nom_original'];
$url_img = $this->getUrlImage($donnees['id_image'], 'CS');
$url_img_normale = $this->getUrlImage($donnees['id_image'], 'XL');
//
$mots_cles_image = $donnees['mots_cles_texte_images'];
$note = ($donnees['note_qualite'] +1).'/5';
$commentaire_img = $donnees['commentaire'];
$id_obs = $donnees['id'];
$id_obs = $donnees['id_observation'];
$famille = $donnees['famille'];
$nom_saisi = $donnees['nom_sel'];
$nom_retenu = $donnees['nom_ret'];
$mots_cles_obs = $this->decoderMotsClesObs($donnees['identifiant'], $donnees['mots_cles']);
$lieu = $donnees['location'].' ('.$donnees['id_location'].') > '.$donnees['lieudit'].' > '.$donnees['station'];
//
$mots_cles_obs = $donnees['mots_cles_texte_obs'];
$lieu = $donnees['zone_geo'].' ('.$donnees['ce_zone_geo'].') > '.$donnees['lieudit'].' > '.$donnees['station'];
$milieu = $donnees['milieu'];
$coordonnees = ($this->etreNull($donnees['coord_x']) && $this->etreNull($donnees['coord_y'])) ? '' : $donnees['coord_x'].'/'.$donnees['coord_y'];
$coordonnees = ($this->etreNull($donnees['latitude']) && $this->etreNull($donnees['longitude'])) ? '' : $donnees['latitude'].'/'.$donnees['longitude'];
$commentaire_obs = $donnees['commentaire'];
$date_observation = $this->formaterDate($donnees['date_observation'], '%A %d %B %Y');
$date_transmission = $this->formaterDate($donnees['date_transmission']);
705,7 → 591,7
'<li>'.'<span class="champ">Nom du fichier :</span> '.$nom_fichier.'</li>'.
'<li>'.'<span class="champ">Note qualité :</span> '.$note.'</li>'.
'<li>'.'<span class="champ">Commentaires :</span> '.$commentaire_img.'</li>'.
'<li>'.'<span class="champ">Mots-clés :</span> '.implode(', ', $mots_cles_image).'</li>'.
'<li>'.'<span class="champ">Mots-clés :</span> '.$mots_cles_image.'</li>'.
'</ul>'.
'</div>';
// TODO : ajouter le champ commentaire EXIF.
722,7 → 608,7
'<li>'.'<span class="champ">Milieu :</span> '.$milieu.'</li>'.
(($this->etreFluxAdmin()) ? '<li><span class="champ">Coordonnées (Lat/Long) :</span> '.$coordonnees.'</li>' : '').
'<li>'.'<span class="champ">Commentaire :</span> '.$commentaire_obs.'</li>'.
'<li>'.'<span class="champ">Mots-clés :</span> '.implode(', ', $mots_cles_obs).'</li>'.
'<li>'.'<span class="champ">Mots-clés :</span> '.$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>'.
735,8 → 621,8
private function getServiceParMotsCles() {
$infos=array();
$infos[0]['num_nom_sel'] = '';
$infos[0]['ci_meta_date_ajout'] = '2011-06-28';
$infos[0]['nom_sel_nn'] = '';
$infos[0]['date_creation'] = '2011-06-28';
$donnees = $this->construireDonneesCommunesAuFlux($infos);
$donnees['items'][0]['guid'] = 0;
$donnees['items'][0]['description'] = 'Ce flux est devenu obsolète. Veuillez utiliser le flux '.
753,8 → 639,8
private function getServiceParCommune() {
$infos=array();
$infos[0]['num_nom_sel'] = '';
$infos[0]['ci_meta_date_ajout'] = '2011-06-28';
$infos[0]['nom_sel_nn'] = '';
$infos[0]['date_creation'] = '2011-06-28';
$donnees = $this->construireDonneesCommunesAuFlux($infos);
$donnees['items'][0]['guid'] = 0;
$donnees['items'][0]['description'] = 'Ce flux est devenu obsolète. Veuillez utiliser le flux '.