Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 226 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 226 Rev 262
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
		//TODO: méthode de creation d'évènements spéciale aux admins
36
		//TODO: méthode de creation d'évènements spéciale aux admins
37
    }
37
    }
38
      
38
      
39
    /**
39
    /**
40
     * Méthode appelée pour supprimer un élément
40
     * Méthode appelée pour supprimer un élément
41
     */
41
     */
42
    public function deleteElement($uid) {
42
    public function deleteElement($uid) {
43
        //TODO: méthode de suppression d'évènements spéciale aux admins
43
        //TODO: méthode de suppression d'évènements spéciale aux admins
44
    }
44
    }
45
    
45
    
46
   	private function getElementParDefaut($param) {
46
   	private function getElementParDefaut($param) {
47
   		$this->getTousEvenements($param);
47
   		$this->getTousEvenements($param);
48
   	}
48
   	}
49
   	
49
   	
50
   	private function getTousEvenements($params) {
50
   	private function getTousEvenements($params) {
51
 
51
 
52
    	$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
52
    	$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
53
										   		'WHERE ot_ce_parent = 12';
53
										   		'WHERE ot_ce_parent = 12';
54
    	
54
    	
55
    	$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
55
    	$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
56
    	
56
    	
57
	    $liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoiParId($liste_evenements_pour_espece);   		    
57
	    $liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoiParId($liste_evenements_pour_espece);   		    
58
	    
58
	    
59
		return $liste_evenements_pour_espece_formatee;
59
		return $liste_evenements_pour_espece_formatee;
60
   	}
60
   	}
61
    
61
    
62
    private function getEvenementsPourEspece($params) {
62
    private function getEvenementsPourEspece($params) {
63
    	
63
    	
64
    	$id_espece = $params[0]; 
64
    	$id_espece = $params[0]; 
65
    	
65
    	
66
    	$requete_evenements_pour_espece = 'SELECT oe_ce_evenements FROM ods_especes '.
66
    	$requete_evenements_pour_espece = 'SELECT oe_ce_evenements FROM ods_especes '.
67
										   'WHERE oe_id_espece = '.$this->proteger($id_espece);
67
										   'WHERE oe_id_espece = '.$this->proteger($id_espece);
68
    	
68
    	
69
    	$evenements_pour_espece = $this->executerRequete($requete_evenements_pour_espece);
69
    	$evenements_pour_espece = $this->executerRequete($requete_evenements_pour_espece);
70
    	$evenements_pour_espece = $evenements_pour_espece[0]['oe_ce_evenements'];
70
    	$evenements_pour_espece = $evenements_pour_espece[0]['oe_ce_evenements'];
71
    	
71
    	
72
    	$tableau_evenements_espece = split(',',$evenements_pour_espece);
72
    	$tableau_evenements_espece = explode(',',$evenements_pour_espece);
73
    	foreach($tableau_evenements_espece as &$evenement_espece) {
73
    	foreach($tableau_evenements_espece as &$evenement_espece) {
74
    		$evenement_espece = $this->proteger($evenement_espece);
74
    		$evenement_espece = $this->proteger($evenement_espece);
75
    	}
75
    	}
76
    	
76
    	
77
    	$evenements_espece_chaine_bdd = implode(',',$tableau_evenements_espece);
77
    	$evenements_espece_chaine_bdd = implode(',',$tableau_evenements_espece);
78
 
78
 
79
    	$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
79
    	$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
80
										   		'WHERE ot_id_triple IN '.
80
										   		'WHERE ot_id_triple IN '.
81
										   		'('.$evenements_espece_chaine_bdd.')';
81
										   		'('.$evenements_espece_chaine_bdd.')';
82
    	
82
    	
83
    	$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
83
    	$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
84
    	
84
    	
85
	    $liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoi($liste_evenements_pour_espece);   		
85
	    $liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoi($liste_evenements_pour_espece);   		
86
 
86
 
87
		return $liste_evenements_pour_espece_formatee;
87
		return $liste_evenements_pour_espece_formatee;
88
    }
88
    }
89
    
89
    
