From 4d507dce52676264bd80a0f3f564476da731a60e Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Thu, 5 Oct 2006 21:42:10 +0000
Subject: [PATCH] =?UTF-8?q?Les=20mini-gadgets=20en=20JavaScript=20asynchro?=
 =?UTF-8?q?ne=20plutot=20que=20synchrone=20c'est=20=C3=A0=20peine=20plus?=
 =?UTF-8?q?=20compliqu=C3=A9=20et=20le=20chargement=20est=20un=20chouia=20?=
 =?UTF-8?q?plus=20rapide.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/exec/articles.php         |  2 +-
 ecrire/inc/chercher_rubrique.php |  2 +-
 ecrire/inc/gadgets.php           | 36 ++++++++++----------------------
 ecrire/inc/presentation.php      | 11 +++-------
 4 files changed, 16 insertions(+), 35 deletions(-)

diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index fc39bd1357..7550567ae6 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -376,7 +376,7 @@ function afficher_corps_articles($virtuel, $chapo, $texte, $ps,  $extra)
 
 	if ($virtuel) {
 		$res .= debut_boite_info(true)
-		.  "\n<div id='renvoi' style='text-align: center'>"
+		.  "\n<div style='text-align: center'>"
 		. _T('info_renvoi_article')
 		. " "
 		.  propre("[->$virtuel]")
diff --git a/ecrire/inc/chercher_rubrique.php b/ecrire/inc/chercher_rubrique.php
index 90f09a9e29..608d4f3f48 100644
--- a/ecrire/inc/chercher_rubrique.php
+++ b/ecrire/inc/chercher_rubrique.php
@@ -204,7 +204,7 @@ function selecteur_rubrique_ajax($id_rubrique, $type, $restreint, $idem=0) {
 		$exclus = "&exclus=$idem&rac=oui";
 
 	if ($id_rubrique)
-		list($titre_parent) = spip_fetch_array(spip_query("SELECT titr<e FROM spip_rubriques WHERE id_rubrique=$id_rubrique"), SPIP_NUM);
+		list($titre_parent) = spip_fetch_array(spip_query("SELECT titre FROM spip_rubriques WHERE id_rubrique=$id_rubrique"), SPIP_NUM);
 	else if ($type == 'auteur')
 		$titre_parent = '&nbsp;';
 	else
diff --git a/ecrire/inc/gadgets.php b/ecrire/inc/gadgets.php
index fb1189f7ee..f8e868f856 100644
--- a/ecrire/inc/gadgets.php
+++ b/ecrire/inc/gadgets.php
@@ -24,6 +24,11 @@ include_spip('inc/presentation');
 //
 
 
+function inc_gadgets_dist($id_rubrique, $gadget)
+{
+	$gadget = 'gadget_' . $gadget;
+	return  (function_exists($gadget)) ? $gadget($id_rubrique) : '';
+}
 //
 // GADGET DES RUBRIQUES
 //
@@ -456,32 +461,13 @@ function gadget_messagerie() {
 	return $gadget;
 }
 
-
-// http://doc.spip.org/@dessiner_gadgets
-function dessiner_gadgets($id_rubrique) {
+function repercuter_gadgets($id_rubrique) {
 	if ($_COOKIE['spip_accepte_ajax'] != -1) {
-		return "\n<!-- javascript gadgets -->\n" .
-		http_script(
-		"document.getElementById('gadget-rubriques').innerHTML = \""
-		. addslashes(strtr(gadget_rubriques($id_rubrique),"\n\r","  "))
-		. "\";\n" .
-		"document.getElementById('gadget-navigation').innerHTML = \""
-		. addslashes(strtr(gadget_navigation($id_rubrique),"\n\r","  "))
-		. "\";\n" .
-#		"document.getElementById('gadget-recherche').innerHTML = \""
-#		. addslashes(strtr(gadget_recherche($id_rubrique),"\n\r","  "))
-#		. "\";\n" .
-		"document.getElementById('gadget-agenda').innerHTML = \""
-		. addslashes(strtr(gadget_agenda($id_rubrique),"\n\r","  "))
-		. "\";\n" .
-		"document.getElementById('gadget-messagerie').innerHTML = \""
-		. addslashes(strtr(gadget_messagerie($id_rubrique),"\n\r","  "))
-		. "\";\n" .
-#		"document.getElementById('gadget-suivi').innerHTML = \""
-#		. addslashes(strtr(gadget_suivi($id_rubrique),"\n\r","  "))
-#		. "\";\n" .
-
-		'');
+	  return ";
+		AjaxSqueeze('./?exec=gadgets&gadget=rubriques&id_rubrique=$id_rubrique', 'gadget-rubriques');
+		AjaxSqueeze('./?exec=gadgets&gadget=navigation&id_rubrique=$id_rubrique', 'gadget-navigation');
+		AjaxSqueeze('./?exec=gadgets&gadget=agenda&id_rubrique=$id_rubrique', 'gadget-agenda');
+		AjaxSqueeze('./?exec=gadgets&gadget=messagerie&id_rubrique=$id_rubrique', 'gadget-messagerie');";
 	}
 }
 
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 30e5f10d05..8cff0f5012 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -2128,8 +2128,8 @@ function init_body($rubrique='accueil', $sous_rubrique='accueil', $onLoad='', $i
 	global $options, $spip_display, $spip_ecran;
 	global $spip_lang, $spip_lang_rtl, $spip_lang_left, $spip_lang_right;
 	global $browser_verifForm;
-
-	if ($load = "$browser_verifForm$onLoad")
+	include_spip('inc/gadgets');
+	if ($load = "$browser_verifForm$onLoad" . repercuter_gadgets($id_rubrique))
 		$load = " onLoad=\"$load\"";
 
 	echo pipeline('body_prive',"<body ". _ATTRIBUTES_BODY
@@ -2376,13 +2376,10 @@ if (true /*$bandeau_colore*/) {
 
 } // fin bandeau colore
 
-
 	// <div> pour la barre des gadgets
 	// (elements invisibles qui s'ouvrent sous la barre precedente)
-	include_spip('inc/gadgets');
-	echo bandeau_gadgets($largeur, $options, $id_rubrique);
-	$GLOBALS['id_rubrique_gadgets'] = $id_rubrique;  # un peu sale
 
+	echo bandeau_gadgets($largeur, $options, $id_rubrique);
 	echo "</div>";
 	echo "</div>";
 
@@ -2664,8 +2661,6 @@ function fin_html() {
 
 	echo "</font>", $GLOBALS['rejoue_session'];
 
-	if (function_exists('dessiner_gadgets'))
-		echo dessiner_gadgets($GLOBALS['id_rubrique_gadgets']);
 	if (defined('_TESTER_NOSCRIPT'))
 		echo _TESTER_NOSCRIPT;
 
-- 
GitLab