Rev 975 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/*** Classe GraphiquesBaseflor.php transforme les données écologiques de la table baseflor* en graphique svg* graphiques/#typegraphique/#bdnt.nn:#num_nomen --> renvoie un graphique avec les données connues*** @package eflore-projets* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>* @author Mathilde SALTHUN-LASSALLE <mathilde@tela-botanica.org>* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>* @version 1.0* @copyright 1999-2011 Tela Botanica (accueil@tela-botanica.org)*/class GraphiquesBaseflor extends CommunGraphiques{public function definirTable($version){$this->table = Config::get('bdd_table')."_v".$version;}//+--------------------------traitement ressources ou paramètres -------------------------------------------+public function traiterReferentieletNum(){if (!empty($this->ressources[1])) {if(preg_match('/^(.+)\.nn:([0-9|,]+)$/', $this->ressources[1], $retour) == 1){switch ($retour[1]) {case 'bdtfx' :$this->requete_condition[]= "num_nomen = ".$retour[2]." AND bdnt = 'bdtfx' ";break;case 'bdafx' :$this->requete_condition[] = "num_nomen = ".$retour[2]." AND bdnt = 'bdafx' ";break;case 'bdbfx' :$this->requete_condition[] = "num_nomen = ".$retour[2]." AND bdnt = 'bdbfx' ";break;default :$e = "Le référentiel {$retour[1]} n'existe pas.";throw new Exception( $e, RestServeur::HTTP_CODE_MAUVAISE_REQUETE);break;}}else {$e = "Erreur dans l'url de votre requête :"." précisez le référentiel et le numéro nomenclatural sous la forme {bdnt}.nn:{nn}.";throw new Exception( $e, RestServeur::HTTP_CODE_MAUVAISE_REQUETE);}} else {throw new Exception( "Erreur dans l'url de votre requête :"." précisez le référentiel et le numéro nomenclatural sous la forme {bdnt}.nn:{nn}.",RestServeur::HTTP_CODE_MAUVAISE_REQUETE);}}public function traiterTypeGraphique(){if (!empty($this->ressources[0])) {switch ($this->ressources[0]) {case 'climat' :$this->requete_champs = ' ve_lumiere , ve_temperature, ve_continentalite, ve_humidite_atmos' ;$this->nomGraphique= 'climat';break;case 'sol' :$this->requete_champs = ' ve_humidite_edaph , ve_reaction_sol, ve_nutriments_sol, ve_salinite,'.'ve_texture_sol, ve_mat_org_sol' ;$this->nomGraphique = 'sol';break;default :$e = "Erreur dans l'url de votre requête :"."</br> precisez le graphique -> \"sol\" ou \"climat\".";throw new Exception($e, RestServeur::HTTP_CODE_MAUVAISE_REQUETE);break;}}else {throw new Exception("Erreur dans l'url de votre requête :"."</br> precisez le graphique -> \"sol\" ou \"climat\".", RestServeur::HTTP_CODE_MAUVAISE_REQUETE);}}//+-------------------------- formatage du résultat -------------------------------------------+/// ++++ svg +++++ ///public function changerValeursSVG(){$Dompath = new DOMXPath($this->dom);foreach ($this->valeurs_en_pourcentage as $cle => $val) {if ($val !== null) { // sinon valeur inconnue donc pas de point rouge$val = preg_replace('/,/','.', $val);$grad_id = array_search($val,$this->graduations_id);$element = $Dompath->query("//*[@id='".$grad_id."']")->item(0);if($element != null) {$pos_x = $element->getAttribute('x1');$curseur = $Dompath->query("//*[@id='".$cle."']")->item(0);$curseur->setAttribute('cx', $pos_x);$curseur->setAttribute('class', 'curseur');$this->ajouterInfoAuSurvol($curseur);$changement = true;}}}$this->ajusterFormatSVG();}public function ajouterInfoAuSurvol($curseur){$champs = $curseur->getAttribute('id');$valeurTexte = $this->recupererOntologies($this->valeurs_champs[$champs], $champs );if ($valeurTexte !== false) {$valeurTexte = $this->traiterIntermediaires($valeurTexte->nom, $champs, $champs);$curseur->setAttribute('title',$this->valeurs_champs[$champs].": ".$valeurTexte );}}}?>