From 7f76cd3f02959ef24125c6151da84c4568054efa Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Sat, 1 Nov 2008 15:15:28 +0000
Subject: [PATCH] init_var_mode() n'etait appelee que par cacher, donc en cas
 d'utilisation de squelette du coup la $GLOBALS['var_mode'] n'etait pas
 initialisee sur les pages de l'espace prive (ou trop tard) alors qu'utilisee
 en plusieurs endroits on deporte son init dans inc/utils car elle est devenue
 systematiquement necessaire, et cela evitera de l'appeler N fois en cas
 d'inclusions

---
 ecrire/inc/utils.php     | 75 ++++++++++++++++++++++++++++++++++++++
 ecrire/public/cacher.php | 77 +---------------------------------------
 2 files changed, 76 insertions(+), 76 deletions(-)

diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index b0400799b0..cc29381889 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -1259,6 +1259,81 @@ function spip_initialisation_suite() {
 	# les configurations limitees en memoire ont un seuil plutot vers 1MPixel
 	define('_IMG_GD_MAX_PIXELS', (isset($GLOBALS['meta']['max_taille_vignettes'])&&$GLOBALS['meta']['max_taille_vignettes']<5500000)?$GLOBALS['meta']['max_taille_vignettes']:0);
 	define('_IMG_GD_QUALITE', 85);
+	init_var_mode();
+}
+
+// Reperer les variables d'URL qui conditionnent la perennite du cache, des urls
+// ou d'autres petit caches (trouver_table, css et js compactes ...)
+// http://doc.spip.org/@init_var_mode
+function init_var_mode(){
+	static $done = false;
+	if (!$done) {
+		// On fixe $GLOBALS['var_mode']
+		$GLOBALS['var_mode'] = false;
+		$GLOBALS['var_preview'] = false;
+		$GLOBALS['var_images'] = false;
+		$GLOBALS['var_noisettes'] = false;
+		$GLOBALS['var_urls'] = false;
+		if (isset($_GET['var_mode'])) {
+			// tout le monde peut calcul/recalcul
+			if ($_GET['var_mode'] == 'calcul'
+			OR $_GET['var_mode'] == 'recalcul')
+				$GLOBALS['var_mode'] = $_GET['var_mode'];
+		
+			// preview, debug, blocs, urls et images necessitent une autorisation
+			else if (in_array($_GET['var_mode'],array('preview','debug','blocs','urls','images'))) {
+				include_spip('inc/autoriser');
+				if (autoriser(
+					($_GET['var_mode'] == 'preview')
+						? 'previsualiser'
+						: 'debug'
+				)) {
+					switch($_GET['var_mode']){
+						case 'preview':
+							// forcer le compilo et ignorer les caches existants
+							$GLOBALS['var_mode'] = 'recalcul';
+							// truquer les boucles et ne pas enregistrer de cache
+							$GLOBALS['var_preview'] = true;
+							break;
+						case 'blocs':
+							// forcer le compilo et ignorer les caches existants
+							$GLOBALS['var_mode'] = 'calcul';
+							$GLOBALS['var_noisettes'] = true;
+							break;
+						case 'urls':
+							// forcer le compilo et ignorer les caches existants
+							$GLOBALS['var_mode'] = 'calcul';
+							$GLOBALS['var_urls'] = true;
+							break;
+						case 'images':
+							// forcer le compilo et ignorer les caches existants
+							$GLOBALS['var_mode'] = 'calcul';
+							// indiquer qu'on doit recalculer les images
+							$GLOBALS['var_images'] = true;
+							break;
+						default :
+							$GLOBALS['var_mode'] = $_GET['var_mode'];
+							break;
+					}
+					spip_log($GLOBALS['visiteur_session']['nom']
+						. " ".$GLOBALS['var_mode']);
+				}
+				// pas autorise ?
+				else {
+					// si on n'est pas connecte on se redirige
+					if (!$GLOBALS['visiteur_session']) {
+						include_spip('inc/headers');
+						redirige_par_entete(generer_url_public('login',
+						'url='.rawurlencode(
+						parametre_url(self(), 'var_mode', $_GET['var_mode'], '&')
+						), true));
+					}
+					// sinon tant pis
+				}
+			}
+		}
+		$done = true;
+	}
 }
 
 // Annuler les magic quotes \' sur GET POST COOKIE et GLOBALS ;
diff --git a/ecrire/public/cacher.php b/ecrire/public/cacher.php
index e32760d976..16b3154293 100644
--- a/ecrire/public/cacher.php
+++ b/ecrire/public/cacher.php
@@ -193,8 +193,6 @@ function nettoyer_petit_cache($prefix, $duree = 300) {
 // http://doc.spip.org/@public_cacher_dist
 function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$lastmodified) {
 
-	init_var_mode();
-
 	// Second appel, destine a l'enregistrement du cache sur le disque
 	if (isset($chemin_cache)) return creer_cache($page, $chemin_cache);
 
@@ -290,77 +288,4 @@ function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$la
 	return;
 }
 
-// Reperer les variables d'URL qui conditionnent la perennite du cache
-
-// http://doc.spip.org/@init_var_mode
-function init_var_mode(){
-	static $done = false;
-	if (!$done) {
-		// On fixe $GLOBALS['var_mode']
-		$GLOBALS['var_mode'] = false;
-		$GLOBALS['var_preview'] = false;
-		$GLOBALS['var_images'] = false;
-		$GLOBALS['var_noisettes'] = false;
-		$GLOBALS['var_urls'] = false;
-		if (isset($_GET['var_mode'])) {
-			// tout le monde peut calcul/recalcul
-			if ($_GET['var_mode'] == 'calcul'
-			OR $_GET['var_mode'] == 'recalcul')
-				$GLOBALS['var_mode'] = $_GET['var_mode'];
-		
-			// preview, debug, blocs, urls et images necessitent une autorisation
-			else if (in_array($_GET['var_mode'],array('preview','debug','blocs','urls','images'))) {
-				include_spip('inc/autoriser');
-				if (autoriser(
-					($_GET['var_mode'] == 'preview')
-						? 'previsualiser'
-						: 'debug'
-				)) {
-					switch($_GET['var_mode']){
-						case 'preview':
-							// forcer le compilo et ignorer les caches existants
-							$GLOBALS['var_mode'] = 'recalcul';
-							// truquer les boucles et ne pas enregistrer de cache
-							$GLOBALS['var_preview'] = true;
-							break;
-						case 'blocs':
-							// forcer le compilo et ignorer les caches existants
-							$GLOBALS['var_mode'] = 'calcul';
-							$GLOBALS['var_noisettes'] = true;
-							break;
-						case 'urls':
-							// forcer le compilo et ignorer les caches existants
-							$GLOBALS['var_mode'] = 'calcul';
-							$GLOBALS['var_urls'] = true;
-							break;
-						case 'images':
-							// forcer le compilo et ignorer les caches existants
-							$GLOBALS['var_mode'] = 'calcul';
-							// indiquer qu'on doit recalculer les images
-							$GLOBALS['var_images'] = true;
-							break;
-						default :
-							$GLOBALS['var_mode'] = $_GET['var_mode'];
-							break;
-					}
-					spip_log($GLOBALS['visiteur_session']['nom']
-						. " ".$GLOBALS['var_mode']);
-				}
-				// pas autorise ?
-				else {
-					// si on n'est pas connecte on se redirige
-					if (!$GLOBALS['visiteur_session']) {
-						include_spip('inc/headers');
-						redirige_par_entete(generer_url_public('login',
-						'url='.rawurlencode(
-						parametre_url(self(), 'var_mode', $_GET['var_mode'], '&')
-						), true));
-					}
-					// sinon tant pis
-				}
-			}
-		}		
-		$done = true;
-	}
-}
-?>
+?>
\ No newline at end of file
-- 
GitLab