Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 226 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
31 aurelien 1
<?php
2
 
92 aurelien 3
class OdsEvenement extends OdsTriple {
31 aurelien 4
 
5
	const PREFIXE = 'get';
6
 
7
	/**
8
     * Méthode appelée avec une requête de type GET.
9
     *
10
     */
11
    function getElement($param = array()) {
12
 
13
    	$type = $param[0];
14
 
15
        if ($type == '*' || is_numeric($type)) {
16
            $info = $this->getElementParDefaut($param);
17
        } else {
18
            $methode = self::PREFIXE.$type;
19
            if (method_exists($this, $methode)) {
20
                array_shift($param);
21
                $info = $this->$methode($param);
22
            } else {
23
                $this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
24
            }
25
        }
26
 
27
        // Envoi sur la sortie standard
28
        $this->envoyer($info);
29
    }
30
 
31
    /**
32
     * Méthode appelée pour ajouter un élément.
33
     */
34
    public function createElement($params) {
46 aurelien 35
 
215 aurelien 36
		//TODO: méthode de creation d'évènements spéciale aux admins
31 aurelien 37
    }
46 aurelien 38
 
31 aurelien 39
    /**
40
     * Méthode appelée pour supprimer un élément
41
     */
42
    public function deleteElement($uid) {
215 aurelien 43
        //TODO: méthode de suppression d'évènements spéciale aux admins
31 aurelien 44
    }
45
 
46
   	private function getElementParDefaut($param) {
226 aurelien 47
   		$this->getTousEvenements($param);
31 aurelien 48
   	}
207 aurelien 49
 
50
   	private function getTousEvenements($params) {
51
 
52
    	$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
53
										   		'WHERE ot_ce_parent = 12';
54
 
55
    	$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
56
 
57
	    $liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoiParId($liste_evenements_pour_espece);
58
 
59
		return $liste_evenements_pour_espece_formatee;
60
   	}
31 aurelien 61
 
41 aurelien 62
    private function getEvenementsPourEspece($params) {
63
 
64
    	$id_espece = $params[0];
65
 
66
    	$requete_evenements_pour_espece = 'SELECT oe_ce_evenements FROM ods_especes '.
67
										   'WHERE oe_id_espece = '.$this->proteger($id_espece);
68
 
69
    	$evenements_pour_espece = $this->executerRequete($requete_evenements_pour_espece);
70
    	$evenements_pour_espece = $evenements_pour_espece[0]['oe_ce_evenements'];
71
 
262 gduche 72
    	$tableau_evenements_espece = explode(',',$evenements_pour_espece);
41 aurelien 73
    	foreach($tableau_evenements_espece as &$evenement_espece) {
74
    		$evenement_espece = $this->proteger($evenement_espece);
75
    	}
76
 
77
    	$evenements_espece_chaine_bdd = implode(',',$tableau_evenements_espece);
78
 
79
    	$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
80
										   		'WHERE ot_id_triple IN '.
81
										   		'('.$evenements_espece_chaine_bdd.')';
82
 
83
    	$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
84
 
85
	    $liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoi($liste_evenements_pour_espece);
86
 
87
		return $liste_evenements_pour_espece_formatee;
31 aurelien 88
    }
41 aurelien 89
 
207 aurelien 90
	private function formaterTableauEvenementPourEnvoiParId($liste_evenements) {
91
 
92
		$tableau_evenements_formate = array();
93
 
94
	    foreach($liste_evenements as $evenement) {
95
 
96
	    		$identifiant_stade = $evenement['ot_id_triple'];
97
 
98
	   			$stade_observation_complet = $evenement['ot_cle'];
99
 
100
	   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
101
 
102
	   			$titre_stade = $infos_stades['nom'];
103
	   			$numero_stade = $infos_stades['numero'];
226 aurelien 104
	   			$abreviation_stade = $infos_stades['abreviation'];
105
	   		   	$description_stade = $evenement['ot_description'];
207 aurelien 106
 
107
	   			$tableau_evenements_formate[$identifiant_stade]['code'] = $numero_stade;
108
	   			$tableau_evenements_formate[$identifiant_stade]['nom'] = $titre_stade;
109
	   	}
110
 
111
	   	return $tableau_evenements_formate;
112
    }
113
 
41 aurelien 114
    private function formaterTableauEvenementPourEnvoi($liste_evenements) {
115
 
116
		$tableau_evenements_formate = array();
117
 
118
	    foreach($liste_evenements as $evenement) {
119
 
46 aurelien 120
	    		$identifiant_stade = $evenement['ot_id_triple'];
121
 
41 aurelien 122
	   			$stade_observation_complet = $evenement['ot_cle'];
123
 
46 aurelien 124
	   			$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
41 aurelien 125
 
46 aurelien 126
	   			$titre_stade = $infos_stades['nom'];
127
	   			$numero_stade = $infos_stades['numero'];
226 aurelien 128
	   			$abreviation_stade = $infos_stades['abreviation'];
129
	   			$description_stade = $evenement['ot_description'];
41 aurelien 130
 
131
	   			$tableau_evenements_formate[$titre_stade]['id'] = $evenement['ot_id_triple'];
132
	   			$tableau_evenements_formate[$titre_stade]['nom'] = $titre_stade;
46 aurelien 133
	   			$tableau_evenements_formate[$titre_stade]['abreviation'] = $abreviation_stade;
226 aurelien 134
	   			$tableau_evenements_formate[$titre_stade]['description'][$identifiant_stade] = $description_stade;
46 aurelien 135
	   			$tableau_evenements_formate[$titre_stade]['stades'][$identifiant_stade] = $numero_stade;
41 aurelien 136
 
137
	   	}
138
 
139
	   	return $tableau_evenements_formate;
140
    }
31 aurelien 141
}
142
?>