Rev 31 | Rev 46 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
class OdsObservation extends GestionTriple {
const PREFIXE = 'get';
const ABBR_LISTE_EVENEMENTS = 'evenement';
/**
* Méthode appelée avec une requête de type GET.
*
*/
function getElement($param = array()) {
$type = $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);
}
/**
* 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);
}
/**
* Méthode appelée pour mettre à jour un élément
*/
public function updateElement($uid, $params) {
//Mise à jour de la personne
// 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) {
$messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
}
$this->envoyer();
}
/**
* Méthode appelée pour supprimer un élément
*/
public function deleteElement($uid) {
// Vérification de la présence des id passés par l'url
if (!isset($uid[0]) || !isset($uid[1])) {
$this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";
} else {
list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
// Contrôle du non détournement de l'utilisateur
if ($this->etreAutorise($id_utilisateur)) {
// Récupération des id passés par l'url
$identifiants = explode(',', rtrim($uid[1], ','));
if (count($identifiants) == 0) {
$this->messages[] = "Aucun enregistrement n'a été supprimé.";
} else {
foreach ($identifiants as $id_personne) {
try {
} catch (PDOException $e) {
$this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
}
}
}
}
}
// Envoie sur la sortie standard
$this->envoyer();
}
private function getElementParDefaut($params) {
}
private function getObservationsPourStation($params) {
$id_station = $params[0];
$annee = $params[1];
return ;
}
private function getObservationsPourIndividu($params) {
$id_individu = $params[0];
$annee = $params[1];
$requete_liste_observation_individu = 'SELECT * FROM ods_observations '.
'WHERE oo_ce_individu ='.$this->proteger($id_individu).' '.
'ORDER BY oo_date';
$liste_observation_individu = $this->executerRequete($requete_liste_observation_individu);
$liste_observation_individu_formatees =array();
$requete_evenements_pour_espece_individu_1 = 'SELECT oe_ce_evenements FROM ods_especes '.
'WHERE oe_id_espece = '.
'('.
'SELECT oi_ce_espece FROM ods_individus '.
'WHERE oi_id_individu = '.$this->proteger($id_individu).' '.
')';
$evenements_pour_espece_chaine = $this->executerRequete($requete_evenements_pour_espece_individu_1);
$evenements_pour_espece_chaine = $evenements_pour_espece[0]['oe_ce_evenements'];
$tableau_evenements_espece = split(',',$evenements_pour_espece_chaine);
foreach($tableau_evenements_espece as &$evenement_espece) {
$evenement_espece = $this->proteger($evenement_espece);
}
$evenements_espece_chaine_bdd = implode(',',$tableau_evenements_espece);
$requete_liste_evenement_espece_individu = 'SELECT * FROM ods_triples '.
'WHERE ot_id_triple IN '.
'('.$evenements_espece_chaine_bdd.')';
$liste_evenement_espece_individu = $this->executerRequete($requete_liste_evenement_espece_individu);
$liste_evenement_espece_individu = $liste_evenement_espece_individu[0];
foreach($liste_observation_individu as $observation_individu) {
$annee_obs = date($observation_individu['oo_date'], "Y");
$stade_observation_complet = $observation_individu['oo_ce_evenement'];
$infos_stades = split('_',$stade_observation_complet);
$titre_stade = $infos_stades[1];
$numero_stade = $infos_stades[3];
$date_observation_formatee = date($observation_individu['oo_date'],$this->config['appli']['format_date']);
$liste_observation_individu_formatees[$annee_obs][$titre_stade][$numero_stade] = $date_observation_formatee;
}
return $liste_observation_individu_formatees;
}
/*private function getMajEspece() {
$id_maj = '97,98,99,100,101,102,108,109,110,111';
$stade_ajoute = '20';
$tab = explode(',',$id_maj);
foreach($tab as $id) {
$requete = 'SELECT oe_ce_evenements FROM ods_especes WHERE oe_id_espece = '.$id;
echo $requete.'<br />';
$res = $this->executerRequete($requete);
print_r($res);
if($res[0]['oe_ce_evenements'] == 0) {
$evts = ''.$stade_ajoute;
} else {
$evts = $res[0]['oe_ce_evenements'].','.$stade_ajoute;
}
$evts = $this->proteger($evts);
$requete = 'UPDATE ods_especes SET oe_ce_evenements = '.$evts.' WHERE `oe_id_espece` = '.$id;
echo $requete.'<br />';;
$this->executerRequeteSimple($requete);
}
}*/
}
?>