From 3aee5d86ee72a0cfac292a19aefbbf165d759021 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Mon, 27 Nov 2006 18:08:11 +0000 Subject: [PATCH] le xml-hack que tout le monde attendait; on peut donc desormais mettre '<?xml' dans ses squelettes --- dist/backend-breves.html | 3 +-- dist/backend.html | 3 +-- ecrire/exec/statistiques_svg.php | 2 +- ecrire/public.php | 7 +++++++ ecrire/public/compiler.php | 3 +++ 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/dist/backend-breves.html b/dist/backend-breves.html index 969e19d172..87b57e8fad 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 69b9dda73c..51cc479f95 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 17d90c2292..f35fe509f2 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 78255e540d..966ebe06ff 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 793bbd7f53..c89d790f62 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(); -- GitLab