Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 31 | Rev 46 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 31 Rev 41
1
<?php
1
<?php
2
 
2
 
3
class OdsObservation extends JRestService {
3
class OdsObservation extends GestionTriple {
-
 
4
 
4
 
5
	const PREFIXE = 'get';
5
	const PREFIXE = 'get';
6
	const ABBR_LISTE_EVENEMENTS = 'evenement';
6
	
7
	
7
	/**
8
	/**
8
     * Méthode appelée avec une requête de type GET.
9
     * Méthode appelée avec une requête de type GET.
9
     *
10
     *
10
     */
11
     */
11
    function getElement($param = array()) {
12
    function getElement($param = array()) {
12
    	
13
    	
13
    	$type = $param[0];
14
    	$type = $param[0];
14
    	    	
15
    	    	
15
        if ($type == '*' || is_numeric($type)) {
16
        if ($type == '*' || is_numeric($type)) {
16
            $info = $this->getElementParDefaut($param);
17
            $info = $this->getElementParDefaut($param);
17
        } else {
18
        } else {
18
            $methode = self::PREFIXE.$type;
19
            $methode = self::PREFIXE.$type;
19
            if (method_exists($this, $methode)) {
20
            if (method_exists($this, $methode)) {
20
                array_shift($param);
21
                array_shift($param);
21
                $info = $this->$methode($param);
22
                $info = $this->$methode($param);
22
            } else {
23
            } else {
23
                $this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
24
                $this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
24
            }
25
            }
25
        }
26
        }
26
       
27
       
27
        // Envoi sur la sortie standard
28
        // Envoi sur la sortie standard
28
        $this->envoyer($info);
29
        $this->envoyer($info);
29
    }
30
    }
30
   
31
   
31
    /**
32
    /**
32
     * Méthode appelée pour ajouter un élément.
33
     * Méthode appelée pour ajouter un élément.
33
     */
34
     */
34
    public function createElement($params) {
35
    public function createElement($params) {
35
        // Identification de l'utilisateur
36
        // Identification de l'utilisateur
36
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
37
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
37
   
38
   
38
        // Contrôle du non détournement de l'utilisateur
39
        // Contrôle du non détournement de l'utilisateur
39
        if ($this->etreAutorise($id_utilisateur)) {
40
        if ($this->etreAutorise($id_utilisateur)) {
40
            try {
41
            try {
41
                
42
                
42
            } catch (PDOException $e) {
43
            } catch (PDOException $e) {
43
                $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
44
                $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
44
            }
45
            }
45
        }
46
        }
46
        $this->envoyer((string) $id_personne);
47
        $this->envoyer((string) $id_personne);
47
    }
48
    }
48
   
49
   
49
    /**
50
    /**
50
     * Méthode appelée pour mettre à jour un élément
51
     * Méthode appelée pour mettre à jour un élément
51
     */
52
     */
52
    public function updateElement($uid, $params)    {
53
    public function updateElement($uid, $params)    {
53
        //Mise à jour de la personne
54
        //Mise à jour de la personne
54
        // Identification de l'utilisateur
55
        // Identification de l'utilisateur
55
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
56
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
56
       
57
       
57
        // Contrôle du non détournement de l'utilisateur
58
        // Contrôle du non détournement de l'utilisateur
58
        if ($this->etreAutorise($id_utilisateur)) {
59
        if ($this->etreAutorise($id_utilisateur)) {
59
            try {
60
            try {
60
 
61
 
61
            } catch (PDOException $e) {
62
            } catch (PDOException $e) {
62
                $messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
63
                $messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
63
            }
64
            }
64
        }
65
        }
65
       
66
       
66
        $this->envoyer();      
67
        $this->envoyer();      
67
    }
68
    }
68
   
69
   
69
    /**
70
    /**
70
     * Méthode appelée pour supprimer un élément
71
     * Méthode appelée pour supprimer un élément
71
     */
72
     */
72
    public function deleteElement($uid) {
73
    public function deleteElement($uid) {
73
        // Vérification de la présence des id passés par l'url
74
        // Vérification de la présence des id passés par l'url
74
        if (!isset($uid[0]) || !isset($uid[1])) {
75
        if (!isset($uid[0]) || !isset($uid[1])) {
75
            $this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";
76
            $this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";
76
        } else {
77
        } else {
77
            list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
78
            list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
78
           
79
           
79
            // Contrôle du non détournement de l'utilisateur     
80
            // Contrôle du non détournement de l'utilisateur     
80
            if ($this->etreAutorise($id_utilisateur)) {
81
            if ($this->etreAutorise($id_utilisateur)) {
81
                // Récupération des id passés par l'url     
82
                // Récupération des id passés par l'url     
82
                $identifiants = explode(',', rtrim($uid[1], ','));
83
                $identifiants = explode(',', rtrim($uid[1], ','));
83
                if (count($identifiants) == 0) {
84
                if (count($identifiants) == 0) {
84
                    $this->messages[] = "Aucun enregistrement n'a été supprimé.";
85
                    $this->messages[] = "Aucun enregistrement n'a été supprimé.";
85
                } else {
86
                } else {
86
                    foreach ($identifiants as $id_personne) {
87
                    foreach ($identifiants as $id_personne) {
87
                        try {
88
                        try {
88
                        } catch (PDOException $e) {
89
                        } catch (PDOException $e) {
89
                            $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
90
                            $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
90
                        }
91
                        }
91
                    }
92
                    }
92
                }
93
                }
93
            }
94
            }
94
        }
95
        }
95
       
96
       
96
        // Envoie sur la sortie standard
97
        // Envoie sur la sortie standard
97
        $this->envoyer();
98
        $this->envoyer();
98
    }
99
    }
99
    
100
    
100
   	private function getElementParDefaut($params) {
101
   	private function getElementParDefaut($params) {
101
   		
102
   		
102
   	}
103
   	}
103
   	
104
   	
104
   	private function getObservationsPourStation($params) {
105
   	private function getObservationsPourStation($params) {
105
   		
106
   		
106
   		$id_station = $param[0];
107
   		$id_station = $params[0];
107
   		$annee = $param[1];
108
   		$annee = $params[1];
108
   		
109
   		
109
   		return ;
110
   		return ;
110
 
111
 
111
   	}
112
   	}
112
    
113
    
113
    private function getObservationsPourIndividu($params) {
114
    private function getObservationsPourIndividu($params) {
114
    	
115
    	
115
    	$id_individu = $param[0];
116
    	$id_individu = $params[0];
-
 
117
   		$annee = $params[1];
-
 
118
   		
-
 
119
   		$requete_liste_observation_individu = 'SELECT * FROM ods_observations '.
-
 
120
   												  'WHERE oo_ce_individu ='.$this->proteger($id_individu).' '.
-
 
121
   												  'ORDER BY oo_date'; 
-
 
122
   		
-
 
123
   		$liste_observation_individu = $this->executerRequete($requete_liste_observation_individu);
-
 
124
   		
-
 
125
   		$liste_observation_individu_formatees =array();
-
 
126
   		
-
 
127
   		$requete_evenements_pour_espece_individu_1 = 'SELECT oe_ce_evenements FROM ods_especes '.
-
 
128
   											'WHERE oe_id_espece = '.
-
 
129
   											'('.
-
 
130
   												'SELECT oi_ce_espece FROM ods_individus '.
-
 
131
   												'WHERE oi_id_individu = '.$this->proteger($id_individu).' '.
-
 
132
   											')';
-
 
133
   		
-
 
134
    	
-
 
135
    	$evenements_pour_espece_chaine = $this->executerRequete($requete_evenements_pour_espece_individu_1);
-
 
136
    	$evenements_pour_espece_chaine = $evenements_pour_espece[0]['oe_ce_evenements'];
-
 
137
    	
-
 
138
    	$tableau_evenements_espece = split(',',$evenements_pour_espece_chaine);
-
 
139
    	foreach($tableau_evenements_espece as &$evenement_espece) {
-
 
140
    		$evenement_espece = $this->proteger($evenement_espece);
-
 
141
    	}
-
 
142
    	
-
 
143
    	$evenements_espece_chaine_bdd = implode(',',$tableau_evenements_espece);
-
 
144
 
-
 
145
    	$requete_liste_evenement_espece_individu = 'SELECT * FROM ods_triples '.
-
 
146
										   		'WHERE ot_id_triple IN '.
-
 
147
										   		'('.$evenements_espece_chaine_bdd.')';
-
 
148
   		
-
 
149
   		$liste_evenement_espece_individu = $this->executerRequete($requete_liste_evenement_espece_individu);
-
 
150
   		$liste_evenement_espece_individu = $liste_evenement_espece_individu[0];
-
 
151
   		
-
 
152
   		foreach($liste_observation_individu as $observation_individu) {
-
 
153
   			
-
 
154
   			$annee_obs = date($observation_individu['oo_date'], "Y");
-
 
155
   			$stade_observation_complet = $observation_individu['oo_ce_evenement'];
-
 
156
   			
-
 
157
   			$infos_stades = split('_',$stade_observation_complet);
-
 
158
   			
-
 
159
   			$titre_stade = $infos_stades[1];
-
 
160
   			$numero_stade = $infos_stades[3];
-
 
161
   			
-
 
162
   			$date_observation_formatee = date($observation_individu['oo_date'],$this->config['appli']['format_date']);
-
 
163
   			
-
 
164
   			$liste_observation_individu_formatees[$annee_obs][$titre_stade][$numero_stade] = $date_observation_formatee;
-
 
165
   			
116
   		$annee = $param[1];
166
   		}
117
    		    	
-
 
118
		return array(
-
 
119
		
-
 
120
			'1' => '01/01/2010',
-
 
121
    		'2' => '13/01/2010',
-
 
122
    		'3' => '06/02/2010',
-
 
123
    		'4' => '08/05/2010',
-
 
124
    		'5' => '09/07/2010',
-
 
125
    		'6' => '08/08/2010',
-
 
126
    		'7' => '25/10/2010',
167
    		    	
-
 
168
		return $liste_observation_individu_formatees;
-
 
169
    }
-
 
170
    
-
 
171
    /*private function getMajEspece() {
-
 
172
    	$id_maj = '97,98,99,100,101,102,108,109,110,111';
-
 
173
    	$stade_ajoute = '20';
-
 
174
    	
-
 
175
    	$tab = explode(',',$id_maj);
-
 
176
    	
-
 
177
    	foreach($tab as $id) {
-
 
178
    		
-
 
179
    		$requete = 'SELECT oe_ce_evenements FROM ods_especes WHERE oe_id_espece = '.$id;
-
 
180
    		echo $requete.'<br />';
-
 
181
    		$res = $this->executerRequete($requete);
-
 
182
    		
-
 
183
    		print_r($res);
-
 
184
    		
-
 
185
    		if($res[0]['oe_ce_evenements'] == 0) {
-
 
186
    			$evts = ''.$stade_ajoute;
-
 
187
    		} else {
-
 
188
    			$evts = $res[0]['oe_ce_evenements'].','.$stade_ajoute;
-
 
189
    		}
-
 
190
    		
-
 
191
    		$evts = $this->proteger($evts);
-
 
192
    		
-
 
193
    		$requete = 'UPDATE ods_especes SET oe_ce_evenements = '.$evts.' WHERE `oe_id_espece` = '.$id;
-
 
194
    		
-
 
195
    		    	
-
 
196
    		echo $requete.'<br />';;
-
 
197
    		$this->executerRequeteSimple($requete);
-
 
198
    	}
127
	    );
199
 
128
    }
200
    }*/
129
}
201
}
130
?>
202
?>