* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org) * @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL * @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL * @version $Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $ */ class Masque { const prefixe = 'masque.'; const masqueGeneral = 'masque'; private $masquesPossibles; private $parametres; private $masque; /** * Constructeur de la classe Masque * @param $masquesPossibles la liste des masques autorisés séparé par des ',' * */ public function __construct($masquesPossibles, $parametres = null) { if ($masquesPossibles != null && trim($masquesPossibles) == '') { $message = 'La liste des masques possibles est obligatoire'; $code = RestServeur::HTTP_CODE_ERREUR; throw new Exception($message, $code); } $this->masquesPossibles = explode(',', $masquesPossibles); $this->parametres = $parametres; $this->chargerMasque(); } /** * Parcourir le tableau Paramètres pour trouver tous les champs masque */ public function chargerMasque() { if ($this->parametres != null) { foreach ($this->parametres as $id => $parametre) { if (strpos($id, self::prefixe) === 0 || $id == self::masqueGeneral) { if (in_array(str_replace(self::prefixe, '', $id), $this->masquesPossibles)) { $this->masque[$id] = $parametre; } } } } } /** * Retourner les masques sous forme de chaine * @return String la chaine de caractère sous la forme masque=valeur&masque2=valeur*/ public function getChaineMasque() { if (!empty($this->masque)) { $chaine = array(); foreach ($this->masque as $id => $valeur) { $chaine[] = $id.'='.$valeur; } return implode('&', $chaine); } else { return ''; } } /** * Récupérer tout ou partie du masque * @param String $id (optionnel) l'idenfiant du masque * @return une chaine de caractère si l'identifiant est passé en paramètre, un tableau sinon * */ public function getMasque($id = null) { if (isset($id)) { return $this->masque[self::prefixe.$id]; } else { return $this->masque; } } } ?>