Subversion Repositories Sites.obs-saisons.fr

Compare Revisions

Ignore whitespace Rev 32 → Rev 33

/trunk/applications/jrest/services/OdsStation.php
55,14 → 55,14
$requete_creation_station = 'INSERT INTO ods_stations '.
'(os_ce_participant, os_nom, os_ce_commune, os_latitude, os_longitude, os_altitude, os_ce_environnement, os_commentaire) '.
'VALUES ('.
$this->bdd->quote($id_participant).','.
$this->bdd->quote($params['station_nom']).','.
$this->bdd->quote($params['station_commune']).','.
$this->bdd->quote($params['station_lat']).','.
$this->bdd->quote($params['station_lon']).','.
$this->bdd->quote($params['station_alt']).','.
$this->bdd->quote($params['station_milieu']).','.
$this->bdd->quote($params['station_description']).')';
$this->proteger($id_participant).','.
$this->proteger($params['station_nom']).','.
$this->proteger($params['station_commune']).','.
$this->proteger($params['station_lat']).','.
$this->proteger($params['station_lon']).','.
$this->proteger($params['station_alt']).','.
$this->proteger($params['station_milieu']).','.
$this->proteger($params['station_description']).')';
$creation_station = $this->executerRequeteSimple($requete_creation_station);
93,15 → 93,15
$requete_modification_station = 'UPDATE ods_stations '.
'SET '.
'os_nom ='.$this->bdd->quote($params['station_nom']).','.
'os_latitude ='.$this->bdd->quote($params['station_commune']).','.
'os_latitude ='.$this->bdd->quote($params['station_lat']).','.
'os_longitude ='.$this->bdd->quote($params['station_lon']).','.
'os_altitude ='.$this->bdd->quote($params['station_alt']).','.
'os_ce_environnement ='.$this->bdd->quote($params['station_milieu']).','.
'os_commentaire ='.$this->bdd->quote($params['station_description']).' '.
'WHERE os_ce_particant = '.$this->bdd->quote($id_participant).' '.
'AND os_id_station = '.$this->bdd->quote($id_station);
'os_nom ='.$this->proteger($params['station_nom']).','.
'os_latitude ='.$this->proteger($params['station_commune']).','.
'os_latitude ='.$this->proteger($params['station_lat']).','.
'os_longitude ='.$this->proteger($params['station_lon']).','.
'os_altitude ='.$this->proteger($params['station_alt']).','.
'os_ce_environnement ='.$this->proteger($params['station_milieu']).','.
'os_commentaire ='.$this->proteger($params['station_description']).' '.
'WHERE os_ce_particant = '.$this->proteger($id_participant).' '.
'AND os_id_station = '.$this->proteger($id_station);
$modification_station = $this->executerRequeteSimple($requete_creation_station);
133,8 → 133,8
}
$requete_suppression_station = 'DELETE FROM ods_stations '.
'WHERE os_ce_particant = '.$this->bdd->quote($id_participant).' '.
'AND os_id_station = '.$this->bdd->quote($id_station);
'WHERE os_ce_particant = '.$this->proteger($id_participant).' '.
'AND os_id_station = '.$this->proteger($id_station);
// TODO : supprimer également tout ce qui est associé à la station (observations, etc...)
$suppression_station = $this->executerRequeteSimple($requete_suppression_station);
152,7 → 152,7
// METHODES D'ACCES A LA BASE DE DONNEES
private function obtenirListeStationPourParticipant($id_participant) {
$requete_liste_station = 'SELECT * FROM ods_stations WHERE os_ce_participant = '.$this->bdd->quote($id_participant);
$requete_liste_station = 'SELECT * FROM ods_stations WHERE os_ce_participant = '.$this->proteger($id_participant);
 
$liste_station = $this->executerRequete($requete_liste_station);
169,7 → 169,7
private function obtenirInformationsStation($id_station) {
$requete_infos_station = 'SELECT * FROM ods_stations WHERE os_id_station = '.$this->bdd->quote($id_station);
$requete_infos_station = 'SELECT * FROM ods_stations WHERE os_id_station = '.$this->proteger($id_station);
 
$infos_station = $this->executerRequete($requete_infos_station);
202,7 → 202,7
private function obtenirInformationsCommuneParId($id_commune) {
$requete_infos_commune = 'SELECT * FROM ods_communes WHERE oc_id_commune = '.$this->bdd->quote($id_commune);
$requete_infos_commune = 'SELECT * FROM ods_communes WHERE oc_id_commune = '.$this->proteger($id_commune);
$infos_commune = $this->executerRequete($requete_infos_commune);
return $infos_commune;
210,7 → 210,7
private function obtenirInformationsCommuneParCodeInsee($code_insee_commune) {
$requete_infos_commune = 'SELECT * FROM ods_communes WHERE oc_code_insee = '.$this->bdd->quote($code_insee_commune);
$requete_infos_commune = 'SELECT * FROM ods_communes WHERE oc_code_insee = '.$this->proteger($code_insee_commune);
$infos_commune = $this->executerRequete($requete_infos_commune);
return $infos_commune;
/trunk/applications/jrest/services/GestionTriple.php
13,10 → 13,10
protected function obtenirValeursListeParAbreviation($abreviation_triple) {
$requete = 'SELECT * FROM ods_triple WHERE ot_ce_parent = (SELECT ot_id_triple WHERE ot_cle ='.$this->proteger($abreviation_triple).')';
$requete = 'SELECT * FROM ods_triples WHERE ot_ce_parent = (SELECT ot_id_triple FROM ods_triples WHERE ot_cle ='.$this->proteger($abreviation_triple).')';
$resultat = $this->executerRequete($requete);
return $resultat;
return $this->grouperResultat($resultat);
}
38,6 → 38,17
}
private function grouperResultat($tableau_resultat_requete_triple) {
$tableau_resultat_requete_triple_ordonne = array();
foreach($tableau_resultat_requete_triple as $valeur_triple) {
$tableau_resultat_requete_triple_ordonne[$valeur_triple['ot_id_triple']] = $valeur_triple;
}
return $tableau_resultat_requete_triple_ordonne;
}
}
 
?>
/trunk/applications/jrest/services/JRestService.php
143,6 → 143,10
}
return $resultat;
}
protected function proteger($chaine) {
return $this->bdd->quote($chaine);
}
 
