Subversion Repositories eFlore/Projets.eflore-projets

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

<?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;
                }
        }
}
?>