Mercurial > defr > DualBlog
changeset 35:e776701841ba
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.
author | Franck Deroche <webmaster@defr.org> |
---|---|
date | Mon, 05 Nov 2007 09:56:44 +0100 |
parents | efba519d2d32 |
children | a6c3716cab6a |
files | includes/class.skeleton.php |
diffstat | 1 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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