view includes/class.requete.php @ 52:829d6b0d3d0b

Lorsqu'on édite un billet ou un brouillon, on éplingle la zone. Cela permet de ne pas voir la zone de texte disparaitre si le curseur ne survole plus le li correspondant. A noter que le parentNode.parentNode n'est pas des plus esthétiques, et qu'il y reste quelques problèmes relatifs à la non suppression de l'état épinglé.
author Franck Deroche <webmaster@defr.org>
date Tue, 29 Jan 2008 11:33:33 +0100
parents 8d209692d734
children
line wrap: on
line source
<?php
/*
	Cette classe permet de filtrer tout le contenu entrant, et permet de se dispenser de
	toutes les super-globales.
	Element unique pour l'ensemble de la génération, on y accède via Factory::getRequest()
*/
	class Requete
	{
		private $arData;
		
		public function __construct()
		{
			$this->loadArray($_POST, 'POST');
			$this->loadArray($_GET, 'GET');
			$this->loadArray($_COOKIE, 'COOKIE');
		}
		
		// Chargement d'un tableau donné
		private function loadArray($array, $name = null)
		{
		    $magic_quotes = (ini_get('magic_quotes_gpc') == '1');
		    if(!is_array($array)) return;
		    if(empty($name)) $name = md5(serialize(microtime()));
		    foreach($array as $key => $value)
		    {
		    	if(empty($value)) $value = $key;
			$this->arData[$key][$name] = ($magic_quotes) ? $value : addslashes($value);
		    }
		}
		
		// Récuperation d'une des variables 
		public function get($varName, $orig = null, $default = '')
		{
			if(!isset($this->arData[$varName])) return $default;
			if(!empty($orig) && !isset($this->arData[$varName][$orig])) return $default;
			if(!empty($orig)) return $this->arData[$varName][$orig];
			return current($this->arData[$varName]);
		}
		
		// Récuperation d'un tableau de variables dont le nom correspond à un pattern
		public function matchingPattern($preg_pattern, $orig = null)
		{
			$returnValue = array();
			foreach($this->arData as $key => $array)
			{
				if(!preg_match($preg_pattern, $key)) continue;
				$returnValue[$key] = $this->get($key, $orig);
			}
			return $returnValue;
		}
		
		// Equivalent de |isset|
		public function varSet($varName, $orig = null)
		{
			if(!isset($this->arData[$varName])) return false;
			if(is_null($orig)) return true;
			return (isset($this->arData[$varName][$orig]));
		}
	}
?>