Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 505 → Rev 506

/trunk/services/modules/0.1/baseflor/CommunGraphiques.php
45,6 → 45,7
public function consulter($ressources, $parametres) {
$this->ressources = $ressources;
$this->parametres = $parametres;
$this->verifierParametres();
$this->initialiserConfiguration();
$resultats = '';
$this->traiterRessources();
74,6 → 75,8
$this->definirTable($this->version);
}
abstract function definirTable($version);
94,28 → 97,59
}
return $tableau;
}
 
//+--------------------------traitement ressources ou paramètres -------------------------------------------+
//+---- paramètres ----+
private function verifierParametres() {
if (isset($this->parametres)) {
$parametres_dispo = array('retour', 'retour.format', 'version.projet');
$parametres = array_keys($this->parametres);
foreach ($parametres as $param) {
if (!in_array($param, $parametres_dispo)) {
$erreur = "Erreur : Le paramètre $param est inconnu.";
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
throw new Exception($erreur, $code);
}
}
}
}
//on n'affiche qu'une version de graphique à la fois ( la dernière ou celle demandée )
private function definirVersion() {
$this->chargerVersions();
if( (!isset($this->parametres['version.projet']) ) || ((isset($this->parametres['version.projet']) )&&
(($this->parametres['version.projet'] == '+') || ($this->parametres['version.projet'] == '')))){
if (!isset($this->parametres['version.projet']) ) {
$this->version = $this->metadonnees[0]['version'];
} elseif ($this->parametres['version.projet'] == '+') {
$this->version = $this->metadonnees[0]['version'];
} else {
$this->version = $this->parametres['version.projet'];
if($this->verifierVersion($this->parametres['version.projet'])) {
$this->version = $this->parametres['version.projet'];
}else {
$erreur = "Erreur : La version est inconnue.";
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
throw new Exception($erreur, $code);
}
}
}
private function verifierVersion($version){
$retour = false;
foreach ($this->metadonnees as $vers) {
if ($vers['version'] == $version ) {
$retour = true;
}
}
return $retour;
}
private function definirFormat() {
if (isset($this->parametres['retour.format']) ){
if (preg_match("/^[0-9]+$/", $this->parametres['retour.format'])){
$this->largeurSVG = $this->parametres['retour.format'];
}else {
$erreur = "Erreur : Entrez la largeur voulue (en pixels) pour le paramètre retour.format.";
$erreur = "Erreur : valeur inconnue. Entrez la largeur voulue (en pixels) pour le paramètre retour.format.";
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
throw new Exception($erreur, $code);
}
125,7 → 159,7
}else {
if (( $this->parametres['retour'] != 'image/svg+xml')&& ( $this->parametres['retour'] != 'image/png')){
$erreur = "Erreur : choisissez le format de retour pour le paramètre retour : image/svg%2Bxml ou image/png.";
$erreur = "Erreur : valeur inconnue. Choisissez le format de retour pour le paramètre retour : image/svg%2Bxml ou image/png.";
$code = RestServeur::HTTP_CODE_MAUVAISE_REQUETE;
throw new Exception($erreur, $code);
}