Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 527 → Rev 528

/trunk/jrest/services/CelSyndicationObservation.php
23,9 → 23,9
*/
class CelSyndicationObservation extends Cel {
private $parametres_origines = null;
private $format = null;
private $service = null;
public $parametres = null;
private $squelette = null;
private $squelette_dossier = null;
private $flux = array();
35,6 → 35,7
*/
public function getElement($params = array()) {
// Initialisation des variables
$this->parametres_origines = $params;
$info = array();
$contenu = '';
93,7 → 94,7
}
private function getUrlServiceBase() {
$url_service = $this->getUrlBase().$this->service.'/'.$this->format;
$url_service = $this->getUrlBase().implode('/', $this->parametres_origines);
return $url_service;
}
194,7 → 195,7
// Construction de la requête
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' * '.
'FROM cel_inventory '.
'WHERE transmission = 1 '.
(($this->etreFluxAdmin()) ? '' : 'WHERE transmission = 1 ').
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'date_modification DESC').' '.
"LIMIT $this->start,$this->limit ";
205,20 → 206,6
return $contenu;
}
private function getServicePourAdmin() {
// Construction de la requête
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' * '.
'FROM cel_inventory '.
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'date_modification DESC').' '.
"LIMIT $this->start,$this->limit ";
$elements = $this->executerRequete($requete);
// Création du contenu
$contenu = $this->executerService($elements);
return $contenu;
}
private function getServiceParMotsCles() {
$contenu = '';
$mot_cle = $this->parametres[0];
243,8 → 230,8
// Construction de la requête
$requete = 'SELECT * '.
'FROM cel_inventory '.
'WHERE transmission = 1 '.
'AND '.implode(" \nOR ", $requete_where).' '.
'WHERE '.implode(" \nOR ", $requete_where).' '.
' '.(($this->etreFluxAdmin()) ? '' : 'AND transmission = 1 ').
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'date_modification, date_creation DESC').' '.
"LIMIT $this->start,$this->limit ";
$elements = $this->executerRequete($requete);
269,8 → 256,8
// Construction de la requête
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' * '.
'FROM cel_inventory '.
'WHERE transmission = 1 '.
"AND location = $commune ".
"WHERE location = $commune ".
' '.(($this->etreFluxAdmin()) ? '' : 'AND transmission = 1 ').
'ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'date_modification DESC, location ASC').' '.
"LIMIT $this->start,$this->limit ";
322,7 → 309,7
private function construireDonneesCommunesAuxItems($observation) {
$item = array();
$date_modification_timestamp = strtotime($observation['date_modification']);
$date_modification_timestamp = $this->convertirDateHeureMysqlEnTimestamp($observation['date_modification']);
$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);
331,9 → 318,9
$item['titre'] = $this->creerTitre($observation);
$item['guid'] = $this->creerGuidItem($observation);
$item['lien'] = $this->creerLienItem($observation);
$item['description'] = $this->creerDescription($observation, $item);
$item['categorie'] = $this->creerCategorie($item);
$item['description_encodee'] = htmlspecialchars($item['description']);
$item['description'] = $this->creerDescription($this->protegerCaracteresHtmlDansChamps($observation), $item);
$item['description_encodee'] = htmlspecialchars($this->creerDescription($observation, $item));
$item['modifier_par'] = $this->creerAuteur($observation['identifiant'], $this->etreFluxAdmin());
return $item;
}
361,19 → 348,38
}
private function creerDescription($obs, $item) {
$id_obs = $donnees['id'];
$famille = $obs['famille'];
$nom_saisi = $obs['nom_sel'];
$nom_retenu = $obs['nom_ret'];
$auteur = $this->creerAuteur($obs['identifiant'], $this->etreFluxAdmin());
$mots_cles_obs = $this->decoderMotsClesObs($obs['identifiant'], $obs['mots_cles']);
$lien_correction = sprintf($this->config['settings']['phpEditUrlTpl'], $obs['id']);
$description =
$lieu = $obs['location'].' ('.$obs['id_location'].') > '.$obs['lieudit'].' > '.$obs['station'];
$milieu = $obs['milieu'];
$coordonnees = ($this->etreNull($obs['coord_x']) && $this->etreNull($obs['coord_y'])) ? '' : $obs['coord_x'].'/'.$obs['coord_y'];
$commentaire = htmlspecialchars($obs['commentaire']);
$date_observation = $this->formaterDate($obs['date_observation'], '%A %d %B %Y');
$date_transmission = $this->formaterDate($obs['date_transmission']);
$date_modification = $this->formaterDate($obs['date_modification']);
$date_creation = $this->formaterDate($obs['date_creation']);
$transmission = $obs['transmission'] == 1 ? "oui ($date_transmission)" : 'non';
$description = '<h2>'."Observation #$id_obs de $nom_saisi".'</h2>'.
'<ul>'.
' <li>Nom saisi : '.$obs['nom_sel'].'</li>'.
(($obs['nom_sel'] != $obs['nom_ret']) ? ' <li>Nom retenu : '.$obs['nom_ret'].'</li>' : '').
' <li>Lieu : '.$obs['location'].' ('.$obs['id_location'].')</li>'.
($this->etreNull($obs['station']) ? '': ' <li>Station : '.$obs['station'].'</li>').
($this->etreNull($obs['milieu']) ? '': ' <li>Milieu : '.$obs['milieu'].'</li>').
($this->etreNull($obs['commentaire']) ? '': ' <li>Commentaire : '.$obs['commentaire'].'</li>').
(($this->etreFluxAdmin()) ? ' <li>Transmis (= public) : '.($obs['transmission'] == 1 ? 'oui' : 'non').'</li>' : '').
' <li>Modifiée le : '.$item['date_maj_simple'].'</li>'.
' <li>Créée le : '.$item['date_creation_simple'].'</li>'.
(($this->etreFluxAdmin()) ? ' <li><a href="'.$lien_correction.'">Corriger cette observation</a></li>' : '').
'<li>'.'Famille : '.$famille.'</li>'.
'<li>'.'Nom saisi : '.$nom_saisi.'</li>'.
'<li>'.'Nom retenu : '.$nom_retenu.'</li>'.
'<li>'.'Observée le : '.$date_observation.'</li>'.
'<li>'.'Lieu : '.$lieu.'</li>'.
'<li>'.'Milieu : '.$milieu.'</li>'.
(($this->etreFluxAdmin()) ? '<li>Coordonnées (Lat/Long) : '.$coordonnees.'</li>' : '').
'<li>'.'Commentaire : '.$commentaire.'</li>'.
'<li>'.'Mots-clés : '.implode(', ', $mots_cles_obs).'</li>'.
(($this->etreFluxAdmin()) ? '<li>Transmis (= public) : '.$transmission.'</li>' : '').
'<li>Modifiée le : '.$date_modification.'</li>'.
'<li>Créée le : '.$date_creation.'</li>'.
(($this->etreFluxAdmin()) ? '<li><a href="'.$lien_correction.'">Corriger cette observation</a></li>' : '').
'</ul>';
$description = $this->nettoyerTexte($description);
return $description;
387,22 → 393,13
}
private function etreFluxAdmin() {
return ($this->service == 'pour-admin' || $_GET['admin'] == '1') ? true : false;
return ($_GET['admin'] == '1') ? true : false;
}
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;
}