From 1069cb5969ed23284f851f05c85b30d232e2a572 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Wed, 20 May 2009 08:52:31 +0000 Subject: [PATCH] =?UTF-8?q?Suite=20de=20[14014]:=20=20le=20mod=C3=A8le=20{?= =?UTF-8?q?{{<text.html>}}}=20demande=20=C3=A0=20la=20fonction=20{{{conten?= =?UTF-8?q?u=5Fdocument}}}=20de=20deviner=20le=20charset=20si=20l'utilisat?= =?UTF-8?q?eur=20ne=20l'indique=20pas.=20Quand=20ce=20n'est=20pas=20de=20l?= =?UTF-8?q?'utf-8,=20cette=20fonction=20prend=20la=20valeur=20de=20la=20co?= =?UTF-8?q?nstante=20{{{CHARSET=5FJOINT}}},=20qui=20vaut=20{{{iso-8859-1>}?= =?UTF-8?q?}}=20en=20standard=20mais=20peut=20=C3=AAtre=20d=C3=A9finie=20d?= =?UTF-8?q?ans=20mes=5Foptions=20(C=C3=A9dric).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/inc/documents.php | 15 ++++++++++++--- prive/modeles/text.html | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php index b417b83230..68f2474ad2 100644 --- a/ecrire/inc/documents.php +++ b/ecrire/inc/documents.php @@ -44,7 +44,12 @@ function get_spip_doc($fichier) { return $fichier; } -// Filtre pour #FICHIER +// Constante indiquant le charset probable des documents non utf-8 joints + +@define('CHARSET_JOINT', 'iso-8859-1'); + +// Filtre pour #FICHIER permettant d'incruster le contenu d'un document +// Si 2e arg fourni, conversion dans le charset du site si possible // http://doc.spip.org/@contenu_document function contenu_document($arg, $charset='') @@ -64,9 +69,13 @@ function contenu_document($arg, $charset='') } $r = spip_file_get_contents($f); + if ($charset) { - include_spip('inc/charset'); - $r = importer_charset($r, $charset); + include_spip('inc/charset'); + if ($charset !== 'auto') { + $r = importer_charset($r, $charset); + } elseif ($GLOBALS['meta']['charset'] == 'utf-8' AND !is_utf8($r)) + $r = importer_charset($r, CHARSET_JOINT); } return $r; } diff --git a/prive/modeles/text.html b/prive/modeles/text.html index 0b3e5914d4..192e022ead 100644 --- a/prive/modeles/text.html +++ b/prive/modeles/text.html @@ -1,3 +1,3 @@ <BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout} - >[(#FICHIER|contenu_document{#ENV{charset}}|appliquer_filtre{#MIME_TYPE,filtre_text_txt_dist} + >[(#FICHIER|contenu_document{#ENV{charset,auto}}|appliquer_filtre{#MIME_TYPE,filtre_text_txt_dist} )]</BOUCLE_tous> -- GitLab