26,7 → 26,9 |
'auteur' => 'c.ci_ce_utilisateur', |
'commune' => 'b.location', |
'departement' => 'b.id_location', |
'taxon' => 'b.nom_ret'); |
'taxon' => 'b.nom_ret', |
'commentaire' => 'c.ci_meta_comment', |
'date' => 'c.ci_meta_date'); |
|
/** |
* Méthode appelée avec une requête de type GET. |
64,7 → 66,7 |
} |
|
if (!isset($this->flux[$this->service]) || isset($this->format)) { |
// Suppression des paramêtres inutile pour le reste des méthodes |
// Suppression des deux premiers paramètres (service et format) pour le reste des méthodes |
array_shift($this->parametres); |
array_shift($this->parametres); |
|
91,16 → 93,24 |
"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 |
$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."); |
$this->setFlux('multicriteres','Flux de syndication des nouvelles images liées à une observation publique du CEL '. |
'filtrées par un ou plusieurs critères', |
"Ce flux fournit des informations sur les nouvelles images liées à une observation du CEL filtrées par ". |
"auteur (mail), commune (nom), departement (code postal), taxon (nom scientifique), commentaire, mots-clés ". |
"et/ou date. 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) { |
$url_base = $this->config['settings']['baseURLAbsoluDyn'].'CoelSyndicationImage/'; |
$url_base = $this->config['settings']['baseURLAbsoluDyn'].'CelSyndicationImage/'; |
$formats = array('atom', 'rss2', 'rss1'); |
$flux = array(); |
foreach ($formats as $format) { |
175,7 → 185,7 |
} |
|
private function etreFluxAdmin() { |
return ($_GET['admin'] == '1') ? true : false; |
return (isset($_GET['admin']) && $_GET['admin'] == '1') ? true : false; |
} |
|
private function creerUrlService() { |
190,7 → 200,7 |
return $url_service; |
} |
|
protected function executerRequete($requete) { |
protected function executerRequete($requete, $retour = 'All', $mode = PDO::FETCH_ASSOC) { |
try { |
$infos = $this->bdd->query($requete)->fetchAll(PDO::FETCH_ASSOC); |
if ($infos === false) { |
220,7 → 230,8 |
$donnees = $this->getFlux($this->service); |
$donnees['guid'] = $this->getUrlServiceBase(); |
$donnees['lien_service'] = $this->creerUrlService(); |
$donnees['lien_cel'] = sprintf($this->config['settings']['efloreUrlTpl'], $infos['num_nom_sel'], 'illustration'); |
$donnees['lien_cel'] = (isset($infos['num_nom_sel'])) ? |
sprintf($this->config['settings']['efloreUrlTpl'], $infos['num_nom_sel'], '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']); |
229,8 → 240,7 |
$donnees['date_maj_W3C'] = date(DATE_W3C, $date_modification_timestamp); |
$donnees['annee_courante'] = date('Y'); |
$donnees['generateur'] = 'CEL - Jrest - CelSyndicationImage'; |
preg_match('/([0-9]+)/', '$Revision$', $match); |
$donnees['generateur_version'] = $match[1]; |
$donnees['generateur_version'] = (preg_match('/([0-9]+)/', '$Revision$', $match)) ? $match[1] : '0'; |
return $donnees; |
} |
|
347,7 → 357,7 |
|
private function getServiceComplet() { |
// Construction de la requête |
$requete = (($this->distinct) ? 'SELECT DISTINCT' : 'SELECT').' ci.*, '. |
$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 '. |
'FROM cel_images AS cim '. |
' LEFT JOIN cel_obs_images AS coi '. |
355,7 → 365,7 |
' 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').' '. |
'ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : 'ci_meta_date_ajout DESC').' '. |
"LIMIT $this->start, $this->limit "; |
|
$elements = $this->executerRequete($requete); |
371,14 → 381,7 |
} |
|
private function getServiceMultiCriteres() { |
if (! $this->estUneRechercheGenerale()) { |
$criteres = $this->traiterCriteresMultiples($_GET); |
|
if (empty($criteres)) { |
return $contenu = $this->executerService(array()); |
} |
} |
|
$contenu = ''; |
if (isset($_GET['debut'])) { |
$this->start = $_GET['debut']; |
} |
403,13 → 406,16 |
$sous_requete = $this->creerSousRequeteRechercheGenerale($chaine_requete); |
} else { |
$criteres = $this->traiterCriteresMultiples($_GET) ; |
if (empty($criteres)) { |
$sous_requete = ''; |
} |
$sous_requete = $this->creerSousRequeteRechercheParCriteres($criteres); |
} |
|
$requete .= $sous_requete; |
$requete = rtrim($requete, 'AND '); |
$requete .= ' ORDER BY '.((!is_null($this->orderby)) ? $this->orderby : 'c.ci_meta_date_ajout DESC').' '; |
$requete .= "LIMIT $this->start,$this->limit "; |
$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : |
'c.ci_meta_date_ajout DESC').' '."LIMIT $this->start,$this->limit "; |
|
$elements = $this->executerRequete($requete); |
|
417,7 → 423,7 |
if ($elements != false && count($elements) > 0) { |
$contenu = $this->executerService($elements); |
} else { |
$this->messages[] = "Aucune image disponible."; |
$this->messages[] = "Aucune image disponible.$requete"; |
} |
|
return $contenu; |
428,36 → 434,26 |
foreach ($criteres as $pair) { |
$nom_valeur = explode("=",$pair); |
if (sizeof($nom_valeur) != 0) { |
if ($nom_valeur[0] == "ci_limite") { |
$this->limite = $this->bdd->quote($nom_valeur[1]); |
} elseif ($nom_valeur[0] == "c.ci_numero_page") { |
$this->start = $this->limite*$this->bdd->quote($nom_valeur[1]); |
} elseif ($nom_valeur[0] == "c.ci_meta_comment") { |
$mots_comment_liste = explode(" " , $nom_valeur[1]); |
|
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]); |
foreach($mots_comment_liste as $mot_comment) { |
$mot_comment = trim($mot_comment) ; |
$requete .= $nom_valeur[0].' LIKE "%'.$this->bdd->quote($mot_comment).'%"'; |
$requete .= ' AND '; |
$requete .= $nom_valeur[0].' LIKE '.$this->bdd->quote('%'.$mot_comment.'%').' AND '; |
} |
} elseif ($nom_valeur[0] == "c.ci_meta_date") { |
$requete .= 'DATE_FORMAT( '.$nom_valeur[0].', \'%Y-%m-%d\' ) = "'.$this->bdd->quote($nom_valeur[1]).'"'; |
$requete .= ' AND '; |
} elseif ($nom_valeur[0] == "b.nom_ret") { |
|
if ($nom_valeur[1] == "indetermine") { |
$nom_valeur[1] = 'null'; |
break; |
case "c.ci_meta_date" : |
$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 .= ' ('; |
$requete .= $nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%"'; |
$requete .= ' OR '; |
$requete .= 'b.nom_sel LIKE "%'.$nom_valeur[1].'%"'; |
$requete .= ') AND '; |
|
} else { |
$requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'"'; |
$requete .= ' AND '; |
$requete .= $nom_valeur[0].'='.$this->bdd->quote($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 "%'. |
$nom_valeur[1].'%") AND '; break; |
default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break; |
} |
} |
} |