New: Optimisation. Ajout de la durée de génération de la page si la variable environnement serveur DOL_TUNING est positionnée.

This commit is contained in:
Laurent Destailleur 2005-11-01 15:58:51 +00:00
parent 2e3d082698
commit 5cb69e6096
3 changed files with 147 additions and 129 deletions

View File

@ -1,7 +1,7 @@
<?php <?php
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005 Simon Tosser <simon@kornog-computing.com> * Copyright (C) 2005 Simon Tosser <simon@kornog-computing.com>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -20,7 +20,6 @@
* *
* $Id$ * $Id$
* $Source$ * $Source$
*
*/ */
/** /**
@ -32,9 +31,11 @@
require_once("main.inc.php"); require_once("main.inc.php");
// C'est un wrapper, donc header vierge // C'est un wrapper, donc header vierge
function llxHeader() { } function llxHeader() { }
$original_file = urldecode($_GET["file"]); $original_file = urldecode($_GET["file"]);
$modulepart = urldecode($_GET["modulepart"]); $modulepart = urldecode($_GET["modulepart"]);
$type = urldecode($_GET["type"]); $type = urldecode($_GET["type"]);
@ -45,154 +46,158 @@ $original_file = str_replace("../","/", "$original_file");
$accessallowed=0; $accessallowed=0;
if ($modulepart) if ($modulepart)
{ {
// On fait une vérification des droits et on définit le répertoire concerné // On fait une vérification des droits et on définit le répertoire concern
// Wrapping pour les factures // Wrapping pour les factures
if ($modulepart == 'facture') if ($modulepart == 'facture')
{ {
$user->getrights('facture'); $user->getrights('facture');
if ($user->rights->facture->lire) if ($user->rights->facture->lire)
{ {
$accessallowed=1; $accessallowed=1;
} }
$original_file=$conf->facture->dir_output.'/'.$original_file; $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;
} }
// Wrapping pour la telephonie // Wrapping pour les fiches intervention
if ($modulepart == 'telephonie') if ($modulepart == 'ficheinter')
{ {
$user->getrights('telephonie'); $user->getrights('ficheinter');
if ($user->rights->telephonie->lire) 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 les prelevements
// Wrapping pour la telephonie if ($modulepart == 'prelevement')
if ($modulepart == 'actionscomm')
{ {
$user->getrights('commercial'); $user->getrights('prelevement');
//if ($user->rights->commercial->lire) // Ce droit n'existe pas encore if ($user->rights->prelevement->bons->lire)
//{ {
$accessallowed=1; $accessallowed=1;
//} }
$original_file=$conf->commercial->dir_output.'/'.$original_file; $original_file=$conf->prelevement->dir_output.'/'.$original_file;
} }
// Wrapping pour les produits et services // Wrapping pour les propales
if ($modulepart == 'produit') if ($modulepart == 'propal')
{ {
$user->getrights('produit'); $user->getrights('propale');
//if ($user->rights->commercial->lire) // Ce droit n'existe pas encore if ($user->rights->propale->lire)
//{ {
$accessallowed=1; $accessallowed=1;
//} }
$original_file=$conf->produit->dir_output.'/'.$original_file; $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 // Limite accès si droits non corrects
if (! $accessallowed) if (! $accessallowed)
{ {
accessforbidden(); accessforbidden();
} }
// Ouvre et renvoi fichier
clearstatcache();
$filename = basename($original_file); $filename = basename($original_file);
if (! file_exists($original_file)) if (! file_exists($original_file))
{ {
dolibarr_print_error(0,$langs->trans("FileDoesNotExist",$original_file)); dolibarr_print_error(0,$langs->trans("FileDoesNotExist",$original_file));
exit; exit;
} }
// Les drois sont ok et fichier trouvé // Les drois sont ok et fichier trouvé
if ($type) if ($type)
{ {
header('Content-type: '.$type); header('Content-type: '.$type);
} }
else else
{ {
header('Content-type: application/pdf'); header('Content-type: application/pdf');
} }
header('Content-Disposition: attachment; filename="'.$filename.'"'); header('Content-Disposition: attachment; filename="'.$filename.'"');

View File

@ -29,6 +29,10 @@
\version $Revision$ \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"); require_once("master.inc.php");
@ -477,12 +481,18 @@ function printSearchForm($urlaction,$urlobject,$title,$htmlmodesearch='search',$
function llxFooter($foot='') function llxFooter($foot='')
{ {
global $dolibarr_auto_user; global $dolibarr_auto_user, $micro_start_time;
print "\n</div>\n".'<!-- end div class="fiche" -->'."\n"; print "\n</div>\n".'<!-- end div class="fiche" -->'."\n";
print "\n</div>\n".'<!-- end div class="vmenuplusfiche" -->'; print "\n</div>\n".'<!-- end div class="vmenuplusfiche" -->';
print "\n</div>\n".'<!-- end div class="body" -->'."\n"; print "\n</div>\n".'<!-- end div class="body" -->'."\n";
print "</body>\n</html>\n"; if (isset($_SERVER['DOL_TUNING']))
{
print '<script language="javascript" type="text/javascript">window.status="Build time: '.ceil(1000*(microtime(true)-$micro_start_time)).' ms"</script>';
print "\n";
}
print "</body>\n</html>\n";
} }
?> ?>

View File

@ -33,9 +33,12 @@
define('DOL_VERSION','2.0.0-alpha2'); 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")) if (function_exists("define_syslog_variables"))
{ {
define_syslog_variables(); define_syslog_variables();