Rev 215 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
class OdsEvenement extends OdsTriple {
const PREFIXE = 'get';
/**
* Méthode appelée avec une requête de type GET.
*
*/
function getElement($param = array()) {
$type = $param[0];
if ($type == '*' || is_numeric($type)) {
$info = $this->getElementParDefaut($param);
} else {
$methode = self::PREFIXE.$type;
if (method_exists($this, $methode)) {
array_shift($param);
$info = $this->$methode($param);
} else {
$this->messages[] = "Le type d'information demandé '$type' n'est pas disponible.";
}
}
// Envoi sur la sortie standard
$this->envoyer($info);
}
/**
* Méthode appelée pour ajouter un élément.
*/
public function createElement($params) {
//TODO: méthode de creation d'évènements spéciale aux admins
}
/**
* Méthode appelée pour supprimer un élément
*/
public function deleteElement($uid) {
//TODO: méthode de suppression d'évènements spéciale aux admins
}
private function getElementParDefaut($param) {
$this->getTousEvenements($param);
}
private function getTousEvenements($params) {
$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
'WHERE ot_ce_parent = 12';
$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
$liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoiParId($liste_evenements_pour_espece);
return $liste_evenements_pour_espece_formatee;
}
private function getEvenementsPourEspece($params) {
$id_espece = $params[0];
$requete_evenements_pour_espece = 'SELECT oe_ce_evenements FROM ods_especes '.
'WHERE oe_id_espece = '.$this->proteger($id_espece);
$evenements_pour_espece = $this->executerRequete($requete_evenements_pour_espece);
$evenements_pour_espece = $evenements_pour_espece[0]['oe_ce_evenements'];
$tableau_evenements_espece = split(',',$evenements_pour_espece);
foreach($tableau_evenements_espece as &$evenement_espece) {
$evenement_espece = $this->proteger($evenement_espece);
}
$evenements_espece_chaine_bdd = implode(',',$tableau_evenements_espece);
$requete_liste_evenements_pour_espece = 'SELECT * FROM ods_triples '.
'WHERE ot_id_triple IN '.
'('.$evenements_espece_chaine_bdd.')';
$liste_evenements_pour_espece = $this->executerRequete($requete_liste_evenements_pour_espece);
$liste_evenements_pour_espece_formatee = $this->formaterTableauEvenementPourEnvoi($liste_evenements_pour_espece);
return $liste_evenements_pour_espece_formatee;
}
private function formaterTableauEvenementPourEnvoiParId($liste_evenements) {
$tableau_evenements_formate = array();
foreach($liste_evenements as $evenement) {
$identifiant_stade = $evenement['ot_id_triple'];
$stade_observation_complet = $evenement['ot_cle'];
$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
$titre_stade = $infos_stades['nom'];
$numero_stade = $infos_stades['numero'];
$abreviation_stade = $infos_stades['abreviation'];
$description_stade = $evenement['ot_description'];
$tableau_evenements_formate[$identifiant_stade]['code'] = $numero_stade;
$tableau_evenements_formate[$identifiant_stade]['nom'] = $titre_stade;
}
return $tableau_evenements_formate;
}
private function formaterTableauEvenementPourEnvoi($liste_evenements) {
$tableau_evenements_formate = array();
foreach($liste_evenements as $evenement) {
$identifiant_stade = $evenement['ot_id_triple'];
$stade_observation_complet = $evenement['ot_cle'];
$infos_stades = $this->renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet);
$titre_stade = $infos_stades['nom'];
$numero_stade = $infos_stades['numero'];
$abreviation_stade = $infos_stades['abreviation'];
$description_stade = $evenement['ot_description'];
$tableau_evenements_formate[$titre_stade]['id'] = $evenement['ot_id_triple'];
$tableau_evenements_formate[$titre_stade]['nom'] = $titre_stade;
$tableau_evenements_formate[$titre_stade]['abreviation'] = $abreviation_stade;
$tableau_evenements_formate[$titre_stade]['description'][$identifiant_stade] = $description_stade;
$tableau_evenements_formate[$titre_stade]['stades'][$identifiant_stade] = $numero_stade;
}
return $tableau_evenements_formate;
}
}
?>