From 66514bb355f6504051073421abfb0e8542a75596 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Mon, 16 Mar 2009 07:38:27 +0000 Subject: [PATCH] retour sur [12025] : tout calculer pose des problemes de performance si on a une page qui affiche des trouzaines de #INTRODUCTION --- ecrire/inc/utils.php | 15 +++++++++++---- ecrire/public/composer.php | 24 ++++++++++++++++++------ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index adb93c60a2..9c42b2e4e8 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -149,8 +149,13 @@ function spip_log($message, $logname=NULL, $logdir=NULL, $logsuf=NULL) { if (is_null($logname)) $logname = defined('_FILE_LOG') ? _FILE_LOG : 'spip'; if (!isset($compteur[$logname])) $compteur[$logname] = 0; - if (($logname != 'maj') AND - ( $compteur[$logname]++ > _MAX_LOG || !$nombre_de_logs || !$taille_des_logs)) + if ($logname != 'maj' + AND defined('_MAX_LOG') + AND ( + $compteur[$logname]++ > _MAX_LOG + OR !$nombre_de_logs + OR !$taille_des_logs + )) return; $logfile = ($logdir===NULL ? _DIR_LOG : $logdir) @@ -184,7 +189,8 @@ function spip_log($message, $logname=NULL, $logdir=NULL, $logsuf=NULL) { fclose($f); } - if ($rotate-- > 0) { + if ($rotate-- > 0 + AND function_exists('spip_unlink')) { spip_unlink($logfile . '.' . $rotate); while ($rotate--) { @rename($logfile . ($rotate ? '.' . $rotate : ''), $logfile . '.' . ($rotate + 1)); @@ -192,7 +198,8 @@ function spip_log($message, $logname=NULL, $logdir=NULL, $logsuf=NULL) { } // Dupliquer les erreurs specifiques dans le log general - if ($logname !== _FILE_LOG) + if ($logname !== _FILE_LOG + AND defined('_FILE_LOG')) spip_log($logname=='maj' ? 'cf maj.log' : $message); } diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php index 230c6eb1c6..af3ae0b027 100644 --- a/ecrire/public/composer.php +++ b/ecrire/public/composer.php @@ -204,14 +204,26 @@ function filtre_introduction_dist($descriptif, $texte, $longueur, $connect) { $zone = substr($zone, $deb + 7); $intro .= $zone; } - $texte = $intro ? $intro : $texte; - - // On ne *PEUT* pas couper simplement ici car c'est du texte brut, qui inclus raccourcis et modeles + + // [12025] On ne *PEUT* pas couper simplement ici car c'est du texte brut, + // qui inclus raccourcis et modeles // un simple <articlexx> peut etre ensuite transforme en 1000 lignes ... - // par ailleurs le nettoyage des raccourcis ne tient pas compte des surcharges - // et enrichissement de propre + // par ailleurs le nettoyage des raccourcis ne tient pas compte + // des surcharges et enrichissement de propre // couper doit se faire apres propre - //$texte = nettoyer_raccourcis_typo($intro ? $intro : $texte, $connect); + //$texte = nettoyer_raccourcis_typo($intro ? $intro : $texte, $connect); + + // Cependant pour des questions de perfs on coupe quand meme, en prenant + // large et en se mefiant des tableaux #1323 + + if (strlen($intro)) + $texte = $intro; + + else + if (strpos("\n".$texte, "\n|")===false + AND strlen($texte) > 2.5*$longueur) + $texte = couper($texte, 2*$longueur); + // ne pas tenir compte des notes ; // bug introduit en http://trac.rezo.net/trac/spip/changeset/12025 -- GitLab