Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 283 → Rev 284

/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/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/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/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;
}