Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 162 → Rev 163

/trunk/services/bibliotheque/Parametres.php
New file
0,0 → 1,105
<?php
class Parametres implements Iterator {
/** Contients les paramètres.*/
private $parametres = array();
private $bdd = null;
 
public function __construct(Array $parametres, Bdd $bdd) {
$this->parametres = $parametres;
$this->bdd = $bdd;
$this->definirValeursParDefaut();
}
 
public function current () {
return current($this->parametres);
}
 
public function key() {
return key($this->parametres);
}
 
public function next() {
return next($this->parametres);
}
 
public function rewind() {
return reset($this->parametres);
}
 
public function valid() {
return current($this->parametres) == false ? false : true;
}
 
public function get($parametreCode) {
$valeur = '';
if ($this->exister($parametreCode)) {
$valeur = $this->parametres[$parametreCode];
}
return $valeur;
}
 
public function exister($parametreCode) {
$existe = false;
if (array_key_exists($parametreCode, $this->parametres) && $this->parametres[$parametreCode] != '') {
$existe = true;
}
return $existe;
}
 
public function getPourBdd($parametreCode) {
$valeur = false;
if ($this->exister($parametreCode)) {
$valeur = $this->get($parametreCode);
$valeur = $this->proteger($valeur);
}
return $valeur;
}
 
private function proteger($valeur) {
$valeur = $this->bdd->proteger($valeur);
return $valeur;
}
 
public function getMasquePourBdd($type = '') {
$masque = false;
$parametreMasque = 'masque'.($type != '' ? '.'.$type : $type);
if ($this->exister($parametreMasque)) {
$masque = $this->get($parametreMasque);
$recherche = $this->get('recherche');
if ($recherche == 'etendue') {
$masque = str_replace(' ', '% ', $masque);
$masque .= '%';
}
$masque = $this->proteger($masque);
}
return $masque;
}
 
private function definirValeursParDefaut() {
if ($this->exister('recherche') == false) {
$this->parametres['recherche'] = 'stricte';
}
if ($this->exister('ns.format') == false) {
$this->parametres['ns.format'] = 'txt';
}
if ($this->exister('retour') == false) {
$this->parametres['retour'] = 'application/json';
}
if ($this->exister('retour.format') == false) {
$this->parametres['retour.format'] = 'max';
}
if ($this->exister('retour.langue') == false) {
$this->parametres['retour.langue'] = 'fr';
}
if ($this->exister('version.projet') == false) {
$this->parametres['version.projet'] = '+';
}
if ($this->exister('navigation.depart') == false) {
$this->parametres['navigation.depart'] = 0;
}
if ($this->exister('navigation.limite') == false) {
$this->parametres['navigation.limite'] = 100;
}
}
}
?>