Valider 34a9069e rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Plutot que de desactiver le cache systématiquement sur les modeles/ et dans l'espace privé,

on définit un cache nul par défaut dans ces contextes.
Cela permet de forcer un cache quand c'est pertinent, grace à la balise #CACHE{}

Le cache d'un même fond calculé depuis l'espace privé ou depuis le public est différencié, il n'y a donc pas de risque de collision.
parent 60478f29
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −6
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -267,12 +267,7 @@ function public_cacher_dist($contexte, &$use_cache, &$chemin_cache, &$page, &$la

	// Cas ignorant le cache car completement dynamique
	if ($_SERVER['REQUEST_METHOD'] == 'POST'
	OR (substr($contexte_implicite['cache'],0,8)=='modeles/')
	OR (_request('connect'))
// Mode auteur authentifie appelant de ecrire/ : il ne faut rien lire du cache
// et n'y ecrire que la compilation des squelettes (pas les pages produites)
// car les references aux repertoires ne sont pas relatifs a l'espace public
	OR test_espace_prive()) {
	  OR _request('connect')) {
		$use_cache = -1;
		$lastmodified = 0;
		$chemin_cache = "";
+10 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -150,8 +150,16 @@ function public_parametrer_dist($fond, $contexte='', $cache='', $connect='') {
			}
		}
		// Si #CACHE{} n'etait pas la, le mettre a $delais
		if (!isset($page['entetes']['X-Spip-Cache']))
		if (!isset($page['entetes']['X-Spip-Cache'])){
			// Dans l'espace prive ou dans un modeles/ on pose un cache 0 par defaut
			// si aucun #CACHE{} spécifié
			// le contexte implicite qui conditionne le cache assure qu'on retombe pas sur le meme
			// entre public et prive
			if (test_espace_prive() OR strncmp($fond,'modeles/',8)==0)
				$page['entetes']['X-Spip-Cache'] = 0;
			else
				$page['entetes']['X-Spip-Cache'] = isset($GLOBALS['delais'])?$GLOBALS['delais']:36000;
		}

		$page['contexte'] = $contexte;