Skip to content
Extraits de code Groupes Projets
Valider 7f76cd3f rédigé par cerdic's avatar cerdic
Parcourir les fichiers

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
parent f16f5066
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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 ;
......
......@@ -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
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter