From 5cb69e6096b32f7bfa90157a7f1428602d6aa235 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 1 Nov 2005 15:58:51 +0000 Subject: [PATCH] =?UTF-8?q?New:=20Optimisation.=20Ajout=20de=20la=20dur=E9?= =?UTF-8?q?e=20de=20g=E9n=E9ration=20de=20la=20page=20si=20la=20variable?= =?UTF-8?q?=20environnement=20serveur=20DOL=5FTUNING=20est=20positionn=E9e?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/document.php | 245 +++++++++++++++++++++--------------------- htdocs/main.inc.php | 24 +++-- htdocs/master.inc.php | 7 +- 3 files changed, 147 insertions(+), 129 deletions(-) diff --git a/htdocs/document.php b/htdocs/document.php index b5ed05286ad..75ea4ce07f6 100644 --- a/htdocs/document.php +++ b/htdocs/document.php @@ -1,7 +1,7 @@ - * Copyright (C) 2004 Laurent Destailleur - * Copyright (C) 2005 Simon Tosser + * Copyright (C) 2004-2005 Laurent Destailleur + * Copyright (C) 2005 Simon Tosser * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,7 +20,6 @@ * * $Id$ * $Source$ - * */ /** @@ -32,9 +31,11 @@ require_once("main.inc.php"); + // C'est un wrapper, donc header vierge function llxHeader() { } + $original_file = urldecode($_GET["file"]); $modulepart = urldecode($_GET["modulepart"]); $type = urldecode($_GET["type"]); @@ -45,154 +46,158 @@ $original_file = str_replace("../","/", "$original_file"); $accessallowed=0; if ($modulepart) { - // On fait une vérification des droits et on définit le répertoire concerné - - // Wrapping pour les factures - if ($modulepart == 'facture') + // On fait une vérification des droits et on définit le répertoire concern + + // Wrapping pour les factures + if ($modulepart == 'facture') { - $user->getrights('facture'); - if ($user->rights->facture->lire) + $user->getrights('facture'); + if ($user->rights->facture->lire) { - $accessallowed=1; + $accessallowed=1; } - $original_file=$conf->facture->dir_output.'/'.$original_file; - } - - // Wrapping pour les fiches intervention - if ($modulepart == 'ficheinter') - { - $user->getrights('ficheinter'); - if ($user->rights->ficheinter->lire) - { - $accessallowed=1; - } - $original_file=$conf->fichinter->dir_output.'/'.$original_file; - } - - // Wrapping pour les prelevements - if ($modulepart == 'prelevement') - { - $user->getrights('prelevement'); - if ($user->rights->prelevement->bons->lire) - { - $accessallowed=1; - } - $original_file=$conf->prelevement->dir_output.'/'.$original_file; - } - - // Wrapping pour les propales - if ($modulepart == 'propal') - { - $user->getrights('propale'); - if ($user->rights->propale->lire) - { - $accessallowed=1; - } - $original_file=$conf->propal->dir_output.'/'.$original_file; - } - - // Wrapping pour les rapport de paiements - if ($modulepart == 'facture_paiement') - { - $user->getrights('facture'); - if ($user->rights->facture->lire) - { - $accessallowed=1; - } - $original_file=$conf->compta->dir_output.'/'.$original_file; - } - - // Wrapping pour les exports de compta - if ($modulepart == 'export_compta') - { - $user->getrights('compta'); - if ($user->rights->compta->ventilation->creer) - { - $accessallowed=1; - } - $original_file=$conf->compta->dir_output.'/'.$original_file; - } - - // Wrapping pour les societe - if ($modulepart == 'societe') - { - $user->getrights('societe'); - if ($user->rights->societe->lire) - { - $accessallowed=1; - } - $original_file=$conf->societe->dir_output.'/'.$original_file; - } - - // Wrapping pour les expedition - if ($modulepart == 'expedition') - { - $user->getrights('expedition'); - if ($user->rights->expedition->lire) - { - $accessallowed=1; - } - $original_file=$conf->expedition->dir_output.'/'.$original_file; + $original_file=$conf->facture->dir_output.'/'.$original_file; } - // Wrapping pour la telephonie - if ($modulepart == 'telephonie') + // Wrapping pour les fiches intervention + if ($modulepart == 'ficheinter') { - $user->getrights('telephonie'); - if ($user->rights->telephonie->lire) + $user->getrights('ficheinter'); + if ($user->rights->ficheinter->lire) { - $accessallowed=1; + $accessallowed=1; } - $original_file=$conf->telephonie->dir_output.'/'.$original_file; + $original_file=$conf->fichinter->dir_output.'/'.$original_file; } - - - // Wrapping pour la telephonie - if ($modulepart == 'actionscomm') + + // Wrapping pour les prelevements + if ($modulepart == 'prelevement') { - $user->getrights('commercial'); - //if ($user->rights->commercial->lire) // Ce droit n'existe pas encore - //{ - $accessallowed=1; - //} - $original_file=$conf->commercial->dir_output.'/'.$original_file; + $user->getrights('prelevement'); + if ($user->rights->prelevement->bons->lire) + { + $accessallowed=1; + } + $original_file=$conf->prelevement->dir_output.'/'.$original_file; } - - // Wrapping pour les produits et services - if ($modulepart == 'produit') + + // Wrapping pour les propales + if ($modulepart == 'propal') { - $user->getrights('produit'); - //if ($user->rights->commercial->lire) // Ce droit n'existe pas encore - //{ - $accessallowed=1; - //} - $original_file=$conf->produit->dir_output.'/'.$original_file; - } - + $user->getrights('propale'); + if ($user->rights->propale->lire) + { + $accessallowed=1; + } + $original_file=$conf->propal->dir_output.'/'.$original_file; + } + + // Wrapping pour les rapport de paiements + if ($modulepart == 'facture_paiement') + { + $user->getrights('facture'); + if ($user->rights->facture->lire) + { + $accessallowed=1; + } + $original_file=$conf->compta->dir_output.'/'.$original_file; + } + + // Wrapping pour les exports de compta + if ($modulepart == 'export_compta') + { + $user->getrights('compta'); + if ($user->rights->compta->ventilation->creer) + { + $accessallowed=1; + } + $original_file=$conf->compta->dir_output.'/'.$original_file; + } + + // Wrapping pour les societe + if ($modulepart == 'societe') + { + $user->getrights('societe'); + if ($user->rights->societe->lire) + { + $accessallowed=1; + } + $original_file=$conf->societe->dir_output.'/'.$original_file; + } + + // Wrapping pour les expedition + if ($modulepart == 'expedition') + { + $user->getrights('expedition'); + if ($user->rights->expedition->lire) + { + $accessallowed=1; + } + $original_file=$conf->expedition->dir_output.'/'.$original_file; + } + + // Wrapping pour la telephonie + if ($modulepart == 'telephonie') + { + $user->getrights('telephonie'); + if ($user->rights->telephonie->lire) + { + $accessallowed=1; + } + $original_file=$conf->telephonie->dir_output.'/'.$original_file; + } + + + // Wrapping pour la telephonie + if ($modulepart == 'actionscomm') + { + $user->getrights('commercial'); + //if ($user->rights->commercial->lire) // Ce droit n'existe pas encore + //{ + $accessallowed=1; + //} + $original_file=$conf->commercial->dir_output.'/'.$original_file; + } + + // Wrapping pour les produits et services + if ($modulepart == 'produit') + { + $user->getrights('produit'); + //if ($user->rights->commercial->lire) // Ce droit n'existe pas encore + //{ + $accessallowed=1; + //} + $original_file=$conf->produit->dir_output.'/'.$original_file; + } + } // Limite accès si droits non corrects if (! $accessallowed) { - accessforbidden(); + accessforbidden(); } + +// Ouvre et renvoi fichier +clearstatcache(); + $filename = basename($original_file); if (! file_exists($original_file)) { - dolibarr_print_error(0,$langs->trans("FileDoesNotExist",$original_file)); - exit; + dolibarr_print_error(0,$langs->trans("FileDoesNotExist",$original_file)); + exit; } // Les drois sont ok et fichier trouvé if ($type) { - header('Content-type: '.$type); + header('Content-type: '.$type); } else { - header('Content-type: application/pdf'); + header('Content-type: application/pdf'); } header('Content-Disposition: attachment; filename="'.$filename.'"'); diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index cf521fed769..92a4c4d879e 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -29,6 +29,10 @@ \version $Revision$ */ +// Pour le tuning optionnel. Activer si la variable d'environnement DOL_TUNING +// est positionnée. A appeler avant tout. +if (isset($_SERVER['DOL_TUNING'])) $micro_start_time=microtime(true); + require_once("master.inc.php"); @@ -477,12 +481,18 @@ function printSearchForm($urlaction,$urlobject,$title,$htmlmodesearch='search',$ function llxFooter($foot='') { - global $dolibarr_auto_user; - - print "\n\n".''."\n"; - print "\n\n".''; - print "\n\n".''."\n"; - - print "\n\n"; + global $dolibarr_auto_user, $micro_start_time; + + print "\n\n".''."\n"; + print "\n\n".''; + print "\n\n".''."\n"; + + if (isset($_SERVER['DOL_TUNING'])) + { + print ''; + print "\n"; + } + + print "\n\n"; } ?> diff --git a/htdocs/master.inc.php b/htdocs/master.inc.php index 4060255b7a4..6e20c258549 100644 --- a/htdocs/master.inc.php +++ b/htdocs/master.inc.php @@ -33,9 +33,12 @@ define('DOL_VERSION','2.0.0-alpha2'); -clearstatcache(); +// La fonction clearstatcache ne doit pas etre appelé de manière globale car ralenti +// fortement. Elle doit etre appelée uniquement par les pages qui ont besoin d'absence +// de cache, comme par exemple document.php +clearstatcache(); -// Forcage du param?trage PHP error_reporting (Dolibarr non utilisable en mode error E_ALL) +// Forcage du parametrage PHP error_reporting (Dolibarr non utilisable en mode error E_ALL) if (function_exists("define_syslog_variables")) { define_syslog_variables();