annotate includes/class.requete.php @ 32:4cea8b128fdd

Possibilité de choisir des templates différents en fonction du type de sortie. Le fichier templates.conf permet d'associer à chaque type de sortie (correspondant à une section du fichier INI) des templates pour le squelette, les posts et les commentaires. Il est possible de définir virtuellement une infinité de type de sorties différents, pour le moment seul de quoi obtenir un flux Atom a été ajouté. Pour changer le type de sortie, il faut passer en GET au script appellant un paramètre outputType. Si le paramètre reçu ne correspondant à aucun des types de sorties définis dans templates.conf, alors on prend du xhtml par défaut.
author Franck Deroche <webmaster@defr.org>
date Mon, 05 Nov 2007 09:06:46 +0100
parents 629389204276
children 8d209692d734
rev   line source
webmaster@0 1 <?php
webmaster@0 2 /*
webmaster@0 3 Cette classe permet de filtrer tout le contenu entrant, et permet de se dispenser de
webmaster@0 4 toutes les super-globales.
webmaster@0 5 Element unique pour l'ensemble de la génération, on y accède via Factory::getRequest()
webmaster@0 6 */
webmaster@0 7 class Requete
webmaster@0 8 {
webmaster@0 9 private $arData;
webmaster@0 10
webmaster@0 11 public function __construct()
webmaster@0 12 {
webmaster@0 13 $this->loadArray($_POST, 'POST');
webmaster@0 14 $this->loadArray($_GET, 'GET');
webmaster@0 15 $this->loadArray($_COOKIE, 'COOKIE');
webmaster@0 16 }
webmaster@0 17
webmaster@0 18 // Chargement d'un tableau donné
webmaster@0 19 private function loadArray($array, $name = null)
webmaster@0 20 {
webmaster@0 21 $magic_quotes = (ini_get('magic_quotes_gpc') == '1');
webmaster@0 22 if(!is_array($array)) return;
webmaster@0 23 if(empty($name)) $name = md5(serialize(microtime()));
webmaster@0 24 foreach($array as $key => $value)
webmaster@0 25 {
webmaster@0 26 $this->arData[$key][$name] = ($magic_quotes) ? $value : addslashes($value);
webmaster@0 27 }
webmaster@0 28 }
webmaster@0 29
webmaster@0 30 // Récuperation d'une des variables
webmaster@0 31 public function get($varName, $orig = null, $default = '')
webmaster@0 32 {
webmaster@0 33 if(!isset($this->arData[$varName])) return $default;
webmaster@0 34 if(!empty($orig) && !isset($this->arData[$varName][$orig])) return $default;
webmaster@0 35 if(!empty($orig)) return $this->arData[$varName][$orig];
webmaster@0 36 return current($this->arData[$varName]);
webmaster@0 37 }
webmaster@0 38
webmaster@0 39 // Récuperation d'un tableau de variables dont le nom correspond à un pattern
webmaster@0 40 public function matchingPattern($preg_pattern, $orig = null)
webmaster@0 41 {
webmaster@0 42 $returnValue = array();
webmaster@0 43 foreach($this->arData as $key => $array)
webmaster@0 44 {
webmaster@0 45 if(!preg_match($preg_pattern, $key)) continue;
webmaster@0 46 $returnValue[$key] = $this->get($key, $orig);
webmaster@0 47 }
webmaster@0 48 return $returnValue;
webmaster@0 49 }
webmaster@0 50
webmaster@0 51 // Equivalent de |isset|
webmaster@0 52 public function varSet($varName, $orig = null)
webmaster@0 53 {
webmaster@0 54 if(!isset($this->arData[$varName])) return false;
webmaster@0 55 if(is_null($orig)) return true;
webmaster@0 56 return (isset($this->arData[$varName][$orig]));
webmaster@0 57 }
webmaster@0 58 }
webmaster@0 59 ?>