From 5e2c27ce58662614e47e7fcae61debc136a2007a Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Fri, 20 Apr 2007 14:49:32 +0000
Subject: [PATCH] =?UTF-8?q?#877:=20Remplacement=20de=20la=20globale=20{{{$?=
 =?UTF-8?q?couleurs=5Fspip}}}=20par=20une=20fonction=20surchargeable=20{{{?=
 =?UTF-8?q?couleurs}}},=20ce=20qui=20permet=20d'all=C3=A9ger=20ecrire/inde?=
 =?UTF-8?q?x.php=20qui=20d=C3=A9clarait=20ce=20tableau=20syst=C3=A9matique?=
 =?UTF-8?q?ment=20alors=20qu'il=20est=20inutile=20en=20cas=20de=20script?=
 =?UTF-8?q?=20Ajax.=20La=20valeur=20de=20cette=20globale=20est=20=C3=A0=20?=
 =?UTF-8?q?pr=C3=A9sent=20une=20statique=20de=20la=20fonction=20surchargea?=
 =?UTF-8?q?ble,=20mais=20ne=20reste=20plus=20que=20les=20index=20{{{couleu?=
 =?UTF-8?q?r=5Ffoncee}}}=20et=20{{{couleur=5Fclaire}}},=20les=20deux=20aut?=
 =?UTF-8?q?res=20=C3=A9tant=20tomb=C3=A9s=20en=20d=C3=A9su=C3=A9tude=20dep?=
 =?UTF-8?q?uis=20le=20passage=20en=20Xhtml.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Pour ceux qui redéfinissaient cette globale dans {{{mes_options}}}, faire à présent dans ce fichier:

