Skip to content
Extraits de code Groupes Projets
Valider 97eff748 rédigé par Fil's avatar Fil
Parcourir les fichiers

report de [14768] et [14776] sur l'invalidation selective des caches

parent c8b8997b
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -61,9 +61,31 @@ function taille_du_cache() { ...@@ -61,9 +61,31 @@ function taille_du_cache() {
// ici on se contente de noter la date de mise a jour dans les metas // ici on se contente de noter la date de mise a jour dans les metas
// http://doc.spip.org/@suivre_invalideur // http://doc.spip.org/@suivre_invalideur
function suivre_invalideur($cond, $modif=true) { function suivre_invalideur($cond, $modif=true) {
if ($modif) { if (!$modif)
ecrire_meta('derniere_modif', time()); return;
// determiner l'objet modifie : forum, article, etc
if (preg_match(',id_([a-z]+),', $cond, $r))
$objet = $r[1];
// cas particulier des signatures
else if (strpos($cond, 'varia/pet'))
$objet = 'signature';
// stocker la date_modif_$objet (ne sert a rien pour le moment)
if (isset($objet))
ecrire_meta('derniere_modif_'.$objet, time());
// si $derniere_modif_invalide est un array('forum', 'signature')
// n'affecter la meta que si un de ces objets est modifie
if (is_array($GLOBALS['derniere_modif_invalide'])) {
if (in_array($objet, $GLOBALS['derniere_modif_invalide']))
ecrire_meta('derniere_modif', time());
} }
// sinon, cas standard, toujours affecter la meta
else
ecrire_meta('derniere_modif', time());
} }
......
...@@ -107,7 +107,9 @@ function cache_valide(&$page, $date) { ...@@ -107,7 +107,9 @@ function cache_valide(&$page, $date) {
if (!isset($page['entetes']['X-Spip-Statique']) OR $page['entetes']['X-Spip-Statique'] !== 'oui') { if (!isset($page['entetes']['X-Spip-Statique']) OR $page['entetes']['X-Spip-Statique'] !== 'oui') {
// Cache invalide par la meta 'derniere_modif' // Cache invalide par la meta 'derniere_modif'
if ($GLOBALS['derniere_modif_invalide'] // sauf pour les bots, qui utilisent toujours le cache
if (!_IS_BOT
AND $GLOBALS['derniere_modif_invalide']
AND $date < $GLOBALS['meta']['derniere_modif']) AND $date < $GLOBALS['meta']['derniere_modif'])
return 1; return 1;
......
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