From 340ae1fc7d761397ee72386cac9eb88399068b63 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Wed, 1 Jan 2003 15:23:10 +0000
Subject: [PATCH] Correction bug ecrire -> ecrire/
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Plus d'éénements logés dans spip.log

On évite les timeout en faisant une seule grosse opération à la fois

Amélioration de l'écran "purger les données d'indexation", qui indique désoermais "Le moteur de recherche n'est pas activé. Les tables d'indexation du moteur sont vides. " etc.
---
 article-dist.html            |  2 +-
 breve-dist.html              |  2 +-
 ecrire/admin_vider.php3      | 24 +++++++++-----
 ecrire/inc_statistiques.php3 |  4 +++
 forum-dist.html              |  2 +-
 inc-public-global.php3       | 26 +++++++++------
 inc-stats.php3               | 61 +++++++++++++++++++-----------------
 mot-dist.html                |  2 +-
 recherche-dist.html          |  2 +-
 resume-dist.html             |  2 +-
 rubrique-dist.html           |  6 +++-
 sommaire-dist.html           |  2 +-
 12 files changed, 82 insertions(+), 53 deletions(-)

diff --git a/article-dist.html b/article-dist.html
index 78b4e4a97e..30608a36be 100644
--- a/article-dist.html
+++ b/article-dist.html
@@ -39,7 +39,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/breve-dist.html b/breve-dist.html
index b8f326cd11..bec85d3448 100644
--- a/breve-dist.html
+++ b/breve-dist.html
@@ -40,7 +40,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/ecrire/admin_vider.php3 b/ecrire/admin_vider.php3
index 4a71491b00..a590e61ba8 100644
--- a/ecrire/admin_vider.php3
+++ b/ecrire/admin_vider.php3
@@ -98,14 +98,24 @@ echo "<TR><TD BACKGROUND=''>";
 
 echo "<FONT FACE='Georgia,Garamond,Times,serif' SIZE=3>";
 
