# HG changeset patch # User Franck Deroche # Date 1194253004 -3600 # Node ID e776701841ba45b1fbc2546d39cd2eb6041183d5 # Parent efba519d2d32a418a53fe965c1aa82059fe5cc90 Gestion plus flexible des content-type Cela permet notamment de gérer correctement le cas de Atom. Ca ne devrait toutefois probablement pas rester comme ça longtemps, il est plus que probable que le content-type passe lui aussi en paramètre de configuration dans les templates. diff -r efba519d2d32 -r e776701841ba includes/class.skeleton.php --- a/includes/class.skeleton.php Mon Nov 05 09:43:24 2007 +0100 +++ b/includes/class.skeleton.php Mon Nov 05 09:56:44 2007 +0100 @@ -217,13 +217,24 @@ public function __toString() { $this->prepareOutput(); $returnValue = parent::__toString(); - if($this->useXML) - header('Content-Type: application/xhtml+xml; charset=utf-8'); - else + $this->setContentTypeHeader(); + // L'ajout d'un preambule XML fait sortir IE de son mode de + // respect des standards + if(!$this->useXML) $returnValue = ereg_replace('<\?xml[^\?]*\?>', '', $returnValue); return $returnValue; } + private function setContentTypeHeader() { + $contentType = null; + if(Skeleton::getOutputType() == Skeleton::OUTPUT_ATOM) + $contentType = 'application/atom+xml'; + else if($this->useXML && Skeleton::getOutputType == Skeleton::OUTPUT_XHTML) + $contentType = 'application/xhtml+xml; charset=utf-8'; + if(!is_null($contentType)) + header('Content-Type: ' . $contentType); + } + public static function getTemplateFile($type) { if(count(Skeleton::$templates) == 0) { // Construction du tableau des différents templates