protected function getTxt($id) {
$sortie = '';
/trunk/applications/jrest/services/OdsEspece.php
1,8 → 1,9
<?php
 
class OdsEspece extends JRestService {
class OdsEspece extends GestionTriple {
 
const PREFIXE = 'get';
const ABBR_LISTE_TYPE_ESPECE = 'type_espece';
/**
* Méthode appelée avec une requête de type GET.
32,18 → 33,9
* Méthode appelée pour ajouter un élément.
*/
public function createElement($params) {
// Identification de l'utilisateur
list($id_utilisateur, $id_session) = $this->getIdentification($params);
// Contrôle du non détournement de l'utilisateur
if ($this->etreAutorise($id_utilisateur)) {
try {
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
}
$this->envoyer((string) $id_personne);
//TODO: méthode de création d'espeèce spéciales aux admins
}
/**
100,102 → 92,74
/** ======================= Methodes privées d'accès au informations ================================ */
private function getElementParDefaut() {
return $this->getEspeces();
return $this->getEspecesParType();
}
private function getEspeces() {
return array(
'1' => array(
'id' => '1',
'nom_vernaculaire' => 'Erable de Montpellier'
),
'2' => array(
'id' => '2',
'nom_vernaculaire' => 'Herbe à canard'
),
'3' => array(
'id' => '3',
'nom_vernaculaire' => 'Coquelicot'
),
'4' => array(
'id' => '4',
'nom_vernaculaire' => 'Herbe à chat'
),
'5' => array(
'id' => '5',
'nom_vernaculaire' => 'Hibou'
),
'6' => array(
'id' => '6',
'nom_vernaculaire' => 'Coucou'
)
);
}
private function getEspece($params) {
$id_espece = $params[0];
$infos_espece = array(
'id' => $id_espece,
'nom_scientifique' => 'Acer monspessulanum',
'nom_vernaculaire' => 'Erable de Montpellier',
'description' => 'Un arbre bien connu de tous',
'url_image' => 'http://www.tela-botanica.org/sites/eflore/generique/images/projets/eflore/bdnff/4.02/nt/8523/002543.jpg'
);
return $infos_espece;
}
 
private function getEspecesPourStation($params) {
$id_station = $params[0];
$especes_dans_station = $this->getEspeces();
$requete_especes_pour_station = 'SELECT * FROM ods_especes '.
'WHERE oe_id_espece IN '.
'( '.
'SELECT oi_ce_espece FROM ods_individus '.
'WHERE oi_ce_station = '.$this->proteger($id_station).
') '.
'ORDER BY oe_ce_type';
 
$especes_pour_station = $this->executerRequete($requete_especes_pour_station);
$modulo = ($id_station+7)%6;
if($modulo == 0) $modulo = 1;
return array_slice($especes_dans_station, 0, $modulo);
foreach($especes_pour_station as &$espece_dans_station) {
$espece_dans_station = $this->formaterTableauEspecePourEnvoi($espece_dans_station);
}
return $especes_pour_station;
}
private function getEspecesParType($params) {
private function getEspecesParType() {
$id_type = $params[0];
return $especes_par_type = array(
'1' => array(
'nom' => 'herbacées',
'especes' => array(
'1' => array('id' => '1',
'nom_vernaculaire' => 'Herbe de Montpellier'
)
)
),
'2' => array(
'nom' => 'arbres',
'especes' => array(
'id' => array('id' => '1',
'nom_vernaculaire' => 'Erable de Montpellier'
)
)
),
'3' => array(
'nom' => 'animaux',
'especes' => array(
'id' => array('id' => '1',
'nom_vernaculaire' => 'Hibou de Montpellier'
)
)
)
);
$requete_toute_espece = 'SELECT * FROM ods_especes ORDER BY oe_ce_type';
$liste_espece = $this->executerRequete($requete_toute_espece);
$liste_type_espece = $this->obtenirValeursListeParAbreviation(self::ABBR_LISTE_TYPE_ESPECE);
$especes_par_type = array();
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()
);
}
$especes_par_type[$type]['especes'][] = $espece;
}
return $especes_par_type;
}
private function formaterTableauEspecePourEnvoi($espece) {
return array(
'id_espece' => $espece['oe_id_espece'],
'nom_vernaculaire' => $espece['oe_nom_vernaculaire'],
'nom_scientifique' => $espece['oe_nom_scientifique'],
'espece_ecole' => $espece['oe_espece_ecole'],
'description' => $espece['oe_description'],
'climat' => $espece['oe_ce_climat'],
'evenements' => $espece['oe_ce_evenements'],
'type' => $espece['oe_ce_type']
);
}
}
?>
/trunk/applications/jrest/services/OdsIndividu.php
2,19 → 2,27
 
class OdsIndividu extends JRestService {
 
const PREFIXE = 'get';
/**
* Méthode appelée avec une requête de type GET.
*
*/
function getElement($param = array()) {
$type = $param[0];
$donnees_test = $this->retournerDonneesTest();
if($param[0] == "*") {
$info = $donnees_test;
} else if(is_numeric($param[0])) {
$info = $donnees_test[$param[0]];
}
if ($type == '*' || is_numeric($type)) {
$info = $this->getElementParDefaut($param);
} else {
$methode = self::PREFIXE.$type;
if (method_exists($this, $methode)) {
array_shift($param);
$info = $this->$methode($param);
} else {
$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
}
}
// Envoi sur la sortie standard
$this->envoyer($info);
24,18 → 32,34
* Méthode appelée pour ajouter un élément.
*/
public function createElement($params) {
// Identification de l'utilisateur
list($id_utilisateur, $id_session) = $this->getIdentification($params);
// Contrôle du non détournement de l'utilisateur
if ($this->etreAutorise($id_utilisateur)) {
try {
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
}
$this->envoyer((string) $id_personne);
$elements_requis = array('id_participant','id_espece','id_station','individu_nom');
foreach($elements_requis as $requis) {
if(!isset($params[$requis])) {
//$erreurs[$requis] = 'erreur ';
}
}
if(!empty($erreurs)) {
$this->envoyer($erreurs);
}
$id_participant = $params['id_participant'];
$requete_creation_individu = 'INSERT INTO ods_individus '.
'(oi_ce_espece, oi_ce_station, oi_nom) '.
'VALUES ('.
$this->proteger($params['id_espece']).','.
$this->proteger($params['id_station']).','.
$this->proteger($params['individu_nom']).')';
$creation_individu = $this->executerRequeteSimple($requete_creation_individu);
if(!$creation_individu) {
// TODO: comment gère t'on les erreurs ?
}
$this->envoyer();
}
/**
89,59 → 113,60
$this->envoyer();
}
private function retournerDonneesTest() {
private function getInformationsIndividu($params) {
$id_individu = $params[0];
 
$requete_toute_espece = 'SELECT * FROM ods_individus '.
'WHERE oi_id_individu = '.$this->proteger($id_individu);
$liste_espece = $this->executerRequete($requete_toute_espece);
}
private function getIndividusPourStation($params) {
$id_station = $params[0];
return array(
'1' =>
array(
'id' => '1',
'nom' => 'Individu 1',
'nom_scientifique' => 'Acer monspessulanum',
'nom_vernaculaire' => 'Erable de Montpellier',
'description' => 'Quel bel individu!'
),
'2' =>
array(
'id' => '2',
'nom' => 'Individu 2',
'nom_scientifique' => 'Acer monspessulanum',
'nom_vernaculaire' => 'Erable de Montpellier',
'description' => 'Quel bel individu!'
),
'3' =>
array(
'id' => '3',
'nom' => 'Individu 3',
'nom_scientifique' => 'Acer monspessulanum',
'nom_vernaculaire' => 'Erable de Montpellier',
'description' => 'Quel bel individu!'
),
'4' =>
array(
'id' => '4',
'nom' => 'Individu 4',
'nom_scientifique' => 'Acer monspessulanum',
'nom_vernaculaire' => 'Erable de Montpellier',
'description' => 'Quel bel individu!'
),
'5' =>
array(
'id' => '5',
'nom' => 'Individu 5',
'nom_scientifique' => 'Acer monspessulanum',
'nom_vernaculaire' => 'Erable de Montpellier',
'description' => 'Quel bel individu!'
),
'6' =>
array(
'id' => '6',
'nom' => 'Individu 6',
'nom_scientifique' => 'Acer monspessulanum',
'nom_vernaculaire' => 'Erable de Montpellier',
'description' => 'Quel bel individu!'
)
);
$requete_individus_station = 'SELECT * FROM ods_individus '.
'WHERE oi_ce_station = '.$this->proteger($id_station);
$liste_individus_pour_station = $this->executerRequete($requete_individus_station);
 
foreach($liste_individus_pour_station as &$individu_pour_station) {
$individu_pour_station = $this->formaterTableauIndividuPourEnvoi($individu_pour_station);
}
return $liste_individus_pour_station;
}
private function getIndividusPourStationPourEspece($params) {
$id_station = $params[0];
$id_espece = $params[1];
$requete_individus_station_espece = 'SELECT * FROM ods_individus '.
'WHERE oi_ce_station = '.$this->proteger($id_station).' '.
'AND oi_ce_espece ='.$this->proteger($id_espece);
$liste_individus_pour_station_pour_espece = $this->executerRequete($requete_individus_station_espece);
 
foreach($liste_individus_pour_station_pour_espece as &$individu_pour_station_pour_espece) {
$individu_pour_station_pour_espece = $this->formaterTableauIndividuPourEnvoi($individu_pour_station_pour_espece);
}
return $liste_individus_pour_station_pour_espece;
}
private function formaterTableauIndividuPourEnvoi($individu) {
return array(
'id_espece' => $individu['oi_id_individu'],
'id_espece' => $individu['oi_ce_espece'],
'id_station' => $individu['oi_ce_station'],
'nom' => $individu['oi_nom']
);
}
}
?>