-echo "\n<p align='justify'>Utilisez cette commande afin de vider les tables utilis&eacute;es
-par le moteur de recherche int&eacute;gr&eacute; &agrave; SPIP. Cela permet de gagner de
-l'espace disque si vous avez d&eacute;sactiv&eacute; le moteur de recherche. Cela peut servir
-&eacute;galement &agrave; r&eacute;indexer les documents au cas o&ugrave; vous avez restaur&eacute; une sauvegarde.
-
-<p align='justify'>Notez que les documents modifi&eacute;s de fa&ccedil;on normale (depuis l'interface
-SPIP) sont automatiquement r&eacute;index&eacute;s, cette commande n'est donc utile que de fa&ccedil;on exceptionnelle.";
+echo "\n<p align='justify'>";
+if (lire_meta('activer_moteur') == 'oui')
+	echo "<b>Le moteur de recherche est activ&eacute;.</b> Utilisez cette commande
+		si vous souhaitez proc&eacute;der &agrave; une r&eacute;indexation rapide (apr&egrave;s restauration
+		d'une sauvegarde par exemple). Notez que les documents modifi&eacute;s de
+		fa&ccedil;on normale (depuis l'interface SPIP) sont automatiquement
+		r&eacute;index&eacute;s&nbsp;: cette commande n'est donc utile que de fa&ccedil;on exceptionnelle.";
+else {
+	echo "<b>Le moteur de recherche n'est pas activ&eacute;.</b>";
+	$row = spip_fetch_array(spip_query("SELECT COUNT(*) AS cnt FROM spip_index_articles"));
+	if ($row['cnt'])
+		echo " Utilisez cette commande afin de vider les tables d'indexation utilis&eacute;es
+			par le moteur de recherche int&eacute;gr&eacute; &agrave; SPIP. Cela vous permettra
+			de gagner de l'espace disque.";
+	else
+		echo " Les tables d'indexation du moteur sont vides.";
 
+}
 
 echo "\n<FORM ACTION='admin_vider.php3' METHOD='post'>";
 
diff --git a/ecrire/inc_statistiques.php3 b/ecrire/inc_statistiques.php3
index 8ae432a0f7..339ca6bdb5 100644
--- a/ecrire/inc_statistiques.php3
+++ b/ecrire/inc_statistiques.php3
@@ -215,6 +215,7 @@ function calculer_n_referers($nb_referers) {
 
 
 function calculer_referers() {
+	spip_log("analyse referers");
 	$encore = calculer_n_referers(100);
 	if ($encore) {
 		include_ecrire("inc_meta.php3");
@@ -233,6 +234,7 @@ function calculer_referers() {
 //
 
 function calculer_visites($date = "") {
+	spip_log("analyse visites");
 
 	// calculer les popularites avant d'effacer les donnees
 	calculer_popularites();
@@ -290,6 +292,8 @@ function calculer_visites($date = "") {
 //
 
 function calculer_popularites() {
+	spip_log("analyse popularites");
+
 	$date = lire_meta('date_stats_popularite');
 	include_ecrire("inc_meta.php3");
 	ecrire_meta("date_stats_popularite", time());
diff --git a/forum-dist.html b/forum-dist.html
index 5727b2e330..91cc293fe3 100644
--- a/forum-dist.html
+++ b/forum-dist.html
@@ -36,7 +36,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/inc-public-global.php3 b/inc-public-global.php3
index 209c435840..6bba044e7f 100644
--- a/inc-public-global.php3
+++ b/inc-public-global.php3
@@ -155,6 +155,7 @@ if (file_exists($chemin_cache)) {
 
 if ($var_recherche) {
 	fin_surligne($var_recherche, $mode_surligne);
+	$timeout = true; // risque timeout
 }
 
 
@@ -193,8 +194,8 @@ if (!file_exists("CACHE/.htaccess")) {
 if (lire_meta('activer_moteur') == 'oui') {
 	$fichier_index = 'ecrire/data/.index';
 	if ($db_ok) {
-		include_ecrire("inc_texte.php3");
-		include_ecrire("inc_filtres.php3");
+		// include_ecrire("inc_texte.php3");
+		// include_ecrire("inc_filtres.php3");
 		include_ecrire("inc_index.php3");
 		$s = '';
 		if ($id_article AND !deja_indexe('article', $id_article))
@@ -215,7 +216,7 @@ if (lire_meta('activer_moteur') == 'oui') {
 	}
 	if ($use_cache AND file_exists($fichier_index) AND $size = filesize($fichier_index)) {
 		include_ecrire("inc_connect.php3");
-		if ($db_ok) {
+		if (!$timeout AND $db_ok) {
 			include_ecrire("inc_texte.php3");
 			include_ecrire("inc_filtres.php3");
 			include_ecrire("inc_index.php3");
@@ -226,8 +227,10 @@ if (lire_meta('activer_moteur') == 'oui') {
 			$f = fopen($fichier_index, 'w');
 			fwrite($f, $suite);
 			fclose($f);
-			$s = explode(' ', $s);
+			$s = explode(' ', trim($s));
+			spip_log("indexation $s[0] $s[1]");
 			indexer_objet($s[0], $s[1], false);
+			$timeout = true;
 		}
 	}
 }
@@ -239,8 +242,9 @@ if (lire_meta('activer_moteur') == 'oui') {
 // Se declenche une fois par jour quand le cache n'est pas recalcule
 //
 
-if ($use_cache && file_exists('CACHE/.purge2') && $db_ok) {
+if (!$timeout AND $use_cache AND file_exists('CACHE/.purge2') AND $db_ok) {
 	unlink('CACHE/.purge2');
+	spip_log("purge cache niveau 2");
 	$query = "SELECT fichier FROM spip_forum_cache WHERE maj < DATE_SUB(NOW(), INTERVAL 14 DAY)";
 	$result = spip_query($query);
 	unset($fichiers);
@@ -252,14 +256,17 @@ if ($use_cache && file_exists('CACHE/.purge2') && $db_ok) {
 		$query = "DELETE FROM spip_forum_cache WHERE fichier IN (".join(',', $fichiers).")";
 		spip_query($query);
 	}
+	$timeout = true;
 }
 
-if ($use_cache && file_exists('CACHE/.purge')) {
+if (!$timeout AND $use_cache AND file_exists('CACHE/.purge')) {
 	unlink('CACHE/.purge');
+	spip_log("purge cache niveau 1");
 	$f = fopen('CACHE/.purge2', 'w');
 	fclose($f);
 	include_local ("inc-cache.php3");
 	purger_repertoire('CACHE', 14 * 24 * 3600);
+	$timeout = true;
 }
 
 
@@ -281,8 +288,7 @@ if ($admin_ok AND !$flag_preserver AND !$flag_boutons_admin) {
 // Mise a jour d'un (ou de zero) site syndique
 //
 
-if ($db_ok AND lire_meta("activer_syndic") != "non") {
-	flush();
+if (!$timeout AND $db_ok AND lire_meta("activer_syndic") != "non") {
 	include_ecrire("inc_texte.php3");
 	include_ecrire("inc_filtres.php3");
 	include_ecrire("inc_sites.php3");
@@ -290,6 +296,7 @@ if ($db_ok AND lire_meta("activer_syndic") != "non") {
 
 	executer_une_syndication();
 	executer_une_indexation_syndic();
+	$timeout = true;
 }
 
 //
@@ -307,7 +314,7 @@ if (lire_meta("activer_statistiques") != "non") {
 //
 
 $majnouv = lire_meta('majnouv');
-if (lire_meta('quoi_de_neuf') == 'oui' AND $jours_neuf = lire_meta('jours_neuf')
+if (!$timeout AND lire_meta('quoi_de_neuf') == 'oui' AND $jours_neuf = lire_meta('jours_neuf')
 	AND $adresse_neuf = lire_meta('adresse_neuf') AND (time() - $majnouv) > 3600 * 24 * $jours_neuf) {
 	include_ecrire('inc_connect.php3');
 	if ($db_ok) {
@@ -344,6 +351,7 @@ if (lire_meta('quoi_de_neuf') == 'oui' AND $jours_neuf = lire_meta('jours_neuf')
 		} else
 			spip_log("envoi mail nouveautes : pas de nouveautes");
 	}
+	$timeout = true;
 }
 
 ?>
diff --git a/inc-stats.php3 b/inc-stats.php3
index 9ae71fa122..9a60365fdb 100644
--- a/inc-stats.php3
+++ b/inc-stats.php3
@@ -6,12 +6,8 @@ if (defined("_INC_STATS")) return;
 define("_INC_STATS", "1");
 
 function ecrire_stats() {
-	global $id_article, $id_breve, $id_rubrique, $admin_ok;
-	include_ecrire("inc_connect.php3");
-	if (!$GLOBALS['db_ok'])
-		return;
+	global $id_article, $id_breve, $id_rubrique, $admin_ok, $timeout;
 
-	// Essai de fichier de log simplifie
 	$log_ip = $GLOBALS['REMOTE_ADDR'];
 	if ($id_rubrique > 0) {
 		$log_type = "rubrique";
@@ -36,7 +32,34 @@ function ecrire_stats() {
 	}
 	else return;
 
+
+	//
+	// Loguer la visite dans la base si possible
+	//
+	if ($log_type != "autre") {
+		$query = "INSERT IGNORE INTO spip_visites_temp (ip, type, id_objet) ".
+			"VALUES ($log_ip, '$log_type', $log_id_num)";
+		spip_query($query);
+	}
+	if (lire_meta('activer_statistiques_ref') == 'oui') {
+		$url_site_spip = lire_meta('adresse_site');
+		$url_site_spip = eregi_replace("^(https?|ftp://)www\.", "\\1(www)?\.", $url_site_spip);
+		$log_referer = $GLOBALS['HTTP_REFERER'];
+		if (eregi($url_site_spip, $log_referer) AND !$GLOBALS['var_recherche']) $log_referer = "";
+		if ($log_referer) {
+			$referer_md5 = '0x'.substr(md5($log_referer), 0, 16);
+			$query = "INSERT IGNORE INTO spip_referers_temp (ip, referer, referer_md5, type, id_objet) ".
+				"VALUES ($log_ip, '$log_referer', $referer_md5, '$log_type', $log_id_num)";
+			spip_query($query);
+		}
+	}
+
+
+	//
 	// Archivage des visites temporaires
+	//
+	if ($timeout) return;
+
 	$date = date("Y-m-d");
 	$last_date = lire_meta("date_statistiques");
 
@@ -46,6 +69,7 @@ function ecrire_stats() {
 		ecrire_meta('calculer_referers_now', 'non');
 		ecrire_metas();
 		calculer_referers();
+		$timeout = true;
 	} else if ($date != $last_date) {
 		include_ecrire("inc_meta.php3");
 		include_ecrire("inc_statistiques.php3");
@@ -60,35 +84,15 @@ function ecrire_stats() {
 			ecrire_meta('calculer_referers_now','oui');
 			ecrire_metas();
 		}
+		$timeout = true;
 	}
 
-	// Log simple des visites
-	if ($log_type != "autre") {
-		$query = "INSERT IGNORE INTO spip_visites_temp (ip, type, id_objet) ".
-			"VALUES ($log_ip, '$log_type', $log_id_num)";
-		spip_query($query);
-	}
-
-	// Log complexe (referers)
-	if (lire_meta('activer_statistiques_ref') == 'oui') {
-		$url_site_spip = lire_meta('adresse_site');
-		$url_site_spip = eregi_replace("^(https?|ftp://)www\.", "\\1(www)?\.", $url_site_spip);
-		$log_referer = $GLOBALS['HTTP_REFERER'];
-		if (eregi($url_site_spip, $log_referer) AND !$GLOBALS['var_recherche']) $log_referer = "";
-		if ($log_referer) {
-			$referer_md5 = '0x'.substr(md5($log_referer), 0, 16);
-			$query = "INSERT IGNORE INTO spip_referers_temp (ip, referer, referer_md5, type, id_objet) ".
-				"VALUES ($log_ip, '$log_referer', $referer_md5, '$log_type', $log_id_num)";
-			spip_query($query);
-		}
-	}
-
-
 	// popularite, mise a jour dix minutes
 	$date_popularite = lire_meta('date_stats_popularite');
-	if ((time() - $date_popularite) > 600) {
+	if (!$timeout AND ((time() - $date_popularite) > 600)) {
 		include_ecrire("inc_statistiques.php3");
 		calculer_popularites();
+		$timeout = true;
 	}
 
 
@@ -100,7 +104,6 @@ function ecrire_stats() {
 		ecrire_meta('calculer_referers_now', 'oui');
 		ecrire_metas();
 	}
-	
 }
 
 
diff --git a/mot-dist.html b/mot-dist.html
index 5785eb76f0..cee3f5cec5 100644
--- a/mot-dist.html
+++ b/mot-dist.html
@@ -39,7 +39,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/recherche-dist.html b/recherche-dist.html
index aa620e7e35..17dc7026a4 100644
--- a/recherche-dist.html
+++ b/recherche-dist.html
@@ -36,7 +36,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/resume-dist.html b/resume-dist.html
index a93fe5f0d4..54e6a6bb5b 100644
--- a/resume-dist.html
+++ b/resume-dist.html
@@ -35,7 +35,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/rubrique-dist.html b/rubrique-dist.html
index f9c497cada..7d8b51d89f 100644
--- a/rubrique-dist.html
+++ b/rubrique-dist.html
@@ -39,7 +39,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
@@ -177,6 +177,10 @@
 [<div class="chapo">(#TEXTE)</div>]
 [<div class="notes">(#NOTES)</div>]
 
+<BOUCLE_documents_joints(DOCUMENTS) {id_rubrique} {mode=document} {doublons} {"<br>"}>
+[(#LOGO_DOCUMENT|#URL_DOCUMENT)][<br>(#TITRE)][ - (#DESCRIPTIF)]
+</BOUCLE_documents_joints>
+<br>
 
 <!-- Articles recents -->
 
diff --git a/sommaire-dist.html b/sommaire-dist.html
index 81a130fb04..60de904926 100644
--- a/sommaire-dist.html
+++ b/sommaire-dist.html
@@ -36,7 +36,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
-- 
GitLab