From 89b5202c06b9b7236b1a0174e15ab474cea262e3 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Sun, 22 Aug 2004 21:03:04 +0000
Subject: [PATCH] - bug sur les squelettes sans boucles (Pierre Andrews) -
 controle_petition invalide les pages des articles correspondant - loger la
 taille du cache meme sans quota

---
 ecrire/controle_petition.php3 |  8 ++++++++
 ecrire/inc_cron.php3          | 14 ++++++++------
 inc-calcul-squel.php3         |  9 +++++++--
 inc-public-global.php3        |  2 +-
 spip_cache.php3               |  2 ++
 5 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/ecrire/controle_petition.php3 b/ecrire/controle_petition.php3
index 270be4c779..68c24f8a94 100644
--- a/ecrire/controle_petition.php3
+++ b/ecrire/controle_petition.php3
@@ -98,6 +98,14 @@ if ($connect_statut == "0minirezo") {
  		$result_forum = spip_query($query_forum);
 	}
 
+	// Invalider les articles correspondant
+	if ($id_signature = ($add_petition?$add_petition:$supp_petition)) {
+		include_ecrire('inc_invalideur.php3');
+		list ($id_article) = spip_fetch_array(spip_query("SELECT id_article
+		FROM spip_signatures WHERE id_signature=$id_signature"));
+		suivre_invalideur("id='id_article/$id_article'");
+	}
+
 	if (!$debut) $debut = 0;
 
 	if ($id_article) {
diff --git a/ecrire/inc_cron.php3 b/ecrire/inc_cron.php3
index 86a52309cb..9509839e59 100644
--- a/ecrire/inc_cron.php3
+++ b/ecrire/inc_cron.php3
@@ -152,16 +152,18 @@ function spip_cron() {
 	//
 	// En cas de quota sur le CACHE/, nettoyer les fichiers les plus vieux
 	//
-	global $quota_cache;
-	if ($quota_cache > 0)
-	if ($t - lire_meta('quota_cache_vider') > 3600) {
+	if (($t - lire_meta('quota_cache_vider') > 3600)
+	AND timeout('quota_cache_vider')) {
 		ecrire_meta('quota_cache_vider', $t);
 		ecrire_metas();
-		if ($q = spip_query("SELECT SUM(taille) FROM spip_caches WHERE type='t'"))
-			list ($total_cache) = spip_fetch_array($q);
 
+		list ($total_cache) = spip_fetch_array(spip_query("SELECT SUM(taille)
+		FROM spip_caches WHERE type='t'"));
+		spip_log("Taille du CACHE: $total_cache octets");
+
+		global $quota_cache;
 		$total_cache -= $quota_cache*1024*1024;
-		if ($total_cache > 0) {
+		if ($quota_cache > 0 AND $total_cache > 0) {
 			$q = spip_query("SELECT id, taille FROM spip_caches ORDER BY id");
 			while ($r = spip_fetch_array($q)
 			AND ($total_cache > $taille_supprimee)) {
diff --git a/inc-calcul-squel.php3 b/inc-calcul-squel.php3
index e6b349b843..04ec480983 100644
--- a/inc-calcul-squel.php3
+++ b/inc-calcul-squel.php3
@@ -509,14 +509,19 @@ function calculer_squelette($squelette, $nom, $gram, $sourcefile) {
 	}
 
 	$secondes = spip_timer('calcul_skel');
-	spip_log("CALCUL SKEL $sourcefile ($secondes)");
+	spip_log("calcul skel $sourcefile ($secondes)");
+
+	if (is_array($boucles))
+		$aff_boucles = join (', ', array_keys($boucles));
+	else
+		$aff_boucles = "pas de boucle";
 
 	return "
 /*
  * Squelette : $sourcefile
  * Date :      ".http_gmoddate(@filemtime($sourcefile))." GMT
  * Compile :   ".http_gmoddate(time())." GMT ($secondes)
- * Boucles :   ".join (', ', array_keys($boucles))."
+ * Boucles :   ".$aff_boucles."
  */
 $code
 
diff --git a/inc-public-global.php3 b/inc-public-global.php3
index 5243d300bc..1cee85ab9f 100644
--- a/inc-public-global.php3
+++ b/inc-public-global.php3
@@ -49,7 +49,7 @@ function obtenir_page ($contexte, $chemin_cache, $delais, $use_cache, $fond, $in
 		// pour la premiere fois : on change alors d'invalideur 't'
 		// pour le rendre plus perenne
 		if (@file_exists($chemin_cache.'.NEW')) {
-			spip_log ("$chemin_cache.NEW : premier acces");
+			spip_log ("premier acces: $chemin_cache.NEW");
 			// Attention ne pas mettre time()+$delais mais quelque chose
 			// de plus grand, sinon il y a risque de concurrence entre
 			// l'invalideur et un appel public de page ; plus on en ajoute
diff --git a/spip_cache.php3 b/spip_cache.php3
index b5cf4a3652..2cbb83b25b 100644
--- a/spip_cache.php3
+++ b/spip_cache.php3
@@ -8,6 +8,7 @@ include_local("inc-cache.php3");
 
 if ($purger_cache == "oui") {
 	if (verifier_action_auteur("purger_cache", $hash, $id_auteur)) {
+		spip_log('vider le cache');
 		include_ecrire('inc_invalideur.php3');
 		supprime_invalideurs();
 		purger_repertoire('CACHE', 0);
@@ -16,6 +17,7 @@ if ($purger_cache == "oui") {
 
 if ($purger_squelettes == "oui") {
 	if (verifier_action_auteur("purger_squelettes", $hash, $id_auteur))
+		spip_log('effacer les squelettes compiles');
 		purger_repertoire('CACHE', 0, '^skel_');
 }
 
-- 
GitLab