New file |
0,0 → 1,123 |
<?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 (isset($this->ressources) && !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 = 'Erreur dans l\'url de votre requête : </br> La ressource " ' |
.$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 : </br> La ressource n\'existe pas.'; |
throw new Exception( $e, RestServeur::HTTP_CODE_MAUVAISE_REQUETE); |
} |
} else { |
throw new Exception( "Erreur dans l\'url de votre requête :". |
"preciser le référentiel et le numéro nomenclatural sous la forme {bdnt}.nn:{nn}.", |
RestServeur::HTTP_CODE_MAUVAISE_REQUETE); |
} |
|
} |
|
|
|
public function traiterTypeGraphique(){ |
if (isset($this->ressources) && !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> La ressource " ' |
.$retour[1].' " n\'existe pas.'; |
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){ |
$val = preg_replace('/,/','.', $val); |
$grad_id = array_search($val,$this->graduations_id); |
$element = $Dompath->query("//*[@id='".$grad_id."']")->item(0); |
$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; |
} |
$svg = $this->dom->getElementsByTagName("svg")->item(0); |
$svg->setAttribute('width',$this->largeurSVG); |
} |
|
public function ajouterInfoAuSurvol($curseur){ |
$champs = $curseur->getAttribute('id'); |
$valeurTexte = $this->recupererOntologies($this->valeurs_champs[$champs], $champs ); |
$curseur->setAttribute('title',$this->valeurs_champs[$champs].":".$valeurTexte->nom ); |
} |
|
|
|
|
|
} |
?> |