90
	private function formaterTableauEvenementPourEnvoiParId($liste_evenements) {
90
	private function formaterTableauEvenementPourEnvoiParId($liste_evenements) {
91
    	
91
    	
92
		$tableau_evenements_formate = array();
92
		$tableau_evenements_formate = array();
93
    	
93
    	
94
	    foreach($liste_evenements as $evenement) {
94
	    foreach($liste_evenements as $evenement) {
95
	   			
95
	   			
96
	    		$identifiant_stade = $evenement['ot_id_triple'];
96
	    		$identifiant_stade = $evenement['ot_id_triple'];
97
	    	
97
	    	
98
	   			$stade_observation_complet = $evenement['ot_cle'];
98
	   			$stade_observation_complet = $evenement['ot_cle'];
99
	   			
99
	   			
100
	   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
100
	   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
101
	   			
101
	   			
102
	   			$titre_stade = $infos_stades['nom'];
102
	   			$titre_stade = $infos_stades['nom'];
103
	   			$numero_stade = $infos_stades['numero'];
103
	   			$numero_stade = $infos_stades['numero'];
104
	   			$abreviation_stade = $infos_stades['abreviation'];	
104
	   			$abreviation_stade = $infos_stades['abreviation'];	
105
	   		   	$description_stade = $evenement['ot_description'];		
105
	   		   	$description_stade = $evenement['ot_description'];		
106
	   			
106
	   			
107
	   			$tableau_evenements_formate[$identifiant_stade]['code'] = $numero_stade;
107
	   			$tableau_evenements_formate[$identifiant_stade]['code'] = $numero_stade;
108
	   			$tableau_evenements_formate[$identifiant_stade]['nom'] = $titre_stade;
108
	   			$tableau_evenements_formate[$identifiant_stade]['nom'] = $titre_stade;
109
	   	}
109
	   	}
110
	   	
110
	   	
111
	   	return $tableau_evenements_formate;
111
	   	return $tableau_evenements_formate;
112
    }
112
    }
113
    
113
    
114
    private function formaterTableauEvenementPourEnvoi($liste_evenements) {
114
    private function formaterTableauEvenementPourEnvoi($liste_evenements) {
115
    	
115
    	
116
		$tableau_evenements_formate = array();
116
		$tableau_evenements_formate = array();
117
    	
117
    	
118
	    foreach($liste_evenements as $evenement) {
118
	    foreach($liste_evenements as $evenement) {
119
	   			
119
	   			
120
	    		$identifiant_stade = $evenement['ot_id_triple'];
120
	    		$identifiant_stade = $evenement['ot_id_triple'];
121
	    	
121
	    	
122
	   			$stade_observation_complet = $evenement['ot_cle'];
122
	   			$stade_observation_complet = $evenement['ot_cle'];
123
	   			
123
	   			
124
	   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
124
	   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
125
	   			
125
	   			
126
	   			$titre_stade = $infos_stades['nom'];
126
	   			$titre_stade = $infos_stades['nom'];
127
	   			$numero_stade = $infos_stades['numero'];
127
	   			$numero_stade = $infos_stades['numero'];
128
	   			$abreviation_stade = $infos_stades['abreviation'];	
128
	   			$abreviation_stade = $infos_stades['abreviation'];	
129
	   			$description_stade = $evenement['ot_description'];	
129
	   			$description_stade = $evenement['ot_description'];	
130
	   			
130
	   			
131
	   			$tableau_evenements_formate[$titre_stade]['id'] = $evenement['ot_id_triple'];
131
	   			$tableau_evenements_formate[$titre_stade]['id'] = $evenement['ot_id_triple'];
132
	   			$tableau_evenements_formate[$titre_stade]['nom'] = $titre_stade;
132
	   			$tableau_evenements_formate[$titre_stade]['nom'] = $titre_stade;
133
	   			$tableau_evenements_formate[$titre_stade]['abreviation'] = $abreviation_stade;
133
	   			$tableau_evenements_formate[$titre_stade]['abreviation'] = $abreviation_stade;
134
	   			$tableau_evenements_formate[$titre_stade]['description'][$identifiant_stade] = $description_stade;
134
	   			$tableau_evenements_formate[$titre_stade]['description'][$identifiant_stade] = $description_stade;
135
	   			$tableau_evenements_formate[$titre_stade]['stades'][$identifiant_stade] = $numero_stade;
135
	   			$tableau_evenements_formate[$titre_stade]['stades'][$identifiant_stade] = $numero_stade;
136
	   			
136
	   			
137
	   	}
137
	   	}
138
	   	
138
	   	
139
	   	return $tableau_evenements_formate;
139
	   	return $tableau_evenements_formate;
140
    }
140
    }
141
}
141
}
142
?>
142
?>