From 421d6bafc3cc6c7da43a5436684c4bafcb42299c Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Mon, 23 Jan 2006 13:39:22 +0000
Subject: [PATCH] rationnalisation des redirections dans les actions sur les
 logos

---
 ecrire/inc_articles.php     |  2 +-
 ecrire/inc_auteurs_edit.php |  2 +-
 ecrire/inc_breves_voir.php  |  4 ++--
 ecrire/inc_index_tous.php   |  1 -
 ecrire/inc_lang.php3        |  2 +-
 ecrire/inc_logos.php3       | 11 ++++-------
 ecrire/inc_mots_edit.php    |  3 +--
 ecrire/inc_naviguer.php     |  4 ++--
 ecrire/inc_session.php3     |  1 +
 ecrire/inc_sites.php3       |  3 +--
 ecrire/inc_utils.php        |  3 ++-
 spip_action.php             |  2 +-
 12 files changed, 17 insertions(+), 21 deletions(-)

diff --git a/ecrire/inc_articles.php b/ecrire/inc_articles.php
index 07b6961d76..ae95b0273a 100644
--- a/ecrire/inc_articles.php
+++ b/ecrire/inc_articles.php
@@ -268,7 +268,7 @@ function boites_de_config_articles($id_article, $id_rubrique, $flag_editable,
 
 	if ($id_article AND $flag_editable)
 	  afficher_boite_logo('art', 'id_article', $id_article,
-			      _T('logo_article').aide ("logoart"), _T('logo_survol'));
+			      _T('logo_article').aide ("logoart"), _T('logo_survol'), 'articles');
 
 
 //
diff --git a/ecrire/inc_auteurs_edit.php b/ecrire/inc_auteurs_edit.php
index bcdd825478..bf98da223d 100644
--- a/ecrire/inc_auteurs_edit.php
+++ b/ecrire/inc_auteurs_edit.php
@@ -38,7 +38,7 @@ function auteurs_edit_dist()
 
 	if (statut_modifiable_auteur($id_auteur, $auteur)) {
 		afficher_boite_logo('aut', 'id_auteur', $id_auteur,
-				    _T('logo_auteur').aide ("logoart"), _T('logo_survol'));
+				    _T('logo_auteur').aide ("logoart"), _T('logo_survol'), 'auteurs_edit');
 	}
 
 	table_auteurs_edit($auteur);
diff --git a/ecrire/inc_breves_voir.php b/ecrire/inc_breves_voir.php
index 06bbcd89c4..19b8311cf2 100644
--- a/ecrire/inc_breves_voir.php
+++ b/ecrire/inc_breves_voir.php
@@ -72,8 +72,8 @@ fin_boite_info();
 if ($id_breve>0 AND ($connect_statut == '0minirezo' AND acces_rubrique($id_rubrique)))
 	afficher_boite_logo('breve', 'id_breve', $id_breve,
 			    _T('logo_breve').aide ("breveslogo"),
-			    _T('logo_survol'), 
-			    generer_url_ecrire("breves_voir", "id_breve=$id_breve"));
+			    _T('logo_survol'), 'breves_voir'); 
+
 
 debut_raccourcis();
 icone_horizontale(_T('icone_nouvelle_breve'), generer_url_ecrire("breves_edit","new=oui"), "breve-24.gif","creer.gif");
