Valider 7550377c rédigé par esj's avatar esj
Parcourir les fichiers

Au retour d'Ajax, le codage final par des entités Unicode n'est plus...

Au retour d'Ajax, le codage final par des entités Unicode n'est plus nécessaire maintenant qu'il est réalisé sur les données d'entrées par _request, qui étaent en fait les seules à poser problème. Préciser le codage par la balise XML reste en revanche indispensable évidemment.

Du coup, index.php pourrait ne plus avoir besoin de distinguer les deux modes si:

- la balise xml était mise systématiquement dans les scripts lorsqu'ils retournent d'un appel Ajax (ils le savent);

- les fonctions exec_* effectuaient un return du texte à envoyer plutot que d'en faire l'echo 

... un chantier pour la 1.9.2.
parent dbc53040
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+7 −11
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -184,22 +184,18 @@ else

// Trouver la fonction eventuellement surchagee et l'appeler.
// Elle envoie parfois des en-tetes http,
// et en mode Ajax retourne un resultat, qu'il faut reencoder
// et en mode Ajax retourne un resultat.

$var_f = charger_fonction($exec);
$r = $var_f(); 

// Un retour d'Ajax est repere par cette variable, qui donne en + le charset
if (isset($var_ajaxcharset)) {
	
  	include_spip('inc/charsets');
	$charset = $GLOBALS['meta']["charset"];
// Un retour d'Ajax est repere par cette variable, 
// (qui donne en + le charset utilise par le client, utile a _request).
// Il faut preciser le charset utilise par le serveur,
// mais pas avec header(Content-Type ... charset): ca bloque MSIE

// Curieux: le content-type bloque MSIE!
//		@header('Content-type: text/html; charset=$charset');
if (isset($var_ajaxcharset)) {

	echo "<"."?xml version='1.0' encoding='$charset'?".">\n";
# gerer un charset minimaliste en convertissant tout en unicode &#xxx;
	echo charset2unicode($r, 'AUTO', true); 
	  echo "<","?xml version='1.0' encoding='",$GLOBALS['meta']["charset"],"'?",">\n", $r;
 }
?>