From 10df78543bf4a1afd5ee11c9c508658ef0b1bcc4 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Sat, 7 Oct 2006 11:47:37 +0000
Subject: [PATCH] =?UTF-8?q?Suite=20[7549]:=20Introduction=20de=20la=20fonc?=
 =?UTF-8?q?tion=20ajax=5Fretour=20utilis=C3=A9s=20par=20TOUS=20les=20scrip?=
 =?UTF-8?q?ts=20envoyant=20une=20r=C3=A9ponse=20Ajax.=20Cette=20fonction?=
 =?UTF-8?q?=20est=20en=20fait=20le=20bout=20de=20code=20figurant=20auparav?=
 =?UTF-8?q?ant=20dans=20index.php=20qui=20n'a=20ainsi=20plus=20besoin=20de?=
 =?UTF-8?q?=20distinguer=20les=20deux=20formes=20de=20retour=20et=20est=20?=
 =?UTF-8?q?donc=20plus=20court.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Cette simplification a été rendue possible en inversant le chantier prévu lors de la [7310]: les scripts en réponse Ajax utilisent echo, via ajax_retour. Un fichier index.php comportant l'unique echo de tout le code PHP de l'espace privé reste l'objectif final, mais il est préférable d'unifier d'abord ainsi, et de basculer lorsque chaque script de exec/ ne comportera plus qu'un seul echo.
---
 ecrire/exec/articles_forum.php        |  2 +-
 ecrire/exec/auteurs.php               | 10 ++++------
 ecrire/exec/calendrier.php            |  2 +-
 ecrire/exec/controle_forum.php        |  4 ++--
 ecrire/exec/dater.php                 |  4 ++--
 ecrire/exec/discuter.php              |  4 ++--
 ecrire/exec/editer_auteurs.php        |  4 ++--
 ecrire/exec/editer_mot.php            |  4 ++--
 ecrire/exec/gadgets.php               |  2 +-
 ecrire/exec/grouper_mots.php          |  6 +++---
 ecrire/exec/iconifier.php             |  4 ++--
 ecrire/exec/informer.php              |  5 ++---
 ecrire/exec/instituer_auteur.php      |  4 ++--
 ecrire/exec/legender.php              |  4 ++--
 ecrire/exec/memoriser.php             |  2 +-
 ecrire/exec/petitionner.php           |  4 ++--
 ecrire/exec/plonger.php               |  2 +-
 ecrire/exec/poster.php                |  4 ++--
 ecrire/exec/rechercher.php            |  8 +++-----
 ecrire/exec/referencer_traduction.php |  4 ++--
 ecrire/exec/rubriquer.php             |  4 ++--
 ecrire/exec/selectionner.php          |  2 +-
 ecrire/exec/tourner.php               |  5 ++---
 ecrire/exec/virtualiser.php           |  4 ++--
 ecrire/inc/actions.php                | 16 ++++++++++++----
 ecrire/inc/agenda.php                 |  3 ++-
 ecrire/inc/dater.php                  |  2 +-
 ecrire/inc/discuter.php               | 10 ++++------
 ecrire/inc/documenter.php             |  2 +-
 ecrire/inc/editer_auteurs.php         |  2 +-
 ecrire/inc/editer_mot.php             |  2 +-
 ecrire/inc/forum.php                  | 12 ++++++------
 ecrire/inc/iconifier.php              |  2 +-
 ecrire/inc/legender.php               |  2 +-
 ecrire/inc/petitionner.php            |  2 +-
 ecrire/inc/poster.php                 |  2 +-
 ecrire/inc/referencer_traduction.php  |  2 +-
 ecrire/inc/tourner.php                |  2 +-
 ecrire/inc/utils.php                  |  2 +-
 ecrire/inc/virtualiser.php            |  2 +-
 ecrire/index.php                      | 20 +-------------------
 41 files changed, 83 insertions(+), 100 deletions(-)

diff --git a/ecrire/exec/articles_forum.php b/ecrire/exec/articles_forum.php
index d474adcd2d..924957fbbf 100644
--- a/ecrire/exec/articles_forum.php
+++ b/ecrire/exec/articles_forum.php
@@ -49,7 +49,7 @@ function exec_articles_forum_dist()
 
 	$droit= acces_rubrique($id_rubrique);
 
-	if (_request('var_ajaxcharset') AND $droit) return $mess;
+	if (_request('var_ajaxcharset') AND $droit) ajax_retour($mess);
 
  	pipeline('exec_init',array('args'=>array('exec'=>'articles_forum','id_article'=>$id_article),'data'=>''));
 
diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php
index 602d4f4b08..93525d54e8 100644
--- a/ecrire/exec/auteurs.php
+++ b/ecrire/exec/auteurs.php
@@ -58,7 +58,7 @@ while ($auteur = spip_fetch_array($result)) {
 
  $res = auteurs_tranches($auteurs, $debut, $lettre, $tri, $visiteurs, $max_par_page, $nombre_auteurs);
 
-  if (_request('var_ajaxcharset')) return $res;
+ if (_request('var_ajaxcharset')) ajax_retour($res);
 
   pipeline('exec_init',array('args'=>array('exec'=>'auteurs'),'data'=>''));
 
@@ -225,12 +225,10 @@ function auteurs_href($clic, $args='', $att='')
 {
 	$h = generer_url_ecrire('auteurs', $args);
 	$a = 'auteurs';
-	if ($_COOKIE['spip_accepte_ajax'] != 1 )
-		$evt = '';
-        else 
-		$evt = "\nonclick='return AjaxSqueeze(\"$h\",\n\t\"$a\")'";
+	if ($_COOKIE['spip_accepte_ajax'] == 1 )
+		$att .= ("\nonclick=" . ajax_action_declencheur("\"$h\"",$a));
 
-	return "<a$att href='$h#$a'$evt>$clic</a>";
+	return "<a href='$h#$a'$att>$clic</a>";
 }
 
 // http://doc.spip.org/@requete_auteurs
diff --git a/ecrire/exec/calendrier.php b/ecrire/exec/calendrier.php
index b7e34699dd..ab988ef14b 100644
--- a/ecrire/exec/calendrier.php
+++ b/ecrire/exec/calendrier.php
@@ -44,7 +44,7 @@ function exec_calendrier_dist()
 
   $r = http_calendrier_init('', $type, '','',generer_url_ecrire('calendrier', ($type ? "type=$type" : '')) . "#$ancre");
 
-  if (_request('var_ajaxcharset')) return $r;
+  if (_request('var_ajaxcharset')) ajax_retour($r);
 
   debut_page($titre, "accueil", "calendrier");
   echo "\n<div>&nbsp;</div>\n<div id='", $ancre, "'>",$r,'</div>';
diff --git a/ecrire/exec/controle_forum.php b/ecrire/exec/controle_forum.php
index df33035388..c27ab400e5 100644
--- a/ecrire/exec/controle_forum.php
+++ b/ecrire/exec/controle_forum.php
@@ -197,7 +197,7 @@ function controle_un_forum($row) {
 function exec_controle_forum_dist()
 {
 
-  global $type, $debut, $debut_id_forum, $id_rubrique, $connect_statut, $connect_toutes_rubriques;
+	global $type, $debut, $debut_id_forum, $id_rubrique, $connect_statut, $connect_toutes_rubriques;
 
 	$debut= intval($debut);
 	$id_rubrique = intval($id_rubrique);
@@ -230,7 +230,7 @@ function exec_controle_forum_dist()
 		   (!$id_rubrique OR !acces_rubrique($id_rubrique))));
 
 	if (_request('var_ajaxcharset') AND !$droit) {
-		return $mess;
+		ajax_retour($mess);
 	} else {
 
 		debut_page(_T('titre_page_forum_suivi'), "forum", "forum-controle");
diff --git a/ecrire/exec/dater.php b/ecrire/exec/dater.php
index d99f879295..008682e174 100644
--- a/ecrire/exec/dater.php
+++ b/ecrire/exec/dater.php
@@ -29,7 +29,7 @@ function exec_dater_dist()
 	$date = $row["date"];
 	$date_redac = $row["date_redac"];
 
-	$f = charger_fonction('dater', 'inc');
-	return $f($id_article, 'ajax', $statut_article, $date, $date_redac);
+	$dater = charger_fonction('dater', 'inc');
+	ajax_retour($dater($id_article, 'ajax', $statut_article, $date, $date_redac));
 }
 ?>
diff --git a/ecrire/exec/discuter.php b/ecrire/exec/discuter.php
index 509afc763a..70068e3b21 100644
--- a/ecrire/exec/discuter.php
+++ b/ecrire/exec/discuter.php
@@ -16,7 +16,7 @@ function exec_discuter_dist()
 {
 	$debut = _request('debut');
 	$id_article = _request('id_article');
-	$f = charger_fonction('discuter', 'inc');
-	return $f($id_article, 'ajax', $debut);
+	$discuter = charger_fonction('discuter', 'inc');
+	ajax_retour($discuter($id_article, 'ajax', $debut));
 }
 ?>
diff --git a/ecrire/exec/editer_auteurs.php b/ecrire/exec/editer_auteurs.php
index a3ecc65ba8..c4505a1341 100644
--- a/ecrire/exec/editer_auteurs.php
+++ b/ecrire/exec/editer_auteurs.php
@@ -22,7 +22,7 @@ function exec_editer_auteurs_dist()
 		minipres(_T('info_acces_interdit'));
 	}
 
