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