Merge branch 'develop' of git@github.com:Dolibarr/dolibarr.git into develop
This commit is contained in:
commit
fbf6f150bc
451
htdocs/admin/system/perf.php
Normal file
451
htdocs/admin/system/perf.php
Normal file
@ -0,0 +1,451 @@
|
||||
<?php
|
||||
/* Copyright (C) 2005-2013 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||
*
|
||||
* 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
|
||||
* the Free Software Foundation; either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/admin/system/perf.php
|
||||
* \brief Page to show Performance information
|
||||
*/
|
||||
|
||||
require '../../main.inc.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
|
||||
|
||||
$langs->load("admin");
|
||||
$langs->load("install");
|
||||
$langs->load("other");
|
||||
|
||||
if (! $user->admin)
|
||||
accessforbidden();
|
||||
|
||||
if (GETPOST('action') == 'donothing')
|
||||
{
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$form=new Form($db);
|
||||
$nowstring=dol_print_date(dol_now(),'dayhourlog');
|
||||
|
||||
llxHeader();
|
||||
|
||||
print_fiche_titre($langs->trans("PerfDolibarr"),'','setup');
|
||||
|
||||
print $langs->trans("YouMayFindPerfAdviceHere",'http://wiki.dolibarr.org/index.php/FAQ_Increase_Performance').' (<a href="'.$_SERVER["PHP_SELF"].'">'.$langs->trans("Reload").'</a>)<br>';
|
||||
|
||||
// XDebug
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("XDebug").'</strong>: ';
|
||||
$test=!function_exists('xdebug_is_enabled');
|
||||
if ($test) print img_picto('','tick.png').' '.$langs->trans("NotInstalled");
|
||||
else
|
||||
{
|
||||
print img_picto('','warning').' '.$langs->trans("XDebugInstalled");
|
||||
print $langs->trans("MoreInformation").' <a href="'.DOL_URL_ROOT.'/admin/xdebug.php'.'">XDebug admin page</a>';
|
||||
}
|
||||
print '<br>';
|
||||
|
||||
// Applicative cache
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("ApplicativeCache").'</strong>: ';
|
||||
$test=!empty($conf->memcached->enabled);
|
||||
if ($test)
|
||||
{
|
||||
if (!empty($conf->global->MEMCACHED_SERVER))
|
||||
{
|
||||
print img_picto('','tick.png').' '.$langs->trans("MemcachedAvailableAndSetup");
|
||||
print $langs->trans("MoreInformation").' <a href="'.dol_buildpath('/memcached/admin/memcached.php',1).'">Memcached module admin page</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
print img_picto('','warning').' '.$langs->trans("MemcachedModuleAvailableButNotSetup");
|
||||
}
|
||||
}
|
||||
else print img_picto('','warning').' '.$langs->trans("MemcachedNotAvailable");
|
||||
print '</br>';
|
||||
|
||||
// OPCode cache
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("OPCodeCache").'</strong>: ';
|
||||
$test1=function_exists('xcache_info');
|
||||
if ($test1)
|
||||
{
|
||||
print img_picto('','tick.png').' '.$langs->trans("XCacheInstalled");
|
||||
print $langs->trans("MoreInformation").' <a href="'.DOL_URL_ROOT.'/admin/xcache.php'.'">Xcache admin page</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$test2=function_exists('eaccelerator_info');
|
||||
if ($test2) print img_picto('','tick.png').' '.$langs->trans("EAcceleratorInstalled");
|
||||
else print $langs->trans("NoOPCodeCacheFound");
|
||||
}
|
||||
print '<br>';
|
||||
|
||||
// HTTPCacheStaticResources
|
||||
print '<script type="text/javascript" language="javascript">
|
||||
jQuery(document).ready(function() {
|
||||
var getphpurl;
|
||||
var cachephpstring;
|
||||
var compphpstring;
|
||||
getphpurl = $.ajax({
|
||||
type: "GET",
|
||||
url: \''.DOL_URL_ROOT.'/index.php\',
|
||||
cache: false,
|
||||
/* async: false, */
|
||||
/* crossDomain: true,*/
|
||||
success: function () {
|
||||
cachephpstring=getphpurl.getResponseHeader(\'Cache-Control\');
|
||||
/* alert(\'php:\'+getphpurl.getAllResponseHeaders()); */
|
||||
/*alert(\'php:\'+cachephpstring);*/
|
||||
if (cachephpstring == null || cachephpstring.indexOf("no-cache") !== -1)
|
||||
{
|
||||
jQuery("#httpcachephpok").hide();
|
||||
jQuery("#httpcachephpko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcachephpok").show();
|
||||
jQuery("#httpcachephpko").hide();
|
||||
}
|
||||
compphpstring=getphpurl.getResponseHeader(\'Content-Encoding\');
|
||||
/* alert(\'php:\'+getphpurl.getAllResponseHeaders()); */
|
||||
/*alert(\'php:\'+compphpstring);*/
|
||||
if (compphpstring == null || (compphpstring.indexOf("gzip") == -1 && compphpstring.indexOf("deflate") == -1))
|
||||
{
|
||||
jQuery("#httpcompphpok").hide();
|
||||
jQuery("#httpcompphpko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcompphpok").show();
|
||||
jQuery("#httpcompphpko").hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
var getcssurl;
|
||||
var cachecssstring;
|
||||
var compcssstring;
|
||||
getcssurl = $.ajax({
|
||||
type: "GET",
|
||||
url: \''.DOL_URL_ROOT.'/includes/jquery/css/smoothness/jquery-ui-latest.custom.css\',
|
||||
cache: false,
|
||||
/* async: false, */
|
||||
/*crossDomain: true, */
|
||||
success: function () {
|
||||
cachecssstring=getcssurl.getResponseHeader(\'Cache-Control\');
|
||||
/* alert(\'css:\'+getcssurl.getAllResponseHeaders()); */
|
||||
/*alert(\'css:\'+cachecssstring);*/
|
||||
if (cachecssstring != null && cachecssstring.indexOf("no-cache") !== -1)
|
||||
{
|
||||
jQuery("#httpcachecssok").hide();
|
||||
jQuery("#httpcachecssko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcachecssok").show();
|
||||
jQuery("#httpcachecssko").hide();
|
||||
}
|
||||
compcssstring=getcssurl.getResponseHeader(\'Content-Encoding\');
|
||||
/* alert(\'php:\'+getcssurl.getAllResponseHeaders()); */
|
||||
/*alert(\'php:\'+compcssstring);*/
|
||||
if (compcssstring == null || (compcssstring.indexOf("gzip") == -1 && compcssstring.indexOf("deflate") == -1))
|
||||
{
|
||||
jQuery("#httpcompcssok").hide();
|
||||
jQuery("#httpcompcssko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcompcssok").show();
|
||||
jQuery("#httpcompcssko").hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
var getcssphpurl;
|
||||
var cachecssphpstring;
|
||||
var compcssphpstring;
|
||||
getcssphpurl = $.ajax({
|
||||
type: "GET",
|
||||
url: \''.DOL_URL_ROOT.'/theme/eldy/style.css.php\',
|
||||
cache: false,
|
||||
/* async: false, */
|
||||
/*crossDomain: true,*/
|
||||
success: function () {
|
||||
cachecssphpstring=getcssphpurl.getResponseHeader(\'Cache-Control\');
|
||||
/* alert(\'cssphp:\'+getcssphpurl.getAllResponseHeaders()); */
|
||||
/*alert(\'cssphp:\'+cachecssphpstring);*/
|
||||
if (cachecssphpstring != null && cachecssphpstring.indexOf("no-cache") !== -1)
|
||||
{
|
||||
jQuery("#httpcachecssphpok").hide();
|
||||
jQuery("#httpcachecssphpko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcachecssphpok").show();
|
||||
jQuery("#httpcachecssphpko").hide();
|
||||
}
|
||||
compcssphpstring=getcssphpurl.getResponseHeader(\'Content-Encoding\');
|
||||
/* alert(\'php:\'+getcssphpurl.getAllResponseHeaders()); */
|
||||
/*alert(\'php:\'+compcssphpstring);*/
|
||||
if (compcssphpstring == null || (compcssphpstring.indexOf("gzip") == -1 && compcssphpstring.indexOf("deflate") == -1))
|
||||
{
|
||||
jQuery("#httpcompcssphpok").hide();
|
||||
jQuery("#httpcompcssphpko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcompcssphpok").show();
|
||||
jQuery("#httpcompcssphpko").hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
var getimgurl;
|
||||
var cacheimgstring;
|
||||
var compimgstring;
|
||||
getimgurl = $.ajax({
|
||||
type: "GET",
|
||||
url: \''.DOL_URL_ROOT.'/theme/eldy/img/help.png\',
|
||||
cache: false,
|
||||
/* async: false, */
|
||||
/*crossDomain: true,*/
|
||||
success: function () {
|
||||
cacheimgstring=getimgurl.getResponseHeader(\'Cache-Control\');
|
||||
/* alert(\'img:\'+getimgurl.getAllResponseHeaders()); */
|
||||
/*alert(\'img:\'+cacheimgstring);*/
|
||||
if (cacheimgstring != null && cacheimgstring.indexOf("no-cache") !== -1)
|
||||
{
|
||||
jQuery("#httpcacheimgok").hide();
|
||||
jQuery("#httpcacheimgko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcacheimgok").show();
|
||||
jQuery("#httpcacheimgko").hide();
|
||||
}
|
||||
compimgstring=getimgurl.getResponseHeader(\'Content-Encoding\');
|
||||
/* alert(\'php:\'+getimgurl.getAllResponseHeaders()); */
|
||||
/*alert(\'php:\'+compimgstring);*/
|
||||
if (compimgstring == null || (compimgstring.indexOf("gzip") == -1 && compimgstring.indexOf("deflate") == -1))
|
||||
{
|
||||
jQuery("#httpcompimgok").hide();
|
||||
jQuery("#httpcompimgko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcompimgok").show();
|
||||
jQuery("#httpcompimgko").hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
var getjsurl;
|
||||
var cachejsstring;
|
||||
var compjsstring;
|
||||
getjsurl = $.ajax({
|
||||
type: "GET",
|
||||
url: \''.DOL_URL_ROOT.'/core/js/lib_head.js\',
|
||||
cache: false,
|
||||
/* async: false, */
|
||||
/* crossDomain: true,*/
|
||||
success: function () {
|
||||
cachejsstring=getjsurl.getResponseHeader(\'Cache-Control\');
|
||||
/*alert(\'js:\'+getjsurl.getAllResponseHeaders());*/
|
||||
/*alert(\'js:\'+cachejsstring);*/
|
||||
if (cachejsstring != null && cachejsstring.indexOf("no-cache") !== -1)
|
||||
{
|
||||
jQuery("#httpcachejsok").hide();
|
||||
jQuery("#httpcachejsko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcachejsok").show();
|
||||
jQuery("#httpcachejsko").hide();
|
||||
}
|
||||
compjstring=getjsurl.getResponseHeader(\'Content-Encoding\');
|
||||
/* alert(\'php:\'+getjsurl.getAllResponseHeaders()); */
|
||||
/*alert(\'php:\'+compjsstring);*/
|
||||
if (compjsstring == null || (compjsstring.indexOf("gzip") == -1 && compjsstring.indexOf("deflate") == -1))
|
||||
{
|
||||
jQuery("#httpcompjsok").hide();
|
||||
jQuery("#httpcompjsko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcompjsok").show();
|
||||
jQuery("#httpcompjsko").hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
var getjsphpurl;
|
||||
var cachejsphpstring;
|
||||
var compjsphpstring;
|
||||
getjsphpurl = $.ajax({
|
||||
type: "GET",
|
||||
url: \''.DOL_URL_ROOT.'/core/js/datepicker.js.php\',
|
||||
cache: false,
|
||||
/* async: false, */
|
||||
/* crossDomain: true,*/
|
||||
success: function () {
|
||||
cachejsphpstring=getjsphpurl.getResponseHeader(\'Cache-Control\');
|
||||
/* alert(\'jsphp:\'+getjsphpurl.getAllResponseHeaders()); */
|
||||
/*alert(\'jsphp:\'+cachejsphpstring);*/
|
||||
if (cachejsphpstring != null && cachejsphpstring.indexOf("no-cache") !== -1)
|
||||
{
|
||||
jQuery("#httpcachejsphpok").hide();
|
||||
jQuery("#httpcachejsphpko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcachejsphpok").show();
|
||||
jQuery("#httpcachejsphpko").hide();
|
||||
}
|
||||
compjsphpstring=getjsphpurl.getResponseHeader(\'Content-Encoding\');
|
||||
/* alert(\'php:\'+getjsphpurl.getAllResponseHeaders()); */
|
||||
/*alert(\'php:\'+compjsphpstring);*/
|
||||
if (compjsphpstring == null || (compjsphpstring.indexOf("gzip") == -1 && compjsphpstring.indexOf("deflate") == -1))
|
||||
{
|
||||
jQuery("#httpcompjsphpok").hide();
|
||||
jQuery("#httpcompjsphpko").show();
|
||||
}
|
||||
else
|
||||
{
|
||||
jQuery("#httpcompjsphpok").show();
|
||||
jQuery("#httpcompjsphpko").hide();
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
});
|
||||
</script>';
|
||||
|
||||
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("HTTPCacheStaticResources").' - ';
|
||||
print $langs->trans("CacheByServer").':</strong><br>';
|
||||
// No cahce on PHP
|
||||
//print '<div id="httpcachephpok">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCompressed",'php (.php)').'</div>';
|
||||
//print '<div id="httpcachephpko">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeNotCached",'php (.php)').'</div>';
|
||||
// Cache on rest
|
||||
print '<div id="httpcachecssok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCached",'css (.css)').'</div>';
|
||||
print '<div id="httpcachecssko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCached",'css (.css)').'</div>';
|
||||
print '<div id="httpcachecssphpok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCached",'css (.css.php)').'</div>';
|
||||
print '<div id="httpcachecssphpko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCached",'css (.css.php)').'</div>';
|
||||
print '<div id="httpcacheimgok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCached",'img (.png)').'</div>';
|
||||
print '<div id="httpcacheimgko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCached",'img (.png)').'</div>';
|
||||
print '<div id="httpcachejsok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCached",'javascript (.js)').'</div>';
|
||||
print '<div id="httpcachejsko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCached",'javascript (.js)').'</div>';
|
||||
print '<div id="httpcachejsphpok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCached",'javascript (.js.php)').'</div>';
|
||||
print '<div id="httpcachejsphpko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCached",'javascript (.js.php)').'</div>';
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("HTTPCacheStaticResources").' - ';
|
||||
print $langs->trans("CacheByClient").':</strong><br>';
|
||||
print $langs->trans("TestNotPossibleWithCurrentBrowsers").'<br>';
|
||||
|
||||
|
||||
// Compressions
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("CompressionOfResources").'</strong>: ';
|
||||
//$tmp=getURLContent(DOL_URL_ROOT.'/index.php','GET');var_dump($tmp);
|
||||
print '<br>';
|
||||
// on PHP
|
||||
print '<div id="httpcompphpok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCompressed",'php (.php)').'</div>';
|
||||
print '<div id="httpcompphpko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCompressed",'php (.php)').'</div>';
|
||||
// on rest
|
||||
print '<div id="httpcompcssok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCompressed",'css (.css)').'</div>';
|
||||
print '<div id="httpcompcssko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCompressed",'css (.css)').'</div>';
|
||||
print '<div id="httpcompcssphpok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCompressed",'css (.css.php)').'</div>';
|
||||
print '<div id="httpcompcssphpko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCompressed",'css (.css.php)').'</div>';
|
||||
//print '<div id="httpcompimgok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCompressed",'img (.png)').'</div>';
|
||||
//print '<div id="httpcompimgko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCompressed",'img (.png)').'</div>';
|
||||
print '<div id="httpcompjsok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCompressed",'javascript (.js)').'</div>';
|
||||
print '<div id="httpcompjsko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCompressed",'javascript (.js)').'</div>';
|
||||
print '<div id="httpcompjsphpok">'.img_picto('','tick.png').' '.$langs->trans("FilesOfTypeCompressed",'javascript (.js.php)').'</div>';
|
||||
print '<div id="httpcompjsphpko">'.img_picto('','warning.png').' '.$langs->trans("FilesOfTypeNotCompressed",'javascript (.js.php)').'</div>';
|
||||
|
||||
// Database driver
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("DriverType").'</strong>: ';
|
||||
print '<br>';
|
||||
if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli')
|
||||
{
|
||||
$test=($conf->db->type == 'mysqli');
|
||||
if ($test)
|
||||
{
|
||||
print img_picto('','tick.png').' '.$langs->trans("YouUseBestDriver",$conf->db->type);
|
||||
}
|
||||
else
|
||||
{
|
||||
print img_picto('','warning.png').' '.$langs->trans("YouDoNotUseBestDriver",$conf->db->type,'mysqli');
|
||||
}
|
||||
print '<br>';
|
||||
}
|
||||
|
||||
// Product search
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("ProductSearch").'</strong>: ';
|
||||
print '<br>';
|
||||
$tab = array();
|
||||
$sql = "SELECT COUNT(*) as nb";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."product as p";
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$limitforoptim=10000;
|
||||
$num=$db->num_rows($resql);
|
||||
if ($nb > $limitforoptim)
|
||||
{
|
||||
if (empty($conf->global->PRODUCT_DONOTSEARCH_ANYWHERE))
|
||||
{
|
||||
print img_picto('','warning.png').' '.$langs->trans("YouHaveXProductUseSearchOptim",$num);
|
||||
}
|
||||
else
|
||||
{
|
||||
print img_picto('','tick.png').' '.$langs->trans("YouHaveXProductAndSearchOptimOn",$num);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print img_picto('','tick.png').' '.$langs->trans("NbOfProductIsLowerThanNoPb",$limitforoptim);
|
||||
}
|
||||
print '<br>';
|
||||
$db->free($resql);
|
||||
}
|
||||
|
||||
// Browser
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("Browser").'</strong>: ';
|
||||
var_dump($conf->browser);
|
||||
print '<br>';
|
||||
|
||||
// Database statistics update
|
||||
print '<br>';
|
||||
print '<strong>'.$langs->trans("DatabaseStatistics").'</strong>: ';
|
||||
print '<br>';
|
||||
|
||||
|
||||
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
?>
|
||||
@ -56,7 +56,7 @@ if (function_exists('socket_create'))
|
||||
print 'XDEBUG_PORT: '.$port."<br>\n";
|
||||
print "<br>\n";
|
||||
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
|
||||
if (empty($socket)) die('Unable to preapre a socket');
|
||||
if (empty($socket)) die('Unable to prepare a socket');
|
||||
//socket_bind($sock, $address, $port) or die('Unable to bind on address='.$address.' port='.$port);
|
||||
//socket_listen($sock);
|
||||
//$client = socket_accept($sock);
|
||||
|
||||
@ -285,7 +285,7 @@ function dol_buildpath($path, $type=0)
|
||||
if (! empty($regs[1]))
|
||||
{
|
||||
//print $key.'-'.$dirroot.'/'.$path.'-'.$conf->file->dol_url_root[$type].'<br>'."\n";
|
||||
if (file_exists($dirroot.'/'.$path))
|
||||
if (file_exists($dirroot.'/'.$regs[1]))
|
||||
{
|
||||
if ($type == 1)
|
||||
{
|
||||
|
||||
@ -83,7 +83,7 @@ function getURLContent($url,$postorget='GET',$param='')
|
||||
$rep['content']=$response;
|
||||
$rep['curl_error_no']='';
|
||||
$rep['curl_error_msg']='';
|
||||
|
||||
|
||||
dol_syslog("getURLContent response=".$response);
|
||||
|
||||
if (curl_errno($ch))
|
||||
@ -96,7 +96,10 @@ function getURLContent($url,$postorget='GET',$param='')
|
||||
}
|
||||
else
|
||||
{
|
||||
//closing the curl
|
||||
$info = curl_getinfo($ch);
|
||||
$rep['header_size']=$info['header_size'];
|
||||
|
||||
//closing the curl
|
||||
curl_close($ch);
|
||||
}
|
||||
|
||||
|
||||
@ -521,13 +521,14 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
|
||||
$newmenu->add('/admin/system/phpinfo.php?mainmenu=home&leftmenu=admintools', $langs->trans('InfoPHP'), 1);
|
||||
//if (function_exists('xdebug_is_enabled')) $newmenu->add('/admin/system/xdebug.php', $langs->trans('XDebug'),1);
|
||||
$newmenu->add('/admin/system/database.php?mainmenu=home&leftmenu=admintools', $langs->trans('InfoDatabase'), 1);
|
||||
if (function_exists('eaccelerator_info')) $newmenu->add("/admin/tools/eaccelerator.php?mainmenu=home&leftmenu=admintools", $langs->trans("EAccelerator"),1);
|
||||
//$newmenu->add("/admin/system/perf.php?mainmenu=home&leftmenu=admintools", $langs->trans("InfoPerf"),1);
|
||||
$newmenu->add("/admin/tools/purge.php?mainmenu=home&leftmenu=admintools", $langs->trans("Purge"),1);
|
||||
$newmenu->add("/admin/tools/dolibarr_export.php?mainmenu=home&leftmenu=admintools", $langs->trans("Backup"),1);
|
||||
$newmenu->add("/admin/tools/dolibarr_import.php?mainmenu=home&leftmenu=admintools", $langs->trans("Restore"),1);
|
||||
$newmenu->add("/admin/tools/update.php?mainmenu=home&leftmenu=admintools", $langs->trans("MenuUpgrade"),1);
|
||||
if (function_exists('eaccelerator_info')) $newmenu->add("/admin/tools/eaccelerator.php?mainmenu=home&leftmenu=admintools", $langs->trans("EAccelerator"),1);
|
||||
$newmenu->add("/admin/tools/listevents.php?mainmenu=home&leftmenu=admintools", $langs->trans("Audit"),1);
|
||||
$newmenu->add("/admin/tools/listsessions.php?mainmenu=home&leftmenu=admintools", $langs->trans("Sessions"),1);
|
||||
$newmenu->add("/admin/tools/purge.php?mainmenu=home&leftmenu=admintools", $langs->trans("Purge"),1);
|
||||
$newmenu->add('/admin/system/about.php?mainmenu=home&leftmenu=admintools', $langs->trans('About'), 1);
|
||||
$newmenu->add("/support/index.php?mainmenu=home&leftmenu=admintools", $langs->trans("HelpCenter"),1,1,'targethelp');
|
||||
}
|
||||
|
||||
@ -884,6 +884,7 @@ InfoOS=Infos OS
|
||||
InfoWebServer=Infos web server
|
||||
InfoDatabase=Infos database
|
||||
InfoPHP=Infos PHP
|
||||
InfoPerf=Infos performances
|
||||
ListEvents=Audit events
|
||||
ListOfSecurityEvents=List of Dolibarr security events
|
||||
SecurityEventsPurged=Security events purged
|
||||
@ -980,6 +981,11 @@ YesInSummer=Yes in summer
|
||||
OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users):
|
||||
SuhosinSessionEncrypt=Session storage encrypted by Suhosin
|
||||
ConditionIsCurrently=Condition is currently %s
|
||||
TestNotPossibleWithCurrentBrowsers=Automatic detection not possible
|
||||
YouUseBestDriver=You use driver %s that is best driver available currently.
|
||||
YouDoNotUseBestDriver=You use drive %s but driver %s is recommanded.
|
||||
SearchProduct=Optimisation recherche produits
|
||||
NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization.
|
||||
|
||||
##### Module password generation
|
||||
PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase.
|
||||
@ -1228,6 +1234,22 @@ LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree
|
||||
LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module.
|
||||
LDAPDescValues=Example values are designed for <b>OpenLDAP</b> with following loaded schemas: <b>core.schema, cosine.schema, inetorgperson.schema</b>). If you use thoose values and OpenLDAP, modify your LDAP config file <b>slapd.conf</b> to have all thoose schemas loaded.
|
||||
ForANonAnonymousAccess=For an authenticated access (for a write access for example)
|
||||
PerfDolibarr=Performance setup/optimizing report
|
||||
YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance.
|
||||
NotInstalled=Not installed, so your server is not slow down by this.
|
||||
ApplicativeCache=Applicative cache
|
||||
MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server. More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN. Note that a lot of web hosting provider does not provide such cache server.
|
||||
OPCodeCache=OPCode cache
|
||||
NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad).
|
||||
HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript)
|
||||
FilesOfTypeCached=Files of type %s are cached by HTTP server
|
||||
FilesOfTypeNotCached=Files of type %s are not cached by HTTP server
|
||||
FilesOfTypeCompressed=Files of type %s are compressed by HTTP server
|
||||
FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server
|
||||
CacheByServer=Cache by server
|
||||
CacheByClient=Cache by browser
|
||||
CompressionOfResources=Compression of HTTP responses
|
||||
TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current bowsers
|
||||
##### Products #####
|
||||
ProductSetup=Products module setup
|
||||
ServiceSetup=Services module setup
|
||||
|
||||
@ -886,6 +886,7 @@ InfoOS=Infos OS
|
||||
InfoWebServer=Infos web server
|
||||
InfoDatabase=Infos base de donnée
|
||||
InfoPHP=Infos PHP
|
||||
InfoPerf=Infos performances
|
||||
ListEvents=Audit événements
|
||||
ListOfSecurityEvents=Liste des événements de sécurité Dolibarr
|
||||
SecurityEventsPurged=Evenement de sécurité purgés
|
||||
@ -982,7 +983,25 @@ YesInSummer=Oui en été
|
||||
OnlyFollowingModulesAreOpenedToExternalUsers=Remarque, seuls les modules suivants sont ouverts aux utilisateurs externes (quelles que soient les permissions de ces utilisateurs) :
|
||||
SuhosinSessionEncrypt=Stockage des sessions chiffrées par Suhosin
|
||||
ConditionIsCurrently=La condition est actuellement %s
|
||||
|
||||
PerfDolibarr=Rapport de configuration/optimisation sur la performance
|
||||
YouMayFindPerfAdviceHere=Sur cette page vous trouverez quelques indicateurs ou conseils pour optimiser la performance.
|
||||
NotInstalled=Non installé, aussi votre serveur n'est pas ralentit par cela.
|
||||
ApplicativeCache=Cache applicatif
|
||||
MemcachedNotAvailable=Aucun cache applicatif disponible. Vous pouvez accélérer les performances de Dolibarr en installant un serveur de cache Memcached et un module de cache applicatif exploitant ce serveur. Plus d'info sur la page http://wiki.dolibarr.org/index.php/Module_MemCached. Notez que de nombreux hébergeurs bas couts ne fournissent pas de tels serveurs de cache dans leur infrastructure.
|
||||
OPCodeCache=Cache OPCode
|
||||
NoOPCodeCacheFound=Pas de cache OPCode trouvé. Peut-être utilisez-vous un cache OPCode différent de XCache ou eAccelerator (bien), peut-être n'avez vous pas du tout de cache OPCode (très mauvais).
|
||||
HTTPCacheStaticResources=Cache HTTP des ressources statiques (css, img, javascript)
|
||||
FilesOfTypeCached=Fichiers de type %s mis en cache par le serveur HTTP
|
||||
FilesOfTypeNotCached=Fichiers de type %s non mis en cache par le serveur HTTP
|
||||
FilesOfTypeCompressed=Fichiers de type %s compressé par le serveur HTTP
|
||||
FilesOfTypeNotCompressed=Fichiers de type %s non compressé par le serveur HTTP
|
||||
CacheByServer=Cache par le serveur
|
||||
CacheByClient=Cache par le navigateur
|
||||
CompressionOfResources=Compression des réponses HTTP
|
||||
TestNotPossibleWithCurrentBrowsers=Détection automatique non possible
|
||||
YouUseBestDriver=Vous utilisez le driver %s qui est le driver recommandé actuellement.
|
||||
YouDoNotUseBestDriver=Vous utilisez le driver %s mais le driver %s est recommandé.
|
||||
NbOfProductIsLowerThanNoPb=Vous n'avez que %s produits/services en base. Ceci ne requiert pas d'optimisation particulière.
|
||||
##### Module password generation
|
||||
PasswordGenerationStandard=Renvoie un mot de passe généré selon l'algorithme interne de Dolibarr : 8 caractères, chiffres et caractères en minuscules mélangés.
|
||||
PasswordGenerationNone=Ne propose pas de mots de passe générés. Le mot de passe est à saisir manuellement.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user