Rev 880 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php// TODO : il est peut être nécessaire de mieux distinguer les attributs parametres et parametresOrigine// TODO : déplacer les méthodes getMasquePourBdd et getPourBdd dans les DAOclass Parametres implements Iterator {private $parametres = array();private $parametresOrigine = array();private $parametresTypeEntier = array('navigation.limite', 'navigation.depart');private $bdd = null;public function __construct(Array $parametres, Bdd $bdd) {$this->parametresOrigine = $parametres;$this->parametres = $this->parametresOrigine;$this->bdd = $bdd;$this->definirValeursParDefaut();}public function current () {return current($this->parametresOrigine);}public function key() {return key($this->parametresOrigine);}public function next() {return next($this->parametresOrigine);}public function rewind() {return reset($this->parametresOrigine);}public function valid() {return current($this->parametresOrigine) == false ? false : true;}public function get($parametreCode) {$valeur = '';if ($this->exister($parametreCode)) {$valeur = $this->parametres[$parametreCode];}return $this->etreParametreDeTypeEntier($parametreCode) ? (int) $valeur : $valeur;}private function etreParametreDeTypeEntier($parametreCode) {$entier = in_array($parametreCode, $this->parametresTypeEntier) ? true : false;return $entier;}public function getListe($parametreCode) {$valeurs = array();if ($this->exister($parametreCode)) {$valeurs = explode(',', $this->parametres[$parametreCode]);$valeurs = array_map('trim', $valeurs);}return $valeurs;}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'] = (int) 0;}if ($this->exister('navigation.limite') == false) {$this->parametres['navigation.limite'] = (int) 100;}}}?>