From aaea7f1b60a6d92871578469957394bfdbe64b42 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Sat, 6 Oct 2007 12:49:41 +0000
Subject: [PATCH] nettoyages divers, notamment de la fonction de quota_cache

---
 ecrire/inc/invalideur.php | 17 ++++++++++-------
 ecrire/inc_version.php    | 36 ++++++------------------------------
 ecrire/public.php         |  5 ++---
 ecrire/public/stats.php   |  4 ----
 4 files changed, 18 insertions(+), 44 deletions(-)

diff --git a/ecrire/inc/invalideur.php b/ecrire/inc/invalideur.php
index f827631c98..eab2337aec 100644
--- a/ecrire/inc/invalideur.php
+++ b/ecrire/inc/invalideur.php
@@ -61,7 +61,7 @@ function suivre_invalideur($cond, $modif=true) {
 
 // Utilisee pour vider le cache depuis l'espace prive
 // (ou juste les squelettes si un changement de config le necessite)
-// si $date est passee en argument, ne pas supprimer ce qui a servi
+// si $atime est passee en argument, ne pas supprimer ce qui a servi
 // plus recemment que cette date (via fileatime)
 // retourne le nombre de fichiers supprimes
 // http://doc.spip.org/@purger_repertoire
@@ -76,8 +76,8 @@ function purger_repertoire($dir, $options=array()) {
 		if ($fichier[0] == '.') continue;
 		$chemin = "$dir/$fichier";
 		if (is_file($chemin)) {
-			if (!isset($options['date'])
-			OR (@fileatime($chemin) < $options['date'])) {
+			if (!isset($options['atime'])
+			OR (@fileatime($chemin) < $options['atime'])) {
 				supprimer_fichier($chemin);
 				$total ++;
 			}
@@ -98,7 +98,8 @@ function purger_repertoire($dir, $options=array()) {
 //
 // Methode : on prend un des sous-repertoires de CACHE/
 // on considere qu'il fait 1/16e de la taille du cache
-// et on le ratiboise
+// et on le ratiboise en supprimant les fichiers qui n'ont pas
+// ete sollicites dans l'heure qui vient de s'ecouler
 //
 // http://doc.spip.org/@appliquer_quota_cache
 function appliquer_quota_cache() {
@@ -112,15 +113,17 @@ function appliquer_quota_cache() {
 	$nombre = nombre_de_fichiers_repertoire($dir);
 	$total_cache = _TAILLE_MOYENNE_FICHIER_CACHE * $nombre;
 	spip_log("Taille du CACHE estimee ($l): "
-		.(intval(16*$total_cache/102400)/10)." Mo");
+		.(intval(16*$total_cache/(1024*1024/10))/10)." Mo");
 
+	// Nombre max de fichiers a supprimer
 	if ($quota_cache > 0) {
 		$trop = $total_cache - ($quota_cache/16)*1024*1024;
+		$trop = 3 * intval($trop / _TAILLE_MOYENNE_FICHIER_CACHE);
 		if ($trop > 0) {
 			$n = purger_repertoire($dir,
 				array(
-					'atime' => time()-_AGE_CACHE_ATIME,
-					'limit' => intval($trop / _TAILLE_MOYENNE_FICHIER_CACHE)
+					'atime' => time() - _AGE_CACHE_ATIME,
+					'limit' => $trop
 				)
 			);
 			spip_log("$dir : $n caches supprimes");
diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php
index 4c50e2d214..9075351749 100644
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -114,7 +114,6 @@ $filtrer_javascript = 0;
 // 'html': article123.html
 // 'propres': Titre-de-l-article <http://lab.spip.net/spikini/UrlsPropres>
 // 'propres2' : Titre-de-l-article.html (base sur 'propres')
-// 'standard': article.php3?id_article=123 [urls SPIP < 1.9]
 $type_urls = 'page';
 
 
@@ -130,17 +129,6 @@ if (isset($_SERVER['REMOTE_ADDR'])) $ip = $_SERVER['REMOTE_ADDR'];
 // ou dans spip.log), ni dans les forums (responsabilite)
 # $ip = substr(md5($ip),0,16);
 
-// Creation des images avec ImageMagick : definir la constante de facon
-// a preciser le chemin du binaire et les options souhaitees. Par defaut :
-// define('_CONVERT_COMMAND', 'convert');
-// define('_RESIZE_COMMAND', _CONVERT_COMMAND.' -quality 85 -resize %xx%y! %src %dest');
-
-// Creation des vignettes avec netpbm/pnmscale
-// Note: plus facile a installer par FTP,
-// voir http://gallery.menalto.com/modules.php?op=modload&name=GalleryFAQ&file=index&myfaq=yes&id_cat=2#43
-// par defaut :
-// define('_PNMSCALE_COMMAND', 'pnmscale');
-
 // faut-il passer les connexions MySQL en mode debug ?
 $mysql_debug = false;
 
@@ -163,22 +151,14 @@ $champs_extra_proposes = false;
 $ignore_auth_http = false;
 $ignore_remote_user = true; # methode obsolete et risquee
 
-// Faut-il "invalider" les caches quand on depublie ou modifie un article ?
-# NB: cette option ne concerne pas les forums et petitions qui sont toujours
-# invalidants. (fonctionnalite experimentale : decommenter ci-dessous)
-#$invalider_caches = 'id_article,id_breve,id_rubrique,id_syndic';
-$invalider_caches = '';
-
-// Autre approche : tout invalider si modif
+// Invalider les caches a chaque modification du contenu ?
 // Si votre site a des problemes de performance face a une charge tres elevee,
-// il est recommande de mettre cette globale a false (dans mes_options).
+// vous pouvez mettre cette globale a false (dans mes_options).
 $derniere_modif_invalide = true;
 
 // Quota : la variable $quota_cache, si elle est > 0, indique la taille
-// totale maximale desiree des fichiers contenus dans le CACHE/ ;
-// ce quota n'est pas "dur", il ne s'applique qu'une fois par heure et
-// fait redescendre le cache a la taille voulue ; valeur en Mo
-// Si la variable vaut 0 aucun quota ne s'applique
+// totale maximale desiree des fichiers contenus dans le cache ; ce quota n'est
+// pas "dur" : si le site necessite un espace plus important, il le prend
 $quota_cache = 10;
 
 //
@@ -325,8 +305,7 @@ $meta = $connect_id_rubrique = array();
 //
 // Definitions des fonctions (charge aussi inc/flock)
 //
-
-require_once(_DIR_RESTREINT . 'inc/utils.php');
+require_once _DIR_RESTREINT . 'inc/utils.php';
 
 // Definition personnelles eventuelles
 
@@ -405,13 +384,12 @@ OR _request('action') == 'test_dirs')) {
 // prive car sinon ca rame a l'affichage (a revoir...)
 //
 
+@header("Vary: Cookie, Accept-Encoding");
 // si un buffer est deja ouvert, stop
 if (!test_espace_prive()
 AND $flag_ob
 AND strlen(ob_get_contents())==0
 AND !headers_sent()) {
-	@header("Vary: Cookie, Accept-Encoding");
-
 	if (
 	$GLOBALS['auto_compress']
 	&& function_exists('ob_gzhandler')
@@ -430,8 +408,6 @@ AND !headers_sent()) {
 	)
 		ob_start('ob_gzhandler');
 }
-else
-	@header("Vary: Cookie");
 
 // Vanter notre art de la composition typographique
 // La globale $spip_header_silencieux permet de rendre le header minimal pour raisons de securite
diff --git a/ecrire/public.php b/ecrire/public.php
index dc8bb5d7f9..8d12441eaf 100644
--- a/ecrire/public.php
+++ b/ecrire/public.php
@@ -249,11 +249,10 @@ if (defined('_INC_PUBLIC')) {
 		$stats();
 	}
 
-	if (isset($GLOBALS['meta']['date_prochain_postdate'])) {
-	  if ($GLOBALS['meta']['date_prochain_postdate'] <= time()) {
+	if (isset($GLOBALS['meta']['date_prochain_postdate'])
+	AND $GLOBALS['meta']['date_prochain_postdate'] <= time()) {
 		include_spip('inc/rubriques');
 		calculer_prochain_postdate(true);
-	  }
 	}
 
 	// Effectuer une tache de fond ?
diff --git a/ecrire/public/stats.php b/ecrire/public/stats.php
index 1130221056..bdfa3ede73 100644
--- a/ecrire/public/stats.php
+++ b/ecrire/public/stats.php
@@ -12,10 +12,6 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-# interface obsolete (?)
-// http://doc.spip.org/@ecrire_stats
-function ecrire_stats() {public_stats_dist();}
-
 // http://doc.spip.org/@public_stats_dist
 function public_stats_dist() {
 
-- 
GitLab