diff --git a/ecrire/inc_index_tous.php b/ecrire/inc_index_tous.php
index a95b24768e..f7ed7bccaf 100644
--- a/ecrire/inc_index_tous.php
+++ b/ecrire/inc_index_tous.php
@@ -18,7 +18,6 @@ include_ecrire ("inc_presentation");
 
 function index_tous_dist()
 {
-	global $clean_link;
 	global $connect_statut;
 	global $INDEX_elements_objet;
 
diff --git a/ecrire/inc_lang.php3 b/ecrire/inc_lang.php3
index 48dbf45781..1f64213a04 100644
--- a/ecrire/inc_lang.php3
+++ b/ecrire/inc_lang.php3
@@ -315,7 +315,7 @@ function liste_options_langues($nom_select, $default='', $herit='') {
 // si necessaire vers l'URL xxxx?lang=ll
 //
 function verifier_lang_url() {
-	global $_GET, $_COOKIE, $spip_lang, $clean_link;
+	global $_GET, $_COOKIE, $spip_lang;
 
 	// quelle langue est demandee ?
 	$lang_demandee = $GLOBALS['meta']['langue_site'];
diff --git a/ecrire/inc_logos.php3 b/ecrire/inc_logos.php3
index 9909595a54..33d1f42c81 100644
--- a/ecrire/inc_logos.php3
+++ b/ecrire/inc_logos.php3
@@ -49,14 +49,14 @@ function decrire_logo($racine) {
 }
 
 
-function afficher_boite_logo($type, $id_objet, $id, $texteon, $texteoff, $redirect="") {
+function afficher_boite_logo($type, $id_objet, $id, $texteon, $texteoff, $script) {
 	global $spip_display;
 
-	$logon = $type.'on'.$id;
-	$logoff = $type.'off'.$id;
-
 	if ($spip_display != 4) {
 	
+		$redirect = urlencode(generer_url_ecrire($script, "$id_objet=$id"));
+		$logon = $type.'on'.$id;
+		$logoff = $type.'off'.$id;
 		include_ecrire('inc_session');
 		echo "<p>";
 		debut_cadre_relief("image-24.gif");
@@ -79,9 +79,6 @@ function afficher_boite_logo($type, $id_objet, $id, $texteon, $texteoff, $redire
 
 function afficher_logo($racine, $titre, $logo, $redirect) {
 	global $connect_id_auteur;
-	global $clean_link, $spip_lang_right;
-
-	if (!$redirect) $redirect = $clean_link->getUrl();
 
 	echo "<b>";
 	echo bouton_block_invisible(md5($titre));
diff --git a/ecrire/inc_mots_edit.php b/ecrire/inc_mots_edit.php
index 9d886259a5..61188310d4 100644
--- a/ecrire/inc_mots_edit.php
+++ b/ecrire/inc_mots_edit.php
@@ -150,8 +150,7 @@ if ($id_mot) {
 //
 
 if ($id_mot > 0 AND $connect_statut == '0minirezo'  AND $connect_toutes_rubriques)
-	afficher_boite_logo('mot', 'id_mot', $id_mot,
-	_T('logo_mot_cle').aide("breveslogo"), _T('logo_survol'));
+  afficher_boite_logo('mot', 'id_mot', $id_mot, _T('logo_mot_cle').aide("breveslogo"), _T('logo_survol'), 'mots_edit');
 
 
 //
diff --git a/ecrire/inc_naviguer.php b/ecrire/inc_naviguer.php
index d7a2521563..f9b7aa31ca 100644
--- a/ecrire/inc_naviguer.php
+++ b/ecrire/inc_naviguer.php
@@ -200,11 +200,11 @@ function logo_naviguer($id_rubrique)
 {
 		if ($id_rubrique)
 			afficher_boite_logo('rub', 'id_rubrique', $id_rubrique,
-			_T('logo_rubrique')." ".aide ("rublogo"), _T('logo_survol'));
+					    _T('logo_rubrique')." ".aide ("rublogo"), _T('logo_survol'), 'naviguer');
 		else
 			afficher_boite_logo('rub', 'id_rubrique', 0,
 			_T('logo_standard_rubrique')." ".aide ("rublogo"),
-			_T('logo_survol'));
+					    _T('logo_survol'), 'naviguer');
 }
 
 function raccourcis_naviguer($id_rubrique, $id_parent)
diff --git a/ecrire/inc_session.php3 b/ecrire/inc_session.php3
index 820e627b42..f7674632bc 100644
--- a/ecrire/inc_session.php3
+++ b/ecrire/inc_session.php3
@@ -282,6 +282,7 @@ function generer_action_auteur($action, $arg, $redirect="", $no_entites=false)
 	global $connect_id_auteur;
 	$hash = calculer_action_auteur("$action $arg");
 	if ($redirect) $redirect = "&redirect=" . urlencode($redirect);
+
 	return generer_url_action($action, "arg=$arg&id_auteur=$connect_id_auteur&hash=$hash$redirect", $no_entites);
 }
 
diff --git a/ecrire/inc_sites.php3 b/ecrire/inc_sites.php3
index 7ffaa04ba7..7f62160fea 100644
--- a/ecrire/inc_sites.php3
+++ b/ecrire/inc_sites.php3
@@ -28,7 +28,6 @@ global
   $annee,
   $champs_extra,
   $cherche_mot,
-  $clean_link,
   $connect_statut,
   $id_parent,
   $id_syndic,
@@ -299,7 +298,7 @@ echo "<p><center>";
 echo "</center>";
 
 if ($id_syndic AND $flag_administrable)
-	afficher_boite_logo('site', 'id_syndic', $id_syndic, _T('logo_site')." ".aide ("rublogo"), _T('logo_survol'), 'site');
+  afficher_boite_logo('site', 'id_syndic', $id_syndic, _T('logo_site')." ".aide ("rublogo"), _T('logo_survol'), 'sites');
 
 
 debut_droite();
diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php
index c487073094..1f04c7c9a5 100644
--- a/ecrire/inc_utils.php
+++ b/ecrire/inc_utils.php
@@ -476,7 +476,7 @@ function generer_spip_cron() {
 // envoi de l'image demandee dans le code ci-dessus
 
 function spip_action_cron() {
-  
+
 	$image = pack("H*", "47494638396118001800800000ffffff00000021f90401000000002c0000000018001800000216848fa9cbed0fa39cb4da8bb3debcfb0f86e248965301003b");
 	header("Content-Type: image/gif");
 	header("Content-Length: ".strlen($image));
@@ -710,6 +710,7 @@ function generer_url_public($script, $args="", $no_entities=false) {
 }
 
 function generer_url_action($script, $args="", $no_entities=false) {
+
 	return generer_url_public('spip_action.php',
 				  "action=$script" .($args ? "&$args" : ''),
 				  $no_entities);
diff --git a/spip_action.php b/spip_action.php
index a419d7e70b..d60e6f2874 100644
--- a/spip_action.php
+++ b/spip_action.php
@@ -23,5 +23,5 @@ if (isset($hash)) {
 
 $var_f = include_fonction('spip_action_' . $action);
 $var_f();
-if ($redirect) redirige_par_entete($redirect);
+if ($redirect) redirige_par_entete(urldecode($redirect));
 ?>
-- 
GitLab