diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index b0400799b0020178bc8591b159db19e776290e01..cc2938188905ca6a7772b73042a881101a890f16 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 e32760d97663d9d04d31f3212fb98c97915c9673..16b3154293cb7677892f4875af7240718178379e 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