-	$f = charger_fonction('editer_auteurs', 'inc');
-	return $f($id_article, 'ajax', _request('cherche_auteur'), _request('ids'));
+	$editer_auteurs = charger_fonction('editer_auteurs', 'inc');
+	ajax_retour($editer_auteurs($id_article, 'ajax', _request('cherche_auteur'), _request('ids')));
 }
 ?>
diff --git a/ecrire/exec/editer_mot.php b/ecrire/exec/editer_mot.php
index d42cd65c38..61ee17ae63 100644
--- a/ecrire/exec/editer_mot.php
+++ b/ecrire/exec/editer_mot.php
@@ -42,7 +42,7 @@ function exec_editer_mot_dist()
 
 	$ch = _request('cherche_mot');
 	$id_groupe = _request('select_groupe');
-	$f = charger_fonction('editer_mot', 'inc');
-	return $f($objet, $id_objet, $ch, $id_groupe, 'ajax'); 
+	$editer_mot = charger_fonction('editer_mot', 'inc');
+	ajax_retour($editer_mot($objet, $id_objet, $ch, $id_groupe, 'ajax')); 
 }
 ?>
diff --git a/ecrire/exec/gadgets.php b/ecrire/exec/gadgets.php
index 6ac62a300b..87412a48e7 100644
--- a/ecrire/exec/gadgets.php
+++ b/ecrire/exec/gadgets.php
@@ -18,6 +18,6 @@ function exec_gadgets_dist()
 	$gadget = _request('gadget');
 	$gadgets = charger_fonction('gadgets', 'inc');
 
-	return $gadgets($id_rubrique, $gadget);
+	ajax_retour($gadgets($id_rubrique, $gadget));
 }
 ?>
diff --git a/ecrire/exec/grouper_mots.php b/ecrire/exec/grouper_mots.php
index 801656c2df..b22d32521a 100644
--- a/ecrire/exec/grouper_mots.php
+++ b/ecrire/exec/grouper_mots.php
@@ -16,8 +16,8 @@ function exec_grouper_mots_dist()
 {
 	$id_groupe = intval(_request('id_groupe'));
 	$cpt = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_mots WHERE id_groupe=$id_groupe"));
-	if (! ($cpt = $cpt['n'])) return '' ;
-	$f = charger_fonction('grouper_mots', 'inc');
-	return $f($id_groupe, $cpt);
+	if (! ($cpt = $cpt['n'])) ajax_retour('') ;
+	$grouper_mots = charger_fonction('grouper_mots', 'inc');
+	ajax_retour($grouper_mots($id_groupe, $cpt));
 }
 ?>
diff --git a/ecrire/exec/iconifier.php b/ecrire/exec/iconifier.php
index d565435c2d..f2bd535d35 100644
--- a/ecrire/exec/iconifier.php
+++ b/ecrire/exec/iconifier.php
@@ -46,7 +46,7 @@ function exec_iconifier_dist()
 		minipres(_T('info_acces_interdit'));
 	}
 
-	$f = charger_fonction('iconifier', 'inc');
-	return $f($type, $id, $script);
+	$iconifier = charger_fonction('iconifier', 'inc');
+	ajax_retour($iconifier($type, $id, $script));
 }
 ?>
diff --git a/ecrire/exec/informer.php b/ecrire/exec/informer.php
index db6928402a..f3a2a6b878 100644
--- a/ecrire/exec/informer.php
+++ b/ecrire/exec/informer.php
@@ -16,13 +16,12 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 function exec_informer_dist()
 {
-
 	$id = intval(_request('id'));
 	$col = intval(_request('col'));
 	$exclus = intval(_request('exclus'));
 
-	$f = charger_fonction('informer', 'inc');
-	return $f($id, $col, $exclus, _request('rac'), _request('type'));
+	$informer = charger_fonction('informer', 'inc');
+	ajax_retour($informer($id, $col, $exclus, _request('rac'), _request('type')));
 }
 
 ?>
diff --git a/ecrire/exec/instituer_auteur.php b/ecrire/exec/instituer_auteur.php
index 9f787cc80c..a8259fac3b 100644
--- a/ecrire/exec/instituer_auteur.php
+++ b/ecrire/exec/instituer_auteur.php
@@ -20,7 +20,7 @@ function exec_instituer_auteur_dist()
 
 	$r = spip_fetch_array(spip_query("SELECT statut FROM spip_auteurs WHERE id_auteur=$id_auteur"));
 
