Subversion Repositories Sites.obs-saisons.fr

Rev

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

Rev 92 Rev 207
1
<?php
1
<?php
2
 
2
 
3
class OdsEvenement extends OdsTriple {
3
class OdsEvenement extends OdsTriple {
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
        
35
        
36
    	print_r($params);
36
    	print_r($params);
37
    	
37
    	
38
        $this->envoyer();
38
        $this->envoyer();
39
    }
39
    }
40
      
40
      
41
    /**
41
    /**
42
     * Méthode appelée pour supprimer un élément
42
     * Méthode appelée pour supprimer un élément
43
     */
43
     */
44
    public function deleteElement($uid) {
44
    public function deleteElement($uid) {
45
        // Vérification de la présence des id passés par l'url
45
        // Vérification de la présence des id passés par l'url
46
        if (!isset($uid[0]) || !isset($uid[1])) {
46
        if (!isset($uid[0]) || !isset($uid[1])) {
47
            $this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";
47
            $this->messages[] = "Identifiant d'utilisateur ou de personne manquant. Vous ne devriez pas avoir accès à ce service.";
48
        } else {
48
        } else {
49
            list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
49
            list($id_utilisateur, $id_session) = $this->getIdentification($uid[0]);
50
           
50
           
51
            // Contrôle du non détournement de l'utilisateur     
51
            // Contrôle du non détournement de l'utilisateur     
52
            if ($this->etreAutorise($id_utilisateur)) {
52
            if ($this->etreAutorise($id_utilisateur)) {
53
                // Récupération des id passés par l'url     
53
                // Récupération des id passés par l'url     
54
                $identifiants = explode(',', rtrim($uid[1], ','));
54
                $identifiants = explode(',', rtrim($uid[1], ','));
55
                if (count($identifiants) == 0) {
55
                if (count($identifiants) == 0) {
56
                    $this->messages[] = "Aucun enregistrement n'a été supprimé.";
56
                    $this->messages[] = "Aucun enregistrement n'a été supprimé.";
57
                } else {
57
                } else {
58
                    foreach ($identifiants as $id_personne) {
58
                    foreach ($identifiants as $id_personne) {
59
                        try {
59
                        try {
60
                        } catch (PDOException $e) {
60
                        } catch (PDOException $e) {
61
                            $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
61
                            $this->messages[] = sprintf($this->getTxt('sql_erreur'), $e->getFile(), $e->getLine(), $e->getMessage(), $requete);
62
                        }
62
                        }
63
                    }
63
                    }
64
                }
64
                }
65
            }
65
            }
66
        }
66
        }
67
       
67
       
68
        // Envoie sur la sortie standard
68
        // Envoie sur la sortie standard
69
        $this->envoyer();
69
        $this->envoyer();
70
    }
70
    }
71
    
71
    
72
   	private function getElementParDefaut($param) {
72
   	private function getElementParDefaut($param) {
73
   		
73
   		
74
   	}
74
   	}
-
 
75
   	
-
 
76
   	private function getTousEvenements($params) {
-
 
77
 
-
 
78
    	$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
-
 
79
										   		'WHERE ot_ce_parent = 12';
-
 
80
    	
-
 
81
    	$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
-
 
82
    	
-
 
83
	    $liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoiParId($liste_evenements_pour_espece);   		    
-
 
84
	    
-
 
85
		return $liste_evenements_pour_espece_formatee;
-
 
86
   	}
75
    
87
    
76
    private function getEvenementsPourEspece($params) {
88
    private function getEvenementsPourEspece($params) {
77
    	
89
    	
78
    	$id_espece = $params[0]; 
90
    	$id_espece = $params[0]; 
79
    	
91
    	
80
    	$requete_evenements_pour_espece = 'SELECT oe_ce_evenements FROM ods_especes '.
92
    	$requete_evenements_pour_espece = 'SELECT oe_ce_evenements FROM ods_especes '.
81
										   'WHERE oe_id_espece = '.$this->proteger($id_espece);
93
										   'WHERE oe_id_espece = '.$this->proteger($id_espece);
82
    	
94
    	
83
    	$evenements_pour_espece = $this->executerRequete($requete_evenements_pour_espece);
95
    	$evenements_pour_espece = $this->executerRequete($requete_evenements_pour_espece);
84
    	$evenements_pour_espece = $evenements_pour_espece[0]['oe_ce_evenements'];
96
    	$evenements_pour_espece = $evenements_pour_espece[0]['oe_ce_evenements'];
85
    	
97
    	
86
    	$tableau_evenements_espece = split(',',$evenements_pour_espece);
98
    	$tableau_evenements_espece = split(',',$evenements_pour_espece);
87
    	foreach($tableau_evenements_espece as &$evenement_espece) {
99
    	foreach($tableau_evenements_espece as &$evenement_espece) {
88
    		$evenement_espece = $this->proteger($evenement_espece);
100
    		$evenement_espece = $this->proteger($evenement_espece);
89
    	}
101
    	}
90
    	
102
    	
91
    	$evenements_espece_chaine_bdd = implode(',',$tableau_evenements_espece);
103
    	$evenements_espece_chaine_bdd = implode(',',$tableau_evenements_espece);
92
 
104
 
93
    	$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
105
    	$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
94
										   		'WHERE ot_id_triple IN '.
106
										   		'WHERE ot_id_triple IN '.
95
										   		'('.$evenements_espece_chaine_bdd.')';
107
										   		'('.$evenements_espece_chaine_bdd.')';
96
    	
108
    	
97
    	$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
109
    	$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
98
    	
110
    	
99
	    $liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoi($liste_evenements_pour_espece);   		
111
	    $liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoi($liste_evenements_pour_espece);   		
100
 
112
 
101
		return $liste_evenements_pour_espece_formatee;
113
		return $liste_evenements_pour_espece_formatee;
102
    }
114
    }
-
 
115
    
-
 
116
	private function formaterTableauEvenementPourEnvoiParId($liste_evenements) {
-
 
117
    	
-
 
118
		$tableau_evenements_formate = array();
-
 
119
    	
-
 
120
	    foreach($liste_evenements as $evenement) {
-
 
121
	   			
-
 
122
	    		$identifiant_stade = $evenement['ot_id_triple'];
-
 
123
	    	
-
 
124
	   			$stade_observation_complet = $evenement['ot_cle'];
-
 
125
	   			
-
 
126
	   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
-
 
127
	   			
-
 
128
	   			$titre_stade = $infos_stades['nom'];
-
 
129
	   			$numero_stade = $infos_stades['numero'];
-
 
130
	   			$abreviation_stade = $infos_stades['abreviation'];		
-
 
131
	   			
-
 
132
	   			$tableau_evenements_formate[$identifiant_stade]['code'] = $numero_stade;
-
 
133
	   			$tableau_evenements_formate[$identifiant_stade]['nom'] = $titre_stade;
-
 
134
	   			
-
 
135
	   	}
-
 
136
	   	
-
 
137
	   	return $tableau_evenements_formate;
-
 
138
    }
103
    
139
    
104
    private function formaterTableauEvenementPourEnvoi($liste_evenements) {
140
    private function formaterTableauEvenementPourEnvoi($liste_evenements) {
105
    	
141
    	
106
		$tableau_evenements_formate = array();
142
		$tableau_evenements_formate = array();
107
    	
143
    	
108
	    foreach($liste_evenements as $evenement) {
144
	    foreach($liste_evenements as $evenement) {
109
	   			
145
	   			
110
	    		$identifiant_stade = $evenement['ot_id_triple'];
146
	    		$identifiant_stade = $evenement['ot_id_triple'];
111
	    	
147
	    	
112
	   			$stade_observation_complet = $evenement['ot_cle'];
148
	   			$stade_observation_complet = $evenement['ot_cle'];
113
	   			
149
	   			
114
	   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
150
	   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
115
	   			
151
	   			
116
	   			$titre_stade = $infos_stades['nom'];
152
	   			$titre_stade = $infos_stades['nom'];
117
	   			$numero_stade = $infos_stades['numero'];
153
	   			$numero_stade = $infos_stades['numero'];
118
	   			$abreviation_stade = $infos_stades['abreviation'];		
154
	   			$abreviation_stade = $infos_stades['abreviation'];		
119
	   			
155
	   			
120
	   			$tableau_evenements_formate[$titre_stade]['id'] = $evenement['ot_id_triple'];
156
	   			$tableau_evenements_formate[$titre_stade]['id'] = $evenement['ot_id_triple'];
121
	   			$tableau_evenements_formate[$titre_stade]['nom'] = $titre_stade;
157
	   			$tableau_evenements_formate[$titre_stade]['nom'] = $titre_stade;
122
	   			$tableau_evenements_formate[$titre_stade]['abreviation'] = $abreviation_stade;
158
	   			$tableau_evenements_formate[$titre_stade]['abreviation'] = $abreviation_stade;
123
	   			$tableau_evenements_formate[$titre_stade]['stades'][$identifiant_stade] = $numero_stade;
159
	   			$tableau_evenements_formate[$titre_stade]['stades'][$identifiant_stade] = $numero_stade;
124
	   			
160
	   			
125
	   	}
161
	   	}
126
	   	
162
	   	
127
	   	return $tableau_evenements_formate;
163
	   	return $tableau_evenements_formate;
128
    }
164
    }
129
}
165
}
130
?>
166
?>