Subversion Repositories Sites.obs-saisons.fr

Rev

Rev 92 | 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;
    }
}

?>