-	$f = charger_fonction('instituer_auteur', 'inc');
-	return $f($id_auteur, $r['statut'] , $script);
+	$instituer_auteur = charger_fonction('instituer_auteur', 'inc');
+	ajax_retour($instituer_auteur($id_auteur, $r['statut'], $script));
 }
 ?>
diff --git a/ecrire/exec/legender.php b/ecrire/exec/legender.php
index ffee2fbfc1..3ab6e375c3 100644
--- a/ecrire/exec/legender.php
+++ b/ecrire/exec/legender.php
@@ -26,7 +26,7 @@ function exec_legender_dist()
 		minipres(_T('info_acces_interdit'));
 	}
 
-	$f = charger_fonction('legender', 'inc');
-	return $f($id_document, array(), $script, $type, $id, $ancre);
+	$legender = charger_fonction('legender', 'inc');
+	ajax_retour($legender($id_document, array(), $script, $type, $id, $ancre));
 }
 ?>
diff --git a/ecrire/exec/memoriser.php b/ecrire/exec/memoriser.php
index 04181934b2..8bf7c7f135 100644
--- a/ecrire/exec/memoriser.php
+++ b/ecrire/exec/memoriser.php
@@ -40,7 +40,7 @@ function exec_memoriser_dist()
 	if ($flag_ob) {
 			$res = ob_get_contents();
 			ob_end_clean();
-			return $res;
+			ajax_retour($res);
 	}
 }
 ?>
diff --git a/ecrire/exec/petitionner.php b/ecrire/exec/petitionner.php
index 13504afe18..bc2ccce52c 100644
--- a/ecrire/exec/petitionner.php
+++ b/ecrire/exec/petitionner.php
@@ -23,7 +23,7 @@ function exec_petitionner_dist()
 		minipres(_T('info_acces_interdit'));
 	}
 
-	$f = charger_fonction('petitionner', 'inc');
-	return $f($id_article, $script, "&id_article=$id_article", 'ajax');
+	$petitionner = charger_fonction('petitionner', 'inc');
+	ajax_retour($petitionner($id_article, $script, "&id_article=$id_article", 'ajax'));
 }
 ?>
diff --git a/ecrire/exec/plonger.php b/ecrire/exec/plonger.php
index 79e4fca57b..8cf35c1116 100644
--- a/ecrire/exec/plonger.php
+++ b/ecrire/exec/plonger.php
@@ -24,7 +24,7 @@ function exec_plonger_dist()
 
 	include_spip('inc/texte');
 	include_spip('inc/mini_nav');
-	return mini_afficher_rubrique ($id, htmlentities($rac), array(), $col, $exclus);
+	ajax_retour(mini_afficher_rubrique($id, htmlentities($rac), array(), $col, $exclus));
 }
 
 ?>
diff --git a/ecrire/exec/poster.php b/ecrire/exec/poster.php
index 8dca366bfe..75ea6225f3 100644
--- a/ecrire/exec/poster.php
+++ b/ecrire/exec/poster.php
@@ -23,7 +23,7 @@ function exec_poster_dist()
 		minipres(_T('info_acces_interdit'));
 	}
 
-	$f = charger_fonction('poster', 'inc');
-	return $f($id_article, $script, "&id_article=$id_article", true);
+	$poster = charger_fonction('poster', 'inc');
+	ajax_retour($poster($id_article, $script, "&id_article=$id_article", true));
 }
 ?>
diff --git a/ecrire/exec/rechercher.php b/ecrire/exec/rechercher.php
index 163f428980..2d57435151 100644
--- a/ecrire/exec/rechercher.php
+++ b/ecrire/exec/rechercher.php
@@ -95,12 +95,10 @@ function exec_rechercher_dist()
 			}
 				
 		}
-		if ($ret)
-			return $ret;
-		else
-			return "<div style='padding: 5px; color: red;'><b>"
+		if (!$ret)
+			$ret =  "<div style='padding: 5px; color: red;'><b>"
 			.htmlentities($type)
 			."</b> :  "._T('avis_aucun_resultat')."</div>";
-
+		ajax_retour($ret);
 }
 ?>
diff --git a/ecrire/exec/referencer_traduction.php b/ecrire/exec/referencer_traduction.php
index aac697015e..e4a385cc83 100644
--- a/ecrire/exec/referencer_traduction.php
+++ b/ecrire/exec/referencer_traduction.php
@@ -24,7 +24,7 @@ function exec_referencer_traduction_dist()
 
 	$row = spip_fetch_array(spip_query("SELECT id_trad, id_rubrique FROM spip_articles WHERE id_article=$id_article"));
 
