| /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; |
| } |
| /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" |
| ;*/?> |