Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 527 → Rev 528

/trunk/jrest/services/CelSyndicationImage.php
10,8 → 10,10
* @version $Id$
* @copyright 2010
*/
// TODO : résoudre le problème des images liées à plusieurs obs. Cela créé plusieurs item avec le même id pour atom...
class CelSyndicationImage extends Cel {
private $parametres_origines = null;
private $format = null;
private $service = null;
private $squelette = null;
25,6 → 27,7
*/
public function getElement($params = array()) {
// Initialisation des variables
$this->parametres_origines = $params;
$info = array();
$contenu = '';
82,6 → 85,12
"Ce flux fournit l'url des nouvelles images du CEL liées à une observation.");
$this->setFlux('complet', 'Nouvelles images liées à une observation dans le CEL (détails)',
"Ce flux fournit les informations sur les nouvelles images du CEL liées à une observation.");
$this->setFlux('par-mots-cles', 'Flux de syndication des nouvelles images liées à une observation publique du CEL filtrées par mots clés',
"Ce flux fournit des informations sur les nouvelles images du CEL liées à une observation du CEL filtrées par mots-clés. Il nécessite d'être
paramétré en indiquant en dernier position de l'url le mot-clé à rechercher.");
$this->setFlux('par-commune','Flux de syndication des nouvelles images liées à une observation publique du CEL filtrées par commune',
"Ce flux fournit des informations sur les nouvelles images liées à une observation du CEL filtrées par commune. Il nécessite d'être
paramétré en indiquant en dernier position de l'url le nom de la commune à rechercher.");
}
private function setFlux($nom, $titre, $description) {
117,7 → 126,7
}
private function getUrlServiceBase() {
$url_service = $this->getUrlBase().$this->service.'/'.$this->format;
$url_service = $this->getUrlBase().implode('/', $this->parametres_origines);
return $url_service;
}
151,6 → 160,13
}
return $json;
}
private function creerCategorie($element) {
$categorie = '';
$categorie = 'Image';
$categorie = $this->nettoyerTexte($categorie);
return $categorie;
}
private function etreFluxAdmin() {
return ($_GET['admin'] == '1') ? true : false;
158,17 → 174,8
private function creerUrlService() {
$url_service = $this->getUrlServiceBase();
if (isset($this->start) || isset($this->limit)) {
$arguments = array();
if (isset($this->start) && isset($_GET['start'])) {
$arguments[] = 'start='.$this->start;
}
if (isset($this->limit) && isset($_GET['limit'])) {
$arguments[] = 'limit='.$this->limit;
}
if (count($arguments) > 0) {
$url_service .= '?'.implode('&', $arguments);
}
if (count($_GET) > 0) {
$url_service .= '?'.implode('&', $_GET);
}
return $url_service;
}
219,7 → 226,7
private function construireDonneesCommunesAuxItems($info) {
$item = array();
$date_modification_timestamp = strtotime($info['ci_meta_date_ajout']);
$date_modification_timestamp = $this->convertirDateHeureMysqlEnTimestamp($info['ci_meta_date_ajout']);
$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);
227,13 → 234,15
$item['titre'] = $this->creerTitre($info);
$item['guid'] = $this->creerGuidItem($info);
$item['lien'] = $this->creerLienItem($info);
$item['description'] = $this->creerDescription($info, $item);
$item['description_encodee'] = htmlspecialchars($item['description']);
$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->creerAuteur($info['identifiant'], $this->etreFluxAdmin());
return $item;
}
private function creerGuidItem($element) {
$guid = sprintf($this->config['settings']['guidImgTpl'], $element['ci_id_image']);
$guid = $this->getUrlImage($element['ci_id_image']);
return $guid;
}
341,14 → 350,24
}
 
private function creerDescriptionComplet($donnees, $item) {
$auteur = $this->creerAuteur($donnees['identifiant'], $this->etreFluxAdmin());
$id_img = $donnees['ci_id_image'];
$nom_fichier = $donnees['ci_nom_original'];
$url_img = $this->getUrlImage($donnees['ci_id_image'], 'M');
$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_obs = $donnees['id'];
$url_img = $this->getUrlImage($donnees['ci_id_image'], 'M');
$auteur = $this->creerAuteur($donnees['identifiant'], $this->etreFluxAdmin());
$famille = $donnees['famille'];
$nom_saisi = $donnees['nom_sel'];
$nom_retenu = $donnees['nom_ret'];
$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'];
$lieu = $donnees['location'].' ('.$donnees['id_location'].') > '.$donnees['lieudit'].' > '.$donnees['station'];
$milieu = $donnees['milieu'];
$coordonnees = ($this->etreNull($donnees['coord_x']) && $this->etreNull($donnees['coord_y'])) ? '' : $donnees['coord_x'].'/'.$donnees['coord_y'];
$commentaire_obs = $donnees['commentaire'];
$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']);
357,7 → 376,7
$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'].'" />'.
'<img class="gauche" src="'.$url_img.'" alt="'.$nom_fichier.'" />'.
'<div class="gauche">'.
'<h3>'.'Image'.'</h3>'.
'<ul>'.
365,9 → 384,9
'<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">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>'.
'</ul>'.
'</div>'.
375,14 → 394,14
'<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">Famille :</span> '.$famille.'</li>'.
'<li>'.'<span class="champ">Nom saisi :</span> '.$nom_saisi.'</li>'.
'<li>'.'<span class="champ">Nom retenu :</span> '.$nom_retenu.'</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>'.
'<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> '.$donnees['commentaire'].'</li>'.
'<li>'.'<span class="champ">Commentaire :</span> '.$commentaire_obs.'</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>'.