From 61e44468dfdc834b0ae851f53e4add27fab9985e Mon Sep 17 00:00:00 2001
From: Antoine Pitrou <pitrou@free.fr>
Date: Mon, 21 Apr 2003 17:49:24 +0000
Subject: [PATCH] =?UTF-8?q?r=C3=A9organiser=20les=20t=C3=A2ches=20de=20fon?=
 =?UTF-8?q?d?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 inc-public-global.php3 | 43 ++++++++++++++++++++++++++++--------------
 inc-stats.php3         | 35 +++++++++++++++++-----------------
 2 files changed, 47 insertions(+), 31 deletions(-)

diff --git a/inc-public-global.php3 b/inc-public-global.php3
index c5d7ae1b7c..f118c5e739 100644
--- a/inc-public-global.php3
+++ b/inc-public-global.php3
@@ -189,8 +189,6 @@ if (!file_exists("CACHE/.htaccess")) {
 
 
 
-///////////////////////////////////////////////////////////// taches de fond
-
 //
 // Fonctionnalites administrateur (declenchees par le cookie admin, authentifie ou non)
 //
@@ -207,15 +205,8 @@ if ($admin_ok AND !$flag_preserver AND !$flag_boutons_admin) {
 @flush();
 
 
-//
-// Gestion des statistiques du site public
-//
-
-if (lire_meta("activer_statistiques") != "non") {
-	include_local ("inc-stats.php3");
-	ecrire_stats();
-}
-
+// ---------------------------------------------------------------------------------------------
+// Taches de fond
 
 
 //
@@ -299,6 +290,16 @@ if (!$timeout AND $use_cache AND file_exists('CACHE/.purge')) {
 }
 
 
+//
+// Archivage des statistiques du site public
+//
+
+if (!$timeout AND lire_meta("activer_statistiques") != "non") {
+	include_local ("inc-stats.php3");
+	archiver_stats();
+}
+
+
 //
 // Gerer l'indexation automatique
 //
@@ -350,15 +351,29 @@ if (lire_meta('activer_moteur') == 'oui') {
 // Mise a jour d'un (ou de zero) site syndique
 //
 
-if (!$timeout AND $db_ok AND lire_meta("activer_syndic") != "non") {
+if ($db_ok AND lire_meta("activer_syndic") != "non") {
 	include_ecrire("inc_texte.php3");
 	include_ecrire("inc_filtres.php3");
 	include_ecrire("inc_sites.php3");
 	include_ecrire("inc_index.php3");
 
 	executer_une_syndication();
-	executer_une_indexation_syndic();
-	$timeout = true;
+	if (lire_meta('activer_moteur') == 'oui' AND !$timeout) {
+		executer_une_indexation_syndic();
+		$timeout = true;
+	}
 }
 
+
+//
+// Gestion des statistiques du site public
+// (a la fin pour ne pas forcer le $db_ok)
+//
+
+if (lire_meta("activer_statistiques") != "non") {
+	include_local ("inc-stats.php3");
+	ecrire_stats();
+}
+
+
 ?>
diff --git a/inc-stats.php3 b/inc-stats.php3
index b1ff27c0de..c7c8f7de06 100644
--- a/inc-stats.php3
+++ b/inc-stats.php3
@@ -6,7 +6,7 @@ if (defined("_INC_STATS")) return;
 define("_INC_STATS", "1");
 
 function ecrire_stats() {
-	global $id_article, $id_breve, $id_rubrique, $admin_ok, $timeout;
+	global $id_article, $id_breve, $id_rubrique;
 
 	$log_ip = $GLOBALS['REMOTE_ADDR'];
 	if ($id_rubrique > 0) {
@@ -32,7 +32,6 @@ function ecrire_stats() {
 	}
 	else return;
 
-
 	//
 	// Loguer la visite dans la base si possible
 	//
@@ -54,12 +53,23 @@ function ecrire_stats() {
 		}
 	}
 
+	// Traiter les referers toutes les heures
+	$date_refs = lire_meta('date_stats_referers');
+	if ((time() - $date_refs) > 3600) {
+		include_ecrire("inc_meta.php3");
+		ecrire_meta("date_stats_referers", time());
+		ecrire_meta('calculer_referers_now', 'oui');
+		ecrire_metas();
+	}
+}
+
+
+function archiver_stats() {
+	global $timeout;
 
 	//
 	// Archivage des visites temporaires
 	//
-	if ($timeout) return;
-
 	$date = date("Y-m-d");
 	$last_date = lire_meta("date_statistiques");
 
@@ -70,7 +80,8 @@ function ecrire_stats() {
 		ecrire_metas();
 		calculer_referers();
 		$timeout = true;
-	} else if ($date != $last_date) {
+	}
+	else if ($date != $last_date) {
 		include_ecrire("inc_meta.php3");
 		include_ecrire("inc_statistiques.php3");
 		ecrire_meta("date_statistiques", $date);
@@ -87,23 +98,13 @@ function ecrire_stats() {
 		$timeout = true;
 	}
 
-	// popularite, mise a jour dix minutes
+	// popularite, mise a jour une demie-heure
 	$date_popularite = lire_meta('date_stats_popularite');
-	if (!$timeout AND ((time() - $date_popularite) > 600)) {
+	if (!$timeout AND ((time() - $date_popularite) > 1800)) {
 		include_ecrire("inc_statistiques.php3");
 		calculer_popularites();
 		$timeout = true;
 	}
-
-
-	// traiter les referers toutes les heures
-	$date_refs = lire_meta('date_stats_referers');
-	if ((time() - $date_refs) > 3600) {
-		include_ecrire("inc_meta.php3");
-		ecrire_meta("date_stats_referers", time());
-		ecrire_meta('calculer_referers_now', 'oui');
-		ecrire_metas();
-	}
 }
 
 
-- 
GitLab