/trunk/applications/jrest/jrest.ini.defaut.php |
---|
48,4 → 48,5 |
; ADMIN |
[jrest_admin] |
admin = admin@domain.org |
ip_autorisees = "162.38.234.9,localhost,www.obs-saisons.fr" |
;*/?> |
/trunk/applications/jrest/services/OdsSyndicationObservation.php |
---|
188,10 → 188,15 |
private function getServiceParDefaut() { |
// Construction de la requête |
$requete = 'SELECT * '. |
'FROM ods_observations '. |
$requete = 'SELECT oo.* '. |
'FROM ods_observations oo '. |
'INNER JOIN ods_individus oi '. |
'ON oo.oo_ce_individu = oi.oi_id_individu '. |
'INNER JOIN ods_especes oe '. |
'ON oe.oe_espece_active = 1 '. |
'AND oi.oi_ce_espece = oe.oe_id_espece '. |
'WHERE oo_ce_participant != '.$this->config['appli']['id_participant_demo'].' '. |
'WHERE oo_ce_participant != '.$this->config['appli']['id_participant_admin'].' '. |
'AND oo_ce_participant != '.$this->config['appli']['id_participant_admin'].' '. |
'AND DAY(oo_date) != "00" '. |
'ORDER BY oo_date_modification DESC '. |
"LIMIT $this->start,$this->limit "; |
209,17 → 214,20 |
// Construction de la requête |
$requete = 'SELECT * '. |
'FROM ods_observations '. |
'LEFT JOIN ods_individus '. |
'ON ods_observations.oo_ce_individu = ods_individus.oi_id_individu '. |
'LEFT JOIN ods_stations '. |
'ON ods_individus.oi_ce_station = ods_stations.os_id_station '. |
'FROM ods_observations oo '. |
'INNER JOIN ods_individus oi '. |
'ON oo.oo_ce_individu = oi.oi_id_individu '. |
'INNER JOIN ods_especes oe '. |
'ON oe.oe_espece_active = 1 '. |
'AND oi.oi_ce_espece = oe.oe_id_espece '. |
'LEFT JOIN ods_stations os '. |
'ON oi.oi_ce_station = os.os_id_station '. |
'WHERE oo_ce_participant != '.$this->config['appli']['id_participant_demo'].' '. |
'WHERE oo_ce_participant != '.$this->config['appli']['id_participant_admin'].' '. |
'AND oo_ce_participant != '.$this->config['appli']['id_participant_admin'].' '. |
'AND oo_date_saisie != oo_date_modification '. |
'ORDER BY oo_date_modification DESC '. |
"LIMIT $this->start,$this->limit "; |
$elements = $this->executerRequete($requete); |
// Création du contenu |
248,6 → 256,8 |
private function construireDonneesCommunesAuFlux($observations) { |
$donnees = $this->getFlux($this->service); |
$donnees['guid'] = $this->getUrlServiceBase(); |
$donnees['titre'] = $this->creerTitreService(); |
$donnees['description'] = $this->creerDescriptionService(); |
$donnees['lien_service'] = $this->creerUrlService(); |
$donnees['lien_ods'] = $this->config['settings']['odsSaisieUrlAbsolu']; |
$donnees['editeur'] = $this->config['settings']['editeur']; |
259,7 → 269,7 |
$donnees['annee_courante'] = date('Y'); |
$donnees['generateur'] = 'ODS - Jrest - OdsSyndicationObservation'; |
preg_match('/([0-9]+)/', '$Revision$', $match); |
$donnees['generateur_version'] = $match[1]; |
$donnees['generateur_version'] = isset($match[1]) ? $match[1] : 'Inconnue'; |
return $donnees; |
} |
281,6 → 291,30 |
return $item; |
} |
private function creerTitreService() { |
$titre = ''; |
switch($this->service) { |
case 'modification-observations': |
$titre = 'Flux rss des dernières modifications d\'observations de l\'observatoire des saisons'; |
break; |
default: |
$titre = 'Flux rss de l\'observatoire des saisons'; |
} |
return $titre; |
} |
private function creerDescriptionService() { |
$description = ''; |
switch($this->service) { |
case 'modification-observations': |
$description = 'Flux rss des dernières modifications d\'observations de l\'observatoire des saisons'; |
break; |
default: |
$description = 'Flux rss de l\'observatoire des saisons'; |
} |
return $description; |
} |
private function creerTitre($obs) { |
$stade_obs = $this->obtenirValeurTripleParId($obs['oo_ce_evenement']); |
320,12 → 354,17 |
private function creerAuteur($element) { |
//TODO externaliser les champs dans le fichier de config |
$requete_selection_auteur = 'SELECT name FROM drupal_users '. |
'WHERE uid = '.$this->proteger($element); |
$requete_selection_auteur = 'SELECT * FROM ods_redesign.drupal_users '. |
'WHERE uid = '.$this->proteger($element); |
$resultat_auteur = $this->executerRequete($requete_selection_auteur); |
$nom_auteur = $resultat_auteur[0]['mail']; |
$nom_auteur = $resultat_auteur[0]['name']; |
if($this->mode == 'admin') { |
$nom_auteur = $resultat_auteur[0]['mail']; |
} |
return $nom_auteur; |
} |
382,7 → 421,7 |
} |
private function etreFluxAdmin() { |
return ($_GET['admin'] == '1') ? true : false; |
return (isset($_GET['admin']) && $_GET['admin'] == '1') ? true : false; |
} |
private function creerUrlService() { |
/trunk/applications/jrest/services/JRestService.php |
---|
281,6 → 281,7 |
protected function convertirDateHeureMysqlEnTimestamp($date_heure_mysql){ |
$val = explode(' ', $date_heure_mysql); |
$date = explode('-', $val[0]); |
$val[1] = isset($val[1]) ? $val[1] : '00:00:00'; |
$heure = explode(':', $val[1]); |
return mktime((int)$heure[0], $heure[1], $heure[2], $date[1], $date[2], $date[0]); |
} |
/trunk/applications/jrest/services/OdsEspece.php |
---|
42,8 → 42,28 |
* Méthode appelée pour mettre à jour un élément |
*/ |
public function updateElement($uid, $params) { |
// fonction devant uniquement être appelée depuis le serveur |
// lui-même, cad par l'application de saisie |
$controle = new ControleUtilisateur($this->config); |
$controle->controleAppelIpAutorisee(); |
//TODO: méthode de modification d'espèce spéciale aux admins |
$requete = 'UPDATE ods_especes SET '; |
foreach($params as $param => $valeur) { |
$requete .= 'oe_'.$param.' = '.$this->proteger($valeur).', '; |
} |
$requete = rtrim ($requete, ', '); |
$requete .= ' WHERE oe_id_espece = '.$this->proteger($uid[0]); |
$modification_espece = $this->executerRequeteSimple($requete); |
if(!$modification_espece) { |
$retour['erreurs'] = 'erreur de modification'; |
} else { |
$retour = 'ok'; |
} |
$this->envoyer($retour); |
} |
/** |
88,6 → 108,7 |
'SELECT oi_ce_espece FROM ods_individus '. |
'WHERE oi_ce_station = '.$this->proteger($id_station). |
') '. |
' AND oe_espece_active = 1 '. |
'ORDER BY oe_ce_type, oe_nom_vernaculaire'; |
101,50 → 122,64 |
return $especes_pour_station; |
} |
private function getEspecesActivesParType() { |
return $this->getEspecesParType(true); |
} |
private function getEspecesParType() { |
return $this->obtenirEspecesParType(false); |
} |
private function getEspecesParTypeAdmin() { |
return $this->obtenirEspecesParType(true); |
} |
private function obtenirEspecesParType($toutes_les_especes = false) { |
$requete_toute_espece = 'SELECT * FROM ods_especes ORDER BY oe_ce_type, oe_nom_vernaculaire'; |
$requete_toute_espece = 'SELECT * FROM ods_especes '. |
($toutes_les_especes ? '' : ' WHERE oe_espece_active = 1 '). |
'ORDER BY oe_ce_type, oe_nom_vernaculaire'; |
$liste_espece = $this->executerRequete($requete_toute_espece); |
$liste_type_espece = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_TYPE_ESPECE); |
$liste_type_espece = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_TYPE_ESPECE); |
$especes_par_type = array(); |
foreach($liste_espece as $espece) { |
foreach($liste_espece as $espece) { |
$espece = $this->formaterTableauEspecePourEnvoi($espece); |
$type = $espece['type']; |
$nom_type = $liste_type_espece[$type]['ot_valeur']; |
if(!isset($especes_par_type[$type])) { |
$especes_par_type[$type] = array( |
'nom' => $nom_type, |
'especes' => array() |
'nom' => $nom_type, |
'especes' => array() |
); |
} |
$especes_par_type[$type]['especes'][$espece['id_espece']] = $espece; |
$especes_par_type[$type]['especes'][$espece['id_espece']] = $espece; |
} |
return $especes_par_type; |
return $especes_par_type; |
} |
public function getToutesEspeces() { |
$requete_toute_espece = 'SELECT * FROM ods_especes ORDER BY oe_nom_vernaculaire'; |
$requete_toute_espece = 'SELECT * FROM ods_especes WHERE oe_espece_active = 1 ORDER BY oe_nom_vernaculaire '; |
$liste_espece = $this->executerRequete($requete_toute_espece); |
$liste_type_espece = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_TYPE_ESPECE); |
$especes_par_id = array(); |
foreach($liste_espece as $espece) { |
$espece = $this->formaterTableauEspecePourEnvoi($espece); |
$especes_par_id[$espece['id_espece']] = $espece; |
} |
return $especes_par_id; |
} |
158,9 → 193,9 |
'description' => $espece['oe_description'], |
'climat' => $espece['oe_ce_climat'], |
'evenements' => $espece['oe_ce_evenements'], |
'type' => $espece['oe_ce_type'] |
); |
'type' => $espece['oe_ce_type'], |
'active' => $espece['oe_espece_active'] |
); |
} |
} |
?> |
/trunk/applications/jrest/services/OdsIndividu.php |
---|
45,8 → 45,6 |
$this->envoyer($erreurs); |
} |
$id_participant = $params['id_participant']; |
$requete_creation_individu = 'INSERT INTO ods_individus '. |
'(oi_ce_espece, oi_ce_station, oi_nom) '. |
'VALUES ('. |
144,7 → 142,10 |
$id_station = $params[0]; |
$requete_individus_station = 'SELECT * FROM ods_individus '. |
$requete_individus_station = 'SELECT oi.* FROM ods_individus oi '. |
'INNER JOIN ods_especes oe '. |
'ON oi.oi_ce_espece = oe.oe_id_espece '. |
'AND oe.oe_espece_active = 1 '. |
'WHERE oi_ce_station = '.$this->proteger($id_station); |
$liste_individus_pour_station = $this->executerRequete($requete_individus_station); |
/trunk/applications/jrest/services/OdsExport.php |
---|
169,19 → 169,22 |
public function getExportObservation($start = null,$limit = null, $order_by = 'oo_date') { |
$requete_selection_observations = 'SELECT * FROM ods_observations '. |
' LEFT JOIN ods_individus '. |
$requete_selection_observations = 'SELECT oo.*, oi.*, os.*, oc.* FROM ods_observations oo'. |
' LEFT JOIN ods_individus oi'. |
' ON oi_id_individu = oo_ce_individu'. |
' LEFT JOIN ods_stations '. |
' INNER JOIN ods_especes oe'. |
' ON oe.oe_espece_active = 1 '. |
' AND oe.oe_id_espece = oi_ce_espece '. |
' LEFT JOIN ods_stations os'. |
' ON oi_ce_station = os_id_station '. |
' LEFT JOIN ods_communes '. |
'ON os_ce_commune = oc_code_insee '; |
' LEFT JOIN ods_communes oc'. |
' ON os_ce_commune = oc_code_insee '; |
$requete_selection_observations .= $this->construireConditionRequete(); |
$requete_selection_observations .= ' ORDER BY oo_date DESC'; |
$res_selection_observations = $this->executerRequete($requete_selection_observations); |
return $res_selection_observations; |
} |
368,7 → 371,6 |
$codes_insee_communes = array(); |
$resultats_formates = array(); |
foreach($tableau_observations_infos as $observations_infos) { |
$id_espece = $observations_infos['oi_ce_espece']; |
/trunk/applications/jrest/JRest.php |
---|
134,7 → 134,7 |
{ |
// Safari ne sait pas envoyer des DELETE avec gwt... |
// Nous utilisons le parametre "action" passé dans le POST qui doit contenir DELETE pour lancer la supression |
if ($pairs['action'] == 'DELETE') { |
if (isset($pairs['action']) && $pairs['action'] == 'DELETE') { |
$this->delete(); |
return; |
} |