Rev 92 | Rev 262 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
class OdsTriple extends JRestService {
/**
* Méthode appelée avec une requête de type GET.
*
*/
function getElement($param = array()) {
$abreviation_demandee = $param[0];
$abreviation = $this->transformerParametreEnAbreviation($abreviation_demandee);
$info = $this->obtenirValeursListeParAbreviation($abreviation);
$info = $this->formaterListeTripleEnTableauCleValeur($info);
// Envoi sur la sortie standard
$this->envoyer($info);
}
private function transformerParametreEnAbreviation($parametre) {
$parametre_tirets_supprimes = str_replace('-', ' ', $parametre);
$parametre_mots_majuscules = ucwords($parametre_tirets_supprimes);
$abreviation = str_replace(' ', '',$parametre_tirets_supprimes);
return $abreviation;
}
private function formaterListeTripleEnTableauCleValeur($info) {
$tableau_cle_valeur = array();
foreach($info as $id_triple => $triple) {
$tableau_cle_valeur[$id_triple] = $triple['ot_valeur'];
}
return $tableau_cle_valeur;
}
protected function obtenirValeursListeParId($id_liste) {
$requete = 'SELECT * FROM ods_triple WHERE ot_ce_parent ='.$this->proteger($id_liste);
$resultat = $this->executerRequete($requete);
return $resultat;
}
protected function obtenirValeursListeParAbreviation($abreviation_triple) {
$requete = 'SELECT * FROM ods_triples WHERE ot_ce_parent = (SELECT ot_id_triple FROM ods_triples WHERE ot_cle ='.$this->proteger($abreviation_triple).')';
$resultat = $this->executerRequete($requete);
return $this->grouperResultat($resultat);
}
protected function obtenirValeurTripleParId($id_triple) {
$requete = 'SELECT * FROM ods_triples WHERE ot_id_triple = '.$this->proteger($id_triple);
$resultat = $this->executerRequete($requete);
return $resultat[0]['ot_valeur'];
}
protected function obtenirValeurTripleParAbreviation($abreviation_triple) {
$requete = 'SELECT * FROM ods_triples WHERE ot_cle = '.$this->proteger($abreviation_triple);
$resultat = $this->executerRequete($requete);
return $resultat[0]['ot_valeur'];
}
private function grouperResultat($tableau_resultat_requete_triple) {
$tableau_resultat_requete_triple_ordonne = array();
foreach($tableau_resultat_requete_triple as $valeur_triple) {
$tableau_resultat_requete_triple_ordonne[$valeur_triple['ot_id_triple']] = $valeur_triple;
}
return $tableau_resultat_requete_triple_ordonne;
}
protected function renvoyerInformationStadeAPartirChaineTriple($stade_observation_complet) {
$infos_stades = split('_',$stade_observation_complet);
$titre_numero_stade = array('nom','abreviation','numero');
if($this->estUnEvenementAvecDesSousStades($stade_observation_complet)) {
$titre_numero_stade['nom'] = $infos_stades[1];
$titre_numero_stade['numero'] = $infos_stades[3];
$titre_numero_stade['abreviation'] = $infos_stades[1];
} else {
$titre_numero_stade['nom'] = $infos_stades[1].' '.$infos_stades[2];
$titre_numero_stade['abreviation'] = $infos_stades[1].'_'.$infos_stades[2];
$titre_numero_stade['numero'] = '';
}
return $titre_numero_stade;
}
protected function getInformationEvenementParId($id_evenement) {
$requete_informations_evenement = 'SELECT * FROM ods_triples '.
'WHERE ot_id_triple IN '.
'('.$this->proteger($id_evenement).')';
$resultat_requete_informations_evenement = $this->executerRequete($requete_informations_evenement);
$informations_evenement = $resultat_requete_informations_evenement[0];
return $informations_evenement;
}
protected function estUnEvenementAvecDesSousStades($evenement) {
$infos_stades = split('_',$evenement);
if(count($infos_stades) <= 3) {
return false;
}
return true;
}
}
?>