diff --git a/dist/backend-breves.html b/dist/backend-breves.html index 969e19d1721d15b97eedc625f7b5e2b1da3389bd..87b57e8fadcd66ab10e3b9a2ce4958039f10a2b1 100644 --- a/dist/backend-breves.html +++ b/dist/backend-breves.html @@ -1,6 +1,5 @@ #CACHE{3600} -[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})] -<?php echo '<' ?>?xml version="1.0"[ encoding="(#CHARSET)"]?> +<?xml version="1.0"[ encoding="(#CHARSET)"]?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" diff --git a/dist/backend.html b/dist/backend.html index 69b9dda73c9bec0bb503f13f117e71adbd59462d..51cc479f950b11528eae0ddce13b6c35ba51bcfa 100644 --- a/dist/backend.html +++ b/dist/backend.html @@ -1,6 +1,5 @@ #CACHE{3600} -[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})] -<?php echo '<' ?>?xml version="1.0"[ encoding="(#CHARSET)"]?> +<?xml version="1.0"[ encoding="(#CHARSET)"]?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" diff --git a/ecrire/exec/statistiques_svg.php b/ecrire/exec/statistiques_svg.php index 17d90c2292c70a35828f4b3d26985cd03652f91a..f35fe509f2f76d22e02843e41cd8a75eb71ff63b 100644 --- a/ecrire/exec/statistiques_svg.php +++ b/ecrire/exec/statistiques_svg.php @@ -49,7 +49,7 @@ if ($connect_statut != '0minirezo') { header("Expires: ".$expire." GMT"); header("Content-type: image/svg+xml"); - echo "<?xml version=\"1.0\" standalone=\"no\"?>\n"; + echo "<"."?xml version=\"1.0\" standalone=\"no\"?>\n"; echo "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n"; echo "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"450\" height=\"310\" x=\"0\" y=\"0\">\n"; echo "<style type='text/css'>\n"; diff --git a/ecrire/public.php b/ecrire/public.php index 78255e540d43942c98c3308766d2f42c8b6f13c0..966ebe06ff08969a343b259a51ae923e819a1e0c 100644 --- a/ecrire/public.php +++ b/ecrire/public.php @@ -122,6 +122,10 @@ if (defined('_INC_PUBLIC')) { // Execution de la page calculee + // 0. xml-hack + $xml_hack = ($page['entetes']['X-Xml-Hack'] == 'ok'); + unset($page['entetes']['X-Xml-Hack']); + // 1. Cas d'une page contenant uniquement du HTML : if ($page['process_ins'] == 'html') { foreach($page['entetes'] as $k => $v) @header("$k: $v"); @@ -193,6 +197,9 @@ if (defined('_INC_PUBLIC')) { $page['texte'] = $r[1]; } + // Report du hack pour <?xml (cf. public/compiler.php) + if ($xml_hack) + $page['texte'] = str_replace("<\1?xml", '<'.'?xml', $page['texte']); // (c'est ici qu'on fait var_recherche, tidy, boutons d'admin, // cf. public/assembler.php) diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 793bbd7f5342ce12368f6a9df4c457ac3a196fd1..c89d790f62630719a3f9149bdf574a19a3128b1b 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -660,6 +660,9 @@ function public_compiler_dist($squelette, $nom, $gram, $sourcefile) { include_spip('inc/charsets'); $squelette = transcoder_page($squelette); + // Hacke un eventuel tag xml "<?xml" pour qu'il ne soit pas traite comme php + $squelette = str_replace('<'.'?xml', "#HTTP_HEADER{X-Xml-Hack: ok}[(#HTTP_HEADER{Content-type: text/xml[; charset=(#CHARSET)]})]<\1?xml", $squelette); + // Phraser le squelette, selon sa grammaire // pour le moment: "html" seul connu (HTML+balises BOUCLE) $boucles = array();