Mercurial > defr > DualBlog
view 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 |
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) { $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])); } } ?>