Subversion Repositories Sites.obs-saisons.fr

Rev

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

Rev 31 Rev 41
1
<?php
1
<?php
2
 
2
 
3
class OdsEvenement extends JRestService {
3
class OdsEvenement extends JRestService {
4
 
4
 
5
	const PREFIXE = 'get';
5
	const PREFIXE = 'get';
6
	
6
	
7
	/**
7
	/**
8
     * Méthode appelée avec une requête de type GET.
8
     * Méthode appelée avec une requête de type GET.
9
     *
9
     *
10
     */
10
     */
11
    function getElement($param = array()) {
11
    function getElement($param = array()) {
12
    	
12
    	
13
    	$type = $param[0];
13
    	$type = $param[0];
14
    	    	
14
    	    	
15
        if ($type == '*' || is_numeric($type)) {
15
        if ($type == '*' || is_numeric($type)) {
16
            $info = $this->getElementParDefaut($param);
16
            $info = $this->getElementParDefaut($param);
17
        } else {
17
        } else {
18
            $methode = self::PREFIXE.$type;
18
            $methode = self::PREFIXE.$type;
19
            if (method_exists($this, $methode)) {
19
            if (method_exists($this, $methode)) {
20
                array_shift($param);
20
                array_shift($param);
21
                $info = $this->$methode($param);
21
                $info = $this->$methode($param);
22
            } else {
22
            } else {
23
                $this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
23
                $this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
24
            }
24
            }
25
        }
25
        }
26
       
26
       
27
        // Envoi sur la sortie standard
27
        // Envoi sur la sortie standard
28
        $this->envoyer($info);
28
        $this->envoyer($info);
29
    }
29
    }
30
   
30
   
31
    /**
31
    /**
32
     * Méthode appelée pour ajouter un élément.
32
     * Méthode appelée pour ajouter un élément.
33
     */
33
     */
34
    public function createElement($params) {
34
    public function createElement($params) {
35
        // Identification de l'utilisateur
35
        // Identification de l'utilisateur
36
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
36
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
37
   
37
   
38
        // Contrôle du non détournement de l'utilisateur
38
        // Contrôle du non détournement de l'utilisateur
39
        if ($this->etreAutorise($id_utilisateur)) {
39
        if ($this->etreAutorise($id_utilisateur)) {
40
            try {
40
            try {
41
                
41
                
42
            } catch (PDOException $e) {
42
            } catch (PDOException $e) {
43
                $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
43
                $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
44
            }
44
            }
45
        }
45
        }
46
        $this->envoyer((string) $id_personne);
46
        $this->envoyer((string) $id_personne);
47
    }
47
    }
48
   
48
   
49
    /**
49
    /**
50
     * Méthode appelée pour mettre à jour un élément
50
     * Méthode appelée pour mettre à jour un élément
51
     */
51
     */
52
    public function updateElement($uid, $params)    {
52
    public function updateElement($uid, $params)    {
53
        //Mise à jour de la personne
53
        //Mise à jour de la personne
54
        // Identification de l'utilisateur
54
        // Identification de l'utilisateur
55
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
55
        list($id_utilisateur, $id_session) = $this->getIdentification($params);
56
       
56
       
57
        // Contrôle du non détournement de l'utilisateur
57
        // Contrôle du non détournement de l'utilisateur
58
        if ($this->etreAutorise($id_utilisateur)) {
58
        if ($this->etreAutorise($id_utilisateur)) {
59
            try {
59
            try {
60
 
60
 
61
            } catch (PDOException $e) {
61
            } catch (PDOException $e) {
62
                $messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
62
                $messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
63
            }
63
            }
64
        }
64
        }
65
       
65
       
66
        $this->envoyer();      
66
        $this->envoyer();      
67
    }
67
    }
68
   
68
   
69
    /**
69
    /**
70
     * Méthode appelée pour supprimer un élément
70
     * Méthode appelée pour supprimer un élément
71
     */
71
     */
72
    public function deleteElement($uid) {
72
    public function deleteElement($uid) {
73
        // Vérification de la présence des id passés par l'url
73
        // Vérification de la présence des id passés par l'url
74
        if (!isset($uid[0]) || !isset($uid[1])) {
74
        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.";
75
            $this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";
76
        } else {
76
        } else {
77
            list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
77
            list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
78
           
78
           
79
            // Contrôle du non détournement de l'utilisateur     
79
            // Contrôle du non détournement de l'utilisateur     
80
            if ($this->etreAutorise($id_utilisateur)) {
80
            if ($this->etreAutorise($id_utilisateur)) {
81
                // Récupération des id passés par l'url     
81
                // Récupération des id passés par l'url     
82
                $identifiants = explode(',', rtrim($uid[1], ','));
82
                $identifiants = explode(',', rtrim($uid[1], ','));
83
                if (count($identifiants) == 0) {
83
                if (count($identifiants) == 0) {
84
                    $this->messages[] = "Aucun enregistrement n'a été supprimé.";
84
                    $this->messages[] = "Aucun enregistrement n'a été supprimé.";
85
                } else {
85
                } else {
86
                    foreach ($identifiants as $id_personne) {
86
                    foreach ($identifiants as $id_personne) {
87
                        try {
87
                        try {
88
                        } catch (PDOException $e) {
88
                        } catch (PDOException $e) {
89
                            $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
89
                            $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
90
                        }
90
                        }
91
                    }
91
                    }
92
                }
92
                }
93
            }
93
            }
94
        }
94
        }
95
       
95
       
96
        // Envoie sur la sortie standard
96
        // Envoie sur la sortie standard
97
        $this->envoyer();
97
        $this->envoyer();
98
    }
98
    }
99
    
99
    
100
   	private function getElementParDefaut($param) {
100
   	private function getElementParDefaut($param) {
101
   		
101
   		
102
   	}
102
   	}
103
    
103
    
104
    private function getEvenementsPourEspece($id_espece) {
104
    private function getEvenementsPourEspece($params) {
-
 
105
    	
105
    		    	
106
    	$id_espece = $params[0]; 
-
 
107
    	
-
 
108
    	$requete_evenements_pour_espece = 'SELECT oe_ce_evenements FROM ods_especes '.
-
 
109
										   'WHERE oe_id_espece = '.$this->proteger($id_espece);
-
 
110
    	
106
		return array(
111
    	$evenements_pour_espece = $this->executerRequete($requete_evenements_pour_espece);
107
		
112
    	$evenements_pour_espece = $evenements_pour_espece[0]['oe_ce_evenements'];
108
			'1' =>	array(
113
    	
109
	    			'id' => '1',
114
    	$tableau_evenements_espece = split(',',$evenements_pour_espece);
-
 
115
    	foreach($tableau_evenements_espece as &$evenement_espece) {
-
 
116
    		$evenement_espece = $this->proteger($evenement_espece);
-
 
117
    	}
110
	    			'nom' => 'feuillaison',
118
    	
111
					'stades' => array('6','12')
119
    	$evenements_espece_chaine_bdd = implode(',',$tableau_evenements_espece);
112
    		),
120
 
-
 
121
    	$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
-
 
122
										   		'WHERE ot_id_triple IN '.
-
 
123
										   		'('.$evenements_espece_chaine_bdd.')';
-
 
124
    	
-
 
125
    	$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
113
    		'2' => array(
126
    	
114
    			'id' => '2',
127
	    $liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoi($liste_evenements_pour_espece);   		
-
 
128
 
-
 
129
		return $liste_evenements_pour_espece_formatee;
-
 
130
    }
115
    			'nom' => 'floraison',
131
    
-
 
132
    private function formaterTableauEvenementPourEnvoi($liste_evenements) {
116
    			'stades' => array('22','33')
133
    	
-
 
134
		$tableau_evenements_formate = array();
117
    		),
135
    	
-
 
136
	    foreach($liste_evenements as $evenement) {
118
    		'3' => array(
137
	   			
119
    			'id' => '3',
138
	   			$stade_observation_complet = $evenement['ot_cle'];
120
    			'nom' => 'fructification',
139
	   			
121
    			'stades' => array('85')
140
	   			$infos_stades = split('_',$stade_observation_complet);
-
 
141
	   			
122
    		),
142
	   			$titre_stade = $infos_stades[1];
123
    		'4' => array(
143
	   			$numero_stade = $infos_stades[3];
-
 
144
	   			
-
 
145
	   			$tableau_evenements_formate[$titre_stade]['id'] = $evenement['ot_id_triple'];
124
    			'id' => '4',
146
	   			$tableau_evenements_formate[$titre_stade]['nom'] = $titre_stade;
125
    			'nom' => 'senescence',
147
	   			$tableau_evenements_formate[$titre_stade]['stades'][] = $numero_stade;
-
 
148
	   			
126
    			'stades' => array('90','95')
149
	   	}
127
    		)
150
	   	
128
	    );
151
	   	return $tableau_evenements_formate;
129
    }
152
    }
130
}
153
}
131
?>
154
?>