New: Optimisation. Ajout de la dure de gnration de la page si la variable environnement serveur DOL_TUNING est positionne.

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
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2004 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005 Simon Tosser <simon@kornog-computing.com>
* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005 Simon Tosser <simon@kornog-computing.com>
*
* 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.'"');

View File

@ -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</div>\n".'<!-- end div class="fiche" -->'."\n";
print "\n</div>\n".'<!-- end div class="vmenuplusfiche" -->';
print "\n</div>\n".'<!-- end div class="body" -->'."\n";
print "</body>\n</html>\n";
global $dolibarr_auto_user, $micro_start_time;
print "\n</div>\n".'<!-- end div class="fiche" -->'."\n";
print "\n</div>\n".'<!-- end div class="vmenuplusfiche" -->';
print "\n</div>\n".'<!-- end div class="body" -->'."\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');
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();