{{{
$couleurs = charger_fonction('couleurs', 'inc');
$couleurs( array(
	1 => array ("couleur_foncee" => "#9DBA00",
		"couleur_claire" => "#C5E41C",
		),
	2 => // etc.
}}}
---
 ecrire/exec/statistiques_svg.php |  9 ++--
 ecrire/inc/auth.php              |  4 +-
 ecrire/inc/commencer_page.php    | 29 ++----------
 ecrire/inc/premiers_pas.php      |  1 -
 ecrire/inc/presentation.php      | 11 +++--
 ecrire/index.php                 | 81 +++-----------------------------
 6 files changed, 27 insertions(+), 108 deletions(-)

diff --git a/ecrire/exec/statistiques_svg.php b/ecrire/exec/statistiques_svg.php
index 0b9ac6da8e..958c6965eb 100644
--- a/ecrire/exec/statistiques_svg.php
+++ b/ecrire/exec/statistiques_svg.php
@@ -20,8 +20,6 @@ function exec_statistiques_svg_dist()
 global
   $aff_jours,
   $connect_statut,
-  $couleur_claire,
-  $couleur_foncee,
   $id_article,
   $visites_today;
 
@@ -49,8 +47,13 @@ if ($connect_statut != '0minirezo') {
 	header("Expires: ".$expire." GMT");
 	header("Content-type: image/svg+xml");
 
+	$couleurs = charger_fonction('couleurs', 'inc');
+	$paramcss = 'ltr='
+	. $GLOBALS['spip_lang_left'] . '&'
+	. $couleurs($auteur_session['prefs']['couleur']);
+
 	echo "<"."?xml version=\"1.0\" standalone=\"no\"?>\n";
-	echo '<', '?xml-stylesheet type="text/css" href="', generer_url_public('style_svg', _SENS_ET_COULEURS, true), '" ?', ">\n";
+	echo '<', '?xml-stylesheet type="text/css" href="', generer_url_public('style_svg', $paramcss, true), '" ?', ">\n";
 	echo "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n";
 	echo "<svg  xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"450\" height=\"310\" x=\"0\" y=\"0\">\n";
 	echo '<defs>';
diff --git a/ecrire/inc/auth.php b/ecrire/inc/auth.php
index eef7ea77af..980b73a9d2 100644
--- a/ecrire/inc/auth.php
+++ b/ecrire/inc/auth.php
@@ -187,7 +187,9 @@ function inc_auth_dist() {
 	// Les plus utiles sont aussi dans les variables simples ci-dessus
 
 	$GLOBALS['auteur_session'] = $row;
-	$GLOBALS['auteur_session']['prefs'] = @unserialize($GLOBALS['auteur_session']['prefs']);
+	$r = @unserialize($row['prefs']);
+	$GLOBALS['auteur_session']['prefs'] =
+	  (@isset($r['couleur'])) ? $r : array('couleur' =>1, 'display'=>0);
 
 	if (is_string($droits)) {
 	  // ordres mineurs: redac, visiteur ou indefini
diff --git a/ecrire/inc/commencer_page.php b/ecrire/inc/commencer_page.php
index 2afedbaa30..22e3f040f7 100644
--- a/ecrire/inc/commencer_page.php
+++ b/ecrire/inc/commencer_page.php
@@ -83,6 +83,8 @@ function init_body($rubrique='accueil', $sous_rubrique='accueil', $id_rubrique='
 
 	if ($spip_ecran == "large") $largeur = 974; else $largeur = 750;
 
+	$couleurs = charger_fonction('couleurs', 'inc');
+
 	$res = pipeline('body_prive',"<body class='$rubrique $sous_rubrique'"
 			. ($GLOBALS['spip_lang_rtl'] ? " dir='rtl'" : "")
 			.'>')
@@ -150,7 +152,7 @@ function init_body($rubrique='accueil', $sous_rubrique='accueil', $id_rubrique='
 		// Choix de la couleur
 		$res .= "</div></li>"
 		. "<li id='bandeau_couleur4' class='bandeau_couleur'><div class='menu-item'>"
-		. choix_couleur()
+		. $couleurs()
 		. "</div></li>";
 
 		// choix de la langue
@@ -186,31 +188,6 @@ function init_body($rubrique='accueil', $sous_rubrique='accueil', $id_rubrique='
 	return $res;
 }
 
-// Choix dynamique de la couleur
-
-// http://doc.spip.org/@choix_couleur
-function choix_couleur() {
-	global $couleurs_spip;
-	$res = '';
-	if ($couleurs_spip) {
-		$evt = '
-onmouseover="changestyle(\'bandeauinterface\');"
-onfocus="changestyle(\'bandeauinterface\');"
-onblur="changestyle(\'bandeauinterface\');"';
-
-		foreach ($couleurs_spip as $key => $val) {
-			$res .= "<a href=\""
-			. parametre_url(self(), 'set_couleur', $key)
-			. "\"$evt>"
-			. http_img_pack("rien.gif",
-					_T('choix_couleur_interface') . $key,
-					"width='8' height='8' style='margin: 1px; background-color: "	. $val['couleur_claire'] . ";'")
-			. "</a>";
-		}
-	}
-	return $res;
-}
-
 // http://doc.spip.org/@avertissement_messagerie
 function avertissement_messagerie() {
 	global $connect_id_auteur;
diff --git a/ecrire/inc/premiers_pas.php b/ecrire/inc/premiers_pas.php
index 9e7edee587..14d8a00ea4 100644
--- a/ecrire/inc/premiers_pas.php
+++ b/ecrire/inc/premiers_pas.php
@@ -52,7 +52,6 @@ function premiers_pas_etapes($etape,$titre,$texte){
 
 // http://doc.spip.org/@premiers_pas_barre_etapes
 function premiers_pas_barre_etapes($etape){
-	global $couleur_claire,$couleur_foncee;
 	$liste = find_all_in_path('premiers_pas/',"pas_[^.]*[.]php");
 	echo "<style type='text/css'>\n";
 	echo <<<EOF
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index f762e0cf08..8151ca01ca 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -1261,7 +1261,12 @@ function afficher_forum_4($compteur_forum, $nb_forum, $thread)
 
 // http://doc.spip.org/@envoi_link
 function envoi_link($nom_site_spip) {
-	global $connect_toutes_rubriques, $spip_display, $spip_lang;
+	global $auteur_session, $connect_toutes_rubriques, $spip_display, $spip_lang;
+
+	$couleurs = charger_fonction('couleurs', 'inc');
+	$paramcss = 'ltr='
+	. $GLOBALS['spip_lang_left'] . '&'
+	. $couleurs($auteur_session['prefs']['couleur']);
 
 	// CSS de secours en cas de non fonct de la suivante
 	$res = '<link rel="stylesheet" type="text/css" href="'
@@ -1270,10 +1275,10 @@ function envoi_link($nom_site_spip) {
 	
 	// CSS espace prive : la vraie
 	. '<link rel="stylesheet" type="text/css" href="'
-	. generer_url_public('style_prive', _SENS_ET_COULEURS) .'" />' . "\n"
+	. generer_url_public('style_prive', $paramcss) .'" />' . "\n"
   . "<!--[if lt IE 8]>\n"
   . '<link rel="stylesheet" type="text/css" href="'
-  . generer_url_public('style_prive_ie', _SENS_ET_COULEURS) .'" />' . "\n"
+  . generer_url_public('style_prive_ie', $paramcss) .'" />' . "\n"
   . "<![endif]-->\n"
   
 	// CSS calendrier
diff --git a/ecrire/index.php b/ecrire/index.php
index daa0d4fc4f..86bc34c63d 100644
--- a/ecrire/index.php
+++ b/ecrire/index.php
@@ -10,56 +10,6 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-
-// Placer definition des couleurs avant inc_version,
-// sinon impossible de les redefinir dans mes_options
-$GLOBALS['couleurs_spip'] = array(
-
-// Vert
-1 => array (
-		"couleur_foncee" => "#9DBA00",
-		"couleur_claire" => "#C5E41C",
-		"couleur_lien" => "#657701",
-		"couleur_lien_off" => "#A6C113"
-		),
-// Violet clair
-2 => array (
-		"couleur_foncee" => "#eb68b3",
-		"couleur_claire" => "#ffa9e6",
-		"couleur_lien" => "#8F004D",
-		"couleur_lien_off" => "#BE6B97"
-		),
-// Orange
-3 => array (
-		"couleur_foncee" => "#fa9a00",
-		"couleur_claire" => "#ffc000",
-		"couleur_lien" => "#FF5B00",
-		"couleur_lien_off" => "#B49280"
-		),
-// Saumon
-4 => array (
-		"couleur_foncee" => "#CDA261",
-		"couleur_claire" => "#FFDDAA",
-		"couleur_lien" => "#AA6A09",
-		"couleur_lien_off" => "#B79562"
-		),
-//  Bleu pastel
-5 => array (
-		"couleur_foncee" => "#5da7c5",
-		"couleur_claire" => "#97d2e1",
-		"couleur_lien" => "#116587",
-		"couleur_lien_off" => "#81B7CD"
-		),
-//  Gris
-6 => array (
-		"couleur_foncee" => "#85909A",
-		"couleur_claire" => "#C0CAD4",
-		"couleur_lien" => "#3B5063",
-		"couleur_lien_off" => "#6D8499"
-		),
-);
-
-
 if (!defined('_ECRIRE_INC_VERSION')) {
 	include 'inc_version.php';
 }
@@ -103,30 +53,26 @@ if (autoriser_sans_cookie($exec)) {
 // Preferences de presentation
 //
 
-
-if (!isset($GLOBALS['auteur_session']['prefs']))
-	$prefs = array('couleur' =>1, 'display'=>0);
-else $prefs = ($GLOBALS['auteur_session']['prefs']);
-
 $prefs_mod = false;
 
 if (isset($_GET['set_couleur'])) {
-	$prefs['couleur'] = floor($_GET['set_couleur']);
+	$GLOBALS['auteur_session']['prefs']['couleur'] = floor($_GET['set_couleur']);
 	$prefs_mod = true;
 }
 if (isset($_GET['set_disp'])) {
-	$prefs['display'] = floor($_GET['set_disp']);
+	$GLOBALS['auteur_session']['prefs']['display'] = floor($_GET['set_disp']);
 	$prefs_mod = true;
 }
+if ($prefs_mod AND !$var_auth) {
+	spip_query("UPDATE spip_auteurs SET prefs = " . _q(serialize($GLOBALS['auteur_session']['prefs'])) . " WHERE id_auteur = " .intval($GLOBALS['auteur_session']['id_auteur']));
+ }
+
 // compatibilite ascendante
-$GLOBALS['spip_display'] = $prefs['display'];
+$GLOBALS['spip_display'] = $GLOBALS['auteur_session']['prefs']['display'];
 
 // Options "avancees" pour tout le monde (en attendant de les supprimer dans le code)
 $GLOBALS['options'] = 'avancees';
 
-if ($prefs_mod AND !$var_auth)
-	spip_query("UPDATE spip_auteurs SET prefs = " . _q(serialize($prefs)) . " WHERE id_auteur = " .intval($GLOBALS['auteur_session']['id_auteur']));
-
 if (isset($_GET['set_ecran'])) {
 	// Poser un cookie,
 	// car ce reglage depend plus du navigateur que de l'utilisateur
@@ -134,11 +80,6 @@ if (isset($_GET['set_ecran'])) {
 	spip_setcookie('spip_ecran', $GLOBALS['spip_ecran'], time() + 365 * 24 * 3600);
  } else $GLOBALS['spip_ecran'] = isset($_COOKIE['spip_ecran']) ? $_COOKIE['spip_ecran'] : "etroit";
 
-if (!isset($GLOBALS['couleurs_spip'][$prefs['couleur']]))
-    $prefs['couleur'] = 1;
-
-$GLOBALS['auteur_session']['prefs'] = $prefs;
-$prefs = $GLOBALS['couleurs_spip'][$prefs['couleur']];
 
 // charger l'affichage minimal et initialiser a la langue par defaut
 include_spip('inc/minipres');
@@ -163,14 +104,6 @@ if (isset($_COOKIE['spip_lang_ecrire'])) {
 
 utiliser_langue_visiteur(); 
 
-// parametres pour les feuilles de style calculees (cf commencer_page et svg)
-define('_SENS_ET_COULEURS', "couleur_claire=" .
-	substr($prefs['couleur_claire'],1).
-       '&couleur_foncee=' .
-	substr($prefs['couleur_foncee'],1) .
-       '&ltr=' . 
-       $GLOBALS['spip_lang_left']);
-
 define('_TRANCHES', 10);
 
 //
-- 
GitLab