-	$f = charger_fonction('referencer_traduction', 'inc');
-	return $f($id_article, 'ajax', $row['id_rubrique'], $row['id_trad']); 
+	$referencer_traduction = charger_fonction('referencer_traduction', 'inc');
+	ajax_retour($referencer_traduction($id_article, 'ajax', $row['id_rubrique'], $row['id_trad'])); 
 }
 ?>
diff --git a/ecrire/exec/rubriquer.php b/ecrire/exec/rubriquer.php
index 55ea8dc9cd..428a6cecb4 100644
--- a/ecrire/exec/rubriquer.php
+++ b/ecrire/exec/rubriquer.php
@@ -21,7 +21,7 @@ function exec_rubriquer_dist()
 
 	include_spip('inc/texte');
 	include_spip('inc/mini_nav');
-	return mini_nav ($id, "aff_nav_recherche", 
+	ajax_retour(mini_nav($id, "aff_nav_recherche", 
 			"document.location.href='" . generer_url_ecrire('naviguer', "id_rubrique=::sel::") .
-			"';", 0, true);
+			      "';", 0, true));
 }
diff --git a/ecrire/exec/selectionner.php b/ecrire/exec/selectionner.php
index 3eab8f8f9b..e35ea74452 100644
--- a/ecrire/exec/selectionner.php
+++ b/ecrire/exec/selectionner.php
@@ -23,7 +23,7 @@ function exec_selectionner_dist()
 
 	include_spip('inc/texte');
 	include_spip('inc/mini_nav');
-	return mini_nav ($id, "choix_parent", "this.form.id_rubrique.value=::sel::;this.form.titreparent.value='::sel2::';findObj_forcer('selection_rubrique').style.display='none';", $exclus, $rac, $type!='breve');
+	ajax_retour(mini_nav($id, "choix_parent", "this.form.id_rubrique.value=::sel::;this.form.titreparent.value='::sel2::';findObj_forcer('selection_rubrique').style.display='none';", $exclus, $rac, $type!='breve'));
 
 }
 ?>
diff --git a/ecrire/exec/tourner.php b/ecrire/exec/tourner.php
index 6657a6f283..e0035065fd 100644
--- a/ecrire/exec/tourner.php
+++ b/ecrire/exec/tourner.php
@@ -26,9 +26,8 @@ function exec_tourner_dist()
 		minipres(_T('info_acces_interdit'));
 	}
 
-	$f = charger_fonction('tourner', 'inc');
-
-	return $f($id_document, array(), $script, 'ajax', $type);
+	$tourner = charger_fonction('tourner', 'inc');
+	ajax_retour($tourner($id_document, array(), $script, 'ajax', $type));
 }
 
 ?>
diff --git a/ecrire/exec/virtualiser.php b/ecrire/exec/virtualiser.php
index fa5ac36eed..792b8c34cf 100644
--- a/ecrire/exec/virtualiser.php
+++ b/ecrire/exec/virtualiser.php
@@ -30,7 +30,7 @@ function exec_virtualiser_dist()
 			$virtuel = substr($virtuel, 1);
 	}
 
-	$f = charger_fonction('virtualiser', 'inc');
-	return  $f($id_article, 'ajax', $virtuel, "articles", "id_article=$id_article");
+	$virtualiser = charger_fonction('virtualiser', 'inc');
+	ajax_retour($virtualiser($id_article, 'ajax', $virtuel, "articles", "id_article=$id_article"));
 }
 ?>
diff --git a/ecrire/inc/actions.php b/ecrire/inc/actions.php
index 37878b18c5..bb74e9df18 100644
--- a/ecrire/inc/actions.php
+++ b/ecrire/inc/actions.php
@@ -160,7 +160,7 @@ function ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args
 				"var_ajaxcharset=utf-8&script=$script$args_ajax",
 				$corps,
 				(" method='post'\nonsubmit="
-				 . declencheur_action_ajax('this', $ancre, $fct_ajax)));
+				 . ajax_action_declencheur('this', $ancre, $fct_ajax)));
 				 
 		}
 	}
@@ -184,12 +184,12 @@ function ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args
 
 		if ($att) $clic = "\n<div$att>$clic</div>";
 		return "<a href='$href'\nonclick="
-		.  declencheur_action_ajax("\"$ajax\"", $ancre, $fct_ajax)
+		.  ajax_action_declencheur("\"$ajax\"", $ancre, $fct_ajax)
 		. ">$clic</a>";
 	}
 }
 
-function declencheur_action_ajax($request, $noeud, $fct_ajax)
+function ajax_action_declencheur($request, $noeud, $fct_ajax='')
 {
 	return "'return AjaxSqueeze("
 	. $request
@@ -200,13 +200,21 @@ function declencheur_action_ajax($request, $noeud, $fct_ajax)
 	. ")'";
 }
 
