Subversion Repositories Sites.obs-saisons.fr

Rev

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

    }*/
}
?>