-function greffe_action_ajax($idom, $corps)
+function ajax_action_greffe($idom, $corps)
 {
 	return _request('var_ajaxcharset')
 	? $corps
 	: "\n<div id='$idom'$atts>$corps</div>";
 }
 
+function ajax_retour($corps)
+{
+	$c = $GLOBALS['meta']["charset"];
+	header('Content-Type: text/html; charset='. $c);
+	echo '<', "?xml version='1.0' encoding='", $c, "'?", ">\n", $corps;
+	exit;
+}
+
 // http://doc.spip.org/@determine_upload
 function determine_upload()
 {
diff --git a/ecrire/inc/agenda.php b/ecrire/inc/agenda.php
index 2305a481ce..7abfd1569a 100644
--- a/ecrire/inc/agenda.php
+++ b/ecrire/inc/agenda.php
@@ -85,7 +85,8 @@ function calendrier_href($script, $annee, $mois, $jour, $type, $fin, $ancre, $im
 
 		return http_href("$h$a", $clic, $titre, $style, $class, $evt);
 	else {
-		return "<a$c$s\nhref='$h$a' $evt\nonclick='return AjaxSqueeze(\"$h\",\n\t\"$ancre\")'>$clic</a>";
+		$evt .= "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre);
+		return "<a$c$s\nhref='$h$a'$evt>$clic</a>";
 	}
 }
 
diff --git a/ecrire/inc/dater.php b/ecrire/inc/dater.php
index 333a63a137..b530e6ca4f 100644
--- a/ecrire/inc/dater.php
+++ b/ecrire/inc/dater.php
@@ -159,7 +159,7 @@ function inc_dater_dist($id_article, $flag, $statut_article, $date, $date_redac)
 
   $res =  debut_cadre_couleur('',true) . $res .  fin_cadre_couleur(true);
 
-  return greffe_action_ajax("dater-$id_article", $res);
+  return ajax_action_greffe("dater-$id_article", $res);
 }
 
 ?>
diff --git a/ecrire/inc/discuter.php b/ecrire/inc/discuter.php
index 113de6ad01..ffcf4c7aed 100644
--- a/ecrire/inc/discuter.php
+++ b/ecrire/inc/discuter.php
@@ -18,7 +18,7 @@ include_spip('inc/presentation');
 // http://doc.spip.org/@formulaire_discuter
 function formulaire_discuter($query, $total, $debut, $total_afficher, $script, $args, $mute=false)
 {
-	$res = $nav ='';
+	$nav ='';
 	if ($total > $total_afficher) {
 		$evt = $_COOKIE['spip_accepte_ajax'] == 1;
 		$nav = "<div class='serif2' align='center'>";
@@ -32,7 +32,7 @@ function formulaire_discuter($query, $total, $debut, $total_afficher, $script, $
 					$h = generer_url_ecrire($script, $a);
 				} else {
 					$h = generer_url_ecrire('discuter', $a);
-					$evt = "\nonclick='return AjaxSqueeze(\"$h\",\n\t\"forum\")'";
+					$evt = "\nonclick=" . ajax_action_declencheur("\"$h\"",'forum');
 				}
 				$nav .= "[<a href='$h#forum'$evt>$i-$y</a>] ";
 			}
@@ -40,12 +40,10 @@ function formulaire_discuter($query, $total, $debut, $total_afficher, $script, $
 		$nav .= "</div>";
 	}
 
-	$res = $nav 
+	return $nav 
 	. afficher_forum($query, $script, $args, $mute)
 	. "<br />"
 	. $nav;
-
-	return $res;
 }
 
 function inc_discuter_dist($id_article, $flag, $debut=1)
@@ -65,6 +63,6 @@ function inc_discuter_dist($id_article, $flag, $debut=1)
 		$res = formulaire_discuter($forum, $res, $debut, $total_afficher, 'articles', "id_article=$id_article");
 	} else $res ='';
 
-	return greffe_action_ajax("forum", $res);
+	return ajax_action_greffe("forum", $res);
 }
 ?>
diff --git a/ecrire/inc/documenter.php b/ecrire/inc/documenter.php
index be4bcf40be..6ac4106184 100644
--- a/ecrire/inc/documenter.php
+++ b/ecrire/inc/documenter.php
@@ -107,5 +107,5 @@ function inc_documenter_dist(
 	. $res
 	. "</table>";	  
 
-	return greffe_action_ajax("documenter-$s$doc", $res, $flag==='ajax');
+	return ajax_action_greffe("documenter-$s$doc", $res, $flag==='ajax');
 }
diff --git a/ecrire/inc/editer_auteurs.php b/ecrire/inc/editer_auteurs.php
index 49f2aeb733..85a0edfe14 100644
--- a/ecrire/inc/editer_auteurs.php
+++ b/ecrire/inc/editer_auteurs.php
@@ -96,7 +96,7 @@ function inc_editer_auteurs_dist($id_article, $flag, $cherche_auteur, $ids)
  . fin_block()
  . fin_cadre_enfonce(true);
 
- return greffe_action_ajax("editer_auteurs-$id_article", $res);
+ return ajax_action_greffe("editer_auteurs-$id_article", $res);
 }
 
 // http://doc.spip.org/@rechercher_auteurs_articles
diff --git a/ecrire/inc/editer_mot.php b/ecrire/inc/editer_mot.php
index 3c22559d3b..d58c365e1b 100644
--- a/ecrire/inc/editer_mot.php
+++ b/ecrire/inc/editer_mot.php
@@ -93,7 +93,7 @@ function inc_editer_mot_dist($objet, $id_objet, $cherche_mot, $select_groupe, $f
 	  . $form
 	  . fin_cadre_enfonce(true);
 
-	return greffe_action_ajax("editer_mot-$id_objet", $res);
+	return ajax_action_greffe("editer_mot-$id_objet", $res);
 }
 
 // http://doc.spip.org/@inserer_mot
diff --git a/ecrire/inc/forum.php b/ecrire/inc/forum.php
index 8c3b069508..8163b6e299 100644
--- a/ecrire/inc/forum.php
+++ b/ecrire/inc/forum.php
@@ -17,7 +17,7 @@ function affiche_navigation_forum($script, $args, $debut, $i, $pack, $ancre, $qu
 {
 	$nav = ($i <=0) ? '' : ("<a href='" . generer_url_ecrire($script, $args) ."'>0</a> ... |\n");
 
-	$evt = ($_COOKIE['spip_accepte_ajax'] == 1 );
+	$e = ($_COOKIE['spip_accepte_ajax'] == 1 );
 
 	$n = spip_num_rows($query);
 
@@ -27,9 +27,9 @@ function affiche_navigation_forum($script, $args, $debut, $i, $pack, $ancre, $qu
 			if ($i == $debut)
 				$nav .= "<font size=3><b>$i</b></font> |\n";
 			else {
-				$h = generer_url_ecrire($script, $args . "&debut=$i", $evt);
-				if ($evt) $evt = "\nonclick='return AjaxSqueeze(\"$h\",\n\t\"$ancre\")'";
-				$nav .= "<a href='$h'$evt>$i</a> |\n";
+				$h = generer_url_ecrire($script, $args . "&debut=$i", $e);
+				if ($e)	$e = "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre);
+				$nav .= "<a href='$h'$e>$i</a> |\n";
 			}
 		}
 		$i ++;
@@ -37,9 +37,9 @@ function affiche_navigation_forum($script, $args, $debut, $i, $pack, $ancre, $qu
 
 	$h = generer_url_ecrire($script, $args . "&debut=$i");
 
-	if ($evt) $evt = "\nonclick='return AjaxSqueeze(\"$h\",\n\t\"$ancre\")'";
+	if ($e)	$e = "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre);
 
-	return "$nav<a href='$h'$evt>...</a> |";
+	return "$nav<a href='$h'$e>...</a> |";
 }
 
 
diff --git a/ecrire/inc/iconifier.php b/ecrire/inc/iconifier.php
index f958efea89..a4223a4bd8 100644
--- a/ecrire/inc/iconifier.php
+++ b/ecrire/inc/iconifier.php
@@ -50,7 +50,7 @@ function inc_iconifier_dist($id_objet, $id,  $script) {
 	. "</div>"
 	. fin_cadre_relief(true);
 
-	return greffe_action_ajax("iconifier-$id", $res);
+	return ajax_action_greffe("iconifier-$id", $res);
 }
 
 global $logo_libelles;
diff --git a/ecrire/inc/legender.php b/ecrire/inc/legender.php
index 92de13a3c5..3f9241bdf3 100644
--- a/ecrire/inc/legender.php
+++ b/ecrire/inc/legender.php
@@ -119,7 +119,7 @@ function inc_legender_dist($id_document, $document, $script, $type, $id, $ancre)
 	. block_parfois_visible("legender-aff-$id_document", $entete, $corps, "text-align:center;", $flag)
 	. "</div>";
 
-	return greffe_action_ajax("legender-$id_document", $corps);
+	return ajax_action_greffe("legender-$id_document", $corps);
 }
 
 
diff --git a/ecrire/inc/petitionner.php b/ecrire/inc/petitionner.php
index 9464534d5f..b24d550090 100644
--- a/ecrire/inc/petitionner.php
+++ b/ecrire/inc/petitionner.php
@@ -96,6 +96,6 @@ function inc_petitionner_dist($id_article, $script, $args, $ajax=false)
 	$res .="</span>";
 	$res = ajax_action_auteur('petitionner', $id_article, $script, $args, $res);
 
-	return greffe_action_ajax("petitionner-$id_article", $res);
+	return ajax_action_greffe("petitionner-$id_article", $res);
 }
 ?>
diff --git a/ecrire/inc/poster.php b/ecrire/inc/poster.php
index 208c436ff5..2d01e6ac1f 100644
--- a/ecrire/inc/poster.php
+++ b/ecrire/inc/poster.php
@@ -63,6 +63,6 @@ function inc_poster_dist($id_article, $script, $args, $flag=false) {
 
 	$r = ajax_action_auteur('poster', $id_article, $script, $args, $r);
 
-	return greffe_action_ajax("poster-$id_article", $r);
+	return ajax_action_greffe("poster-$id_article", $r);
 }
 ?>
diff --git a/ecrire/inc/referencer_traduction.php b/ecrire/inc/referencer_traduction.php
index cdd3fbc095..442821f6d9 100644
--- a/ecrire/inc/referencer_traduction.php
+++ b/ecrire/inc/referencer_traduction.php
@@ -133,7 +133,7 @@ function inc_referencer_traduction_dist($id_article, $flag, $id_rubrique, $id_tr
 			. $form
 			. fin_block()
 			. fin_cadre_enfonce(true);
-	return greffe_action_ajax("referencer_traduction-$id_article", $res);
+	return ajax_action_greffe("referencer_traduction-$id_article", $res);
 }
 
 
diff --git a/ecrire/inc/tourner.php b/ecrire/inc/tourner.php
index da89df6d37..a704a675b8 100644
--- a/ecrire/inc/tourner.php
+++ b/ecrire/inc/tourner.php
@@ -69,7 +69,7 @@ function inc_tourner_dist($id_document, $document, $script, $flag, $type)
 
 	if ($boite) return "$boite<div>$res</div>";
 
-	return greffe_action_ajax("tourner-$id_document", $res);
+	return ajax_action_greffe("tourner-$id_document", $res);
 }
 
 // http://doc.spip.org/@boutons_rotateurs
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index af19f63fa5..7a8eb4a6a2 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -17,7 +17,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 //
 
 // Cette inclusion est destine aux extensions de Spip qui n'ont pas suivi
-// son evolution. Si vous n'en utilisez pas, neutrlaliser cette ligne
+// son evolution. Si vous n'en utilisez pas, neutraliser cette ligne pour
 // gagner du temps au chargement.
 
 include(_DIR_RESTREINT . 'inc/vieilles_defs.php');
diff --git a/ecrire/inc/virtualiser.php b/ecrire/inc/virtualiser.php
index bc9c204c7b..73d4036174 100644
--- a/ecrire/inc/virtualiser.php
+++ b/ecrire/inc/virtualiser.php
@@ -34,6 +34,6 @@ function inc_virtualiser_dist($id_article, $flag, $virtuel, $script, $args)
 	. "' style='font-size:10px' /></div>";
 
 	$res = ajax_action_auteur('virtualiser', $id_article, $script, $args, $res);
-	return greffe_action_ajax("virtualiser-$id_article", $res);
+	return ajax_action_greffe("virtualiser-$id_article", $res);
 }
 ?>
diff --git a/ecrire/index.php b/ecrire/index.php
index eb821d3da7..775a29d7ad 100644
--- a/ecrire/index.php
+++ b/ecrire/index.php
@@ -159,23 +159,6 @@ topmargin='0' leftmargin='0' marginwidth='0' marginheight='0' frameborder='0'" .
 
 define('_TRANCHES', 10);
 
-//
-// Fragment (ajax) ?
-//
-// var_ajaxcharset repere les requetes de fragments, et indique en plus
-// le charset [utf-8] utilise par le client, utile a _request.
-if (isset($var_ajaxcharset)) {
-	header("Content-Type: text/html; charset=".$GLOBALS['meta']["charset"]);
-	$var_f = charger_fonction($exec, 'exec');
-	$fragment = $var_f();
-	echo "<","?xml version='1.0' encoding='",
-		$GLOBALS['meta']["charset"],
-		"'?",">\n",
-		$fragment;
-	exit;
-}
-
-
 //
 // Gestion d'une page normale de l'espace prive
 //
@@ -207,9 +190,8 @@ AND $l = @unserialize($l)) {
 		}
 	}
 }
+
 // Trouver la fonction eventuellement surchagee et l'appeler.
-// Elle envoie parfois des en-tetes http,
-// et en mode Ajax retourne un resultat.
 $var_f = charger_fonction($exec);
 $var_f();
 
-- 
GitLab