dolibarr/htdocs/admin/system/perf.php

713 lines
28 KiB
PHP
Raw Permalink Normal View History

2013-07-09 13:50:20 +02:00
<?php
2019-03-17 00:55:18 +01:00
/* Copyright (C) 2013-2019 Laurent Destailleur <eldy@users.sourceforge.net>
add baseline exclude for phpstan (#31632) * add baseline exclude for phpstan * update * update * update * update * update * merge * restore one filter * delete old errors * fix * fix * fix * $moreforfilter can t be empty * fix * enable check * refresh baseline * add phpdoc * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix --------- Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-11-04 23:53:20 +01:00
* Copyright (C) 2024 Frédéric France <frederic.france@free.fr>
2013-07-09 13:50:20 +02:00
*
* 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
2019-09-23 21:55:30 +02:00
* along with this program. If not, see <https://www.gnu.org/licenses/>.
2013-07-09 13:50:20 +02:00
*/
/**
* \file htdocs/admin/system/perf.php
* \brief Page to show Performance information
*/
2022-09-07 20:08:59 +02:00
// Load Dolibarr environment
2013-07-09 13:50:20 +02:00
require '../../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/memory.lib.php';
2013-07-13 10:34:19 +02:00
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php';
2014-12-20 18:46:29 +01:00
require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
2013-07-09 13:50:20 +02:00
add baseline exclude for phpstan (#31632) * add baseline exclude for phpstan * update * update * update * update * update * merge * restore one filter * delete old errors * fix * fix * fix * $moreforfilter can t be empty * fix * enable check * refresh baseline * add phpdoc * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * update phpstan baseline * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix * fix --------- Co-authored-by: Laurent Destailleur <eldy@destailleur.fr>
2024-11-04 23:53:20 +01:00
/**
* @var Conf $conf
* @var DoliDB $db
* @var HookManager $hookmanager
* @var Translate $langs
* @var User $user
*/
2018-09-07 14:58:22 +02:00
// Load translation files required by the page
2022-09-15 17:43:34 +02:00
$langs->loadLangs(array("install", "other", "admin", "products"));
2013-07-09 13:50:20 +02:00
2021-02-26 22:04:03 +01:00
if (!$user->admin) {
2013-07-09 13:50:20 +02:00
accessforbidden();
2021-02-26 22:04:03 +01:00
}
2013-07-09 13:50:20 +02:00
2021-02-26 22:04:03 +01:00
if (GETPOST('action', 'aZ09') == 'donothing') {
2013-07-09 13:50:20 +02:00
exit;
}
/*
* View
*/
$form = new Form($db);
$nowstring = dol_print_date(dol_now(), 'dayhourlog');
2013-07-09 13:50:20 +02:00
llxHeader('', '', '', '', 0, 0, '', '', '', 'mod-admin page-system_perf');
2013-07-09 13:50:20 +02:00
print load_fiche_titre($langs->trans("PerfDolibarr"), '', 'title_setup');
2013-07-09 13:50:20 +02:00
2022-12-22 13:21:46 +01:00
print '<span class="opacitymedium">'.$langs->trans("YouMayFindPerfAdviceHere", 'https://wiki.dolibarr.org/index.php/FAQ_Increase_Performance').'</span>';
print ' &nbsp; &nbsp; ';
print '<a href="'.$_SERVER["PHP_SELF"].'">';
print img_picto($langs->trans("Reload"), 'refresh').' ';
print $langs->trans("Reload");
print '</a>';
print '<br>';
2022-07-10 19:14:33 +02:00
print '<br>';
// Get PHP version
$phpversion = version_php();
2024-05-29 19:36:55 +02:00
print "<br><strong>PHP</strong> - ".$langs->trans("Version").": ".$phpversion."\n";
2014-12-20 18:46:29 +01:00
// Get version web server
2020-03-20 15:12:50 +01:00
print "<br><strong>Web server</strong> - ".$langs->trans("Version").": ".$_SERVER["SERVER_SOFTWARE"]."<br>\n";
2014-12-20 18:46:29 +01:00
2024-05-29 19:36:55 +02:00
print '<hr>';
print "<br>\n";
2013-07-09 13:50:20 +02:00
// XDebug
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("XDebug").'</strong><br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2025-01-08 19:26:14 +01:00
$test = !function_exists('xdebug_is_debugger_active');
2021-02-26 22:04:03 +01:00
if ($test) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("NotInstalled").' <span class="opacitymedium">'.$langs->trans("NotSlowedDownByThis").'</span>';
2021-02-26 22:04:03 +01:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning', 'class="pictofixedwidth"').' '.$langs->trans("ModuleActivated", $langs->transnoentities("XDebug"));
2020-04-26 23:06:52 +02:00
print ' - '.$langs->trans("MoreInformation").' <a href="'.DOL_URL_ROOT.'/admin/system/xdebug.php">XDebug admin page</a>';
2019-03-17 00:55:18 +01:00
}
print '<br>';
2024-05-29 19:36:55 +02:00
print '</div>';
2019-03-17 00:55:18 +01:00
2019-07-19 12:58:21 +02:00
// Module log
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("Syslog").'</strong><br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2023-02-21 12:57:36 +01:00
$test = !isModEnabled('syslog');
2021-02-26 22:04:03 +01:00
if ($test) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("NotInstalled").' <span class="opacitymedium">'.$langs->trans("NotSlowedDownByThis").'</span>';
2021-02-26 22:04:03 +01:00
} else {
2023-02-21 12:57:36 +01:00
if (getDolGlobalInt('SYSLOG_LEVEL') > LOG_NOTICE) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning', 'class="pictofixedwidth"').' '.$langs->trans("ModuleActivatedWithTooHighLogLevel", $langs->transnoentities("Syslog"));
2021-04-11 21:30:41 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("ModuleSyslogActivatedButLevelNotTooVerbose", $langs->transnoentities("Syslog"), getDolGlobalInt('SYSLOG_LEVEL'));
2021-04-11 21:30:41 +02:00
}
2019-07-19 12:58:21 +02:00
//print ' '.$langs->trans("MoreInformation").' <a href="'.DOL_URL_ROOT.'/admin/system/xdebug.php'.'">XDebug admin page</a>';
}
print '<br>';
2024-05-29 19:36:55 +02:00
print '</div>';
2019-07-19 12:58:21 +02:00
2019-03-17 00:55:18 +01:00
// Module debugbar
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("DebugBar").'</strong><br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2023-06-12 20:43:28 +02:00
$test = !isModEnabled('debugbar');
2021-02-26 22:04:03 +01:00
if ($test) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("NotInstalled").' <span class="opacitymedium">'.$langs->trans("NotSlowedDownByThis").'</span>';
2021-02-26 22:04:03 +01:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning', 'class="pictofixedwidth"').' '.$langs->trans("ModuleActivated", $langs->transnoentities("DebugBar"));
//print ' '.$langs->trans("MoreInformation").' <a href="'.DOL_URL_ROOT.'/admin/system/xdebug.php'.'">XDebug admin page</a>';
2013-07-13 10:34:19 +02:00
}
print '<br>';
2024-05-29 19:36:55 +02:00
print '</div>';
2013-07-09 13:50:20 +02:00
// Applicative cache
2013-07-13 10:34:19 +02:00
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("ApplicativeCache").'</strong><br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2023-06-12 20:43:28 +02:00
$test = isModEnabled('memcached');
2021-02-26 22:04:03 +01:00
if ($test) {
if (getDolGlobalString('MEMCACHED_SERVER')) {
2021-04-15 19:28:13 +02:00
print $langs->trans("MemcachedAvailableAndSetup");
print ' '.$langs->trans("MoreInformation").' <a href="'.dol_buildpath('/memcached/admin/memcached.php', 1).'">Memcached module admin page</a>';
2020-05-21 09:35:30 +02:00
} else {
2021-04-15 19:28:13 +02:00
print $langs->trans("MemcachedModuleAvailableButNotSetup");
print ' <a href="'.dol_buildpath('/memcached/admin/memcached.php', 1).'">Memcached module admin page</a>';
2013-07-09 13:50:20 +02:00
}
2021-02-26 22:04:03 +01:00
} else {
2021-05-30 17:04:12 +02:00
print $langs->trans("MemcachedNotAvailable");
2021-02-26 22:04:03 +01:00
}
2013-07-09 13:50:20 +02:00
print '</br>';
2024-05-29 19:36:55 +02:00
print '</div>';
2013-07-09 13:50:20 +02:00
// OPCode cache
2013-07-13 10:34:19 +02:00
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("OPCodeCache").'</strong><br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
$foundcache = 0;
$test = function_exists('xcache_info');
2021-02-26 22:04:03 +01:00
if (!$foundcache && $test) {
$foundcache++;
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("PHPModuleLoaded", "XCache");
2020-04-26 23:06:52 +02:00
print ' '.$langs->trans("MoreInformation").' <a href="'.DOL_URL_ROOT.'/admin/system/xcache.php">Xcache admin page</a>';
2013-07-13 10:34:19 +02:00
}
$test = function_exists('eaccelerator_info');
2021-02-26 22:04:03 +01:00
if (!$foundcache && $test) {
$foundcache++;
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("PHPModuleLoaded", "Eaccelerator");
}
$test = function_exists('opcache_get_status');
2021-02-26 22:04:03 +01:00
if (!$foundcache && $test) {
2015-09-22 14:22:36 +02:00
$foundcache++;
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("PHPModuleLoaded", "ZendOPCache"); // Should be by default starting with PHP 5.5
2015-09-22 14:22:36 +02:00
//$tmp=opcache_get_status();
//var_dump($tmp);
}
$test = function_exists('apc_cache_info');
2021-02-26 22:04:03 +01:00
if (!$foundcache && $test) {
//var_dump(apc_cache_info());
2021-02-26 22:04:03 +01:00
if (ini_get('apc.enabled')) {
$foundcache++;
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("APCInstalled");
2020-05-21 09:35:30 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning', 'class="pictofixedwidth"').' '.$langs->trans("APCCacheInstalledButDisabled");
}
2013-07-13 10:34:19 +02:00
}
2021-02-26 22:04:03 +01:00
if (!$foundcache) {
print $langs->trans("NoOPCodeCacheFound");
}
2013-07-13 10:34:19 +02:00
print '<br>';
2024-05-29 19:36:55 +02:00
print '</div>';
2013-07-09 13:50:20 +02:00
// Use of preload bootstrap
2024-05-29 19:36:55 +02:00
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("PreloadOPCode").'</strong><br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2021-02-26 22:04:03 +01:00
if (ini_get('opcache.preload')) {
print ini_get('opcache.preload');
2020-05-21 09:35:30 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'minus', 'class="pictofixedwidth"').' '.$langs->trans("No");
}
print '<br>';
2024-05-29 19:36:55 +02:00
print '</div>';
2013-07-13 10:34:19 +02:00
// HTTPCacheStaticResources
print '<script type="text/javascript">
2013-07-09 13:50:20 +02:00
jQuery(document).ready(function() {
var getphpurl;
var cachephpstring;
var compphpstring;
getphpurl = $.ajax({
type: "GET",
2021-06-17 03:37:52 +02:00
data: { token: \''.currentToken().'\' },
url: \''.DOL_URL_ROOT.'/public/notice.php\',
2013-07-09 13:50:20 +02:00
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 && compphpstring.indexOf("br") == -1))
2013-07-09 13:50:20 +02:00
{
jQuery("#httpcompphpok").hide();
jQuery("#httpcompphpko").show();
}
else
{
jQuery("#httpcompphpok").show();
jQuery("#httpcompphpko").hide();
}
}
})
2013-07-24 00:34:08 +02:00
2013-07-09 13:50:20 +02:00
var getcssurl;
var cachecssstring;
var compcssstring;
getcssurl = $.ajax({
type: "GET",
2021-06-17 03:37:52 +02:00
data: { token: \'notrequired\' },
2017-12-20 20:18:41 +01:00
url: \''.DOL_URL_ROOT.'/includes/jquery/css/base/jquery-ui.css\',
2013-07-09 13:50:20 +02:00
cache: false,
/* async: false, */
2021-06-17 03:37:52 +02:00
/* crossDomain: true, */
2013-07-09 13:50:20 +02:00
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 && compcssstring.indexOf("br") == -1))
2013-07-09 13:50:20 +02:00
{
jQuery("#httpcompcssok").hide();
jQuery("#httpcompcssko").show();
}
else
{
jQuery("#httpcompcssok").show();
jQuery("#httpcompcssko").hide();
}
}
})
var getcssphpurl;
2013-07-24 00:34:08 +02:00
var cachecssphpstring;
2013-07-09 13:50:20 +02:00
var compcssphpstring;
getcssphpurl = $.ajax({
type: "GET",
2021-06-17 03:37:52 +02:00
data: { token: \''.currentToken().'\' },
2013-07-09 13:50:20 +02:00
url: \''.DOL_URL_ROOT.'/theme/eldy/style.css.php\',
cache: false,
/* async: false, */
2021-06-17 03:37:52 +02:00
/* crossDomain: true,*/
2013-07-09 13:50:20 +02:00
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 && compcssphpstring.indexOf("br") == -1))
2013-07-09 13:50:20 +02:00
{
jQuery("#httpcompcssphpok").hide();
jQuery("#httpcompcssphpko").show();
}
else
{
jQuery("#httpcompcssphpok").show();
jQuery("#httpcompcssphpko").hide();
}
}
})
2013-07-24 00:34:08 +02:00
2013-07-09 13:50:20 +02:00
var getimgurl;
var cacheimgstring;
var compimgstring;
getimgurl = $.ajax({
type: "GET",
2021-06-17 03:37:52 +02:00
data: { token: \'notrequired\' },
2013-07-09 13:50:20 +02:00
url: \''.DOL_URL_ROOT.'/theme/eldy/img/help.png\',
cache: false,
/* async: false, */
2021-06-17 03:37:52 +02:00
/* crossDomain: true,*/
2013-07-09 13:50:20 +02:00
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 && compimgstring.indexOf("br") == -1))
2013-07-09 13:50:20 +02:00
{
jQuery("#httpcompimgok").hide();
jQuery("#httpcompimgko").show();
}
else
{
jQuery("#httpcompimgok").show();
jQuery("#httpcompimgko").hide();
2013-07-24 00:34:08 +02:00
}
2013-07-09 13:50:20 +02:00
}
})
var getjsurl;
var cachejsstring;
var compjsstring;
getjsurl = $.ajax({
type: "GET",
2021-06-17 03:37:52 +02:00
data: { token: \'notrequired\' },
url: \''.DOL_URL_ROOT.'/core/js/lib_rare.js\',
2013-07-09 13:50:20 +02:00
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();
}
2013-09-29 14:00:56 +02:00
compjsstring=getjsurl.getResponseHeader(\'Content-Encoding\');
/* alert(\'js:\'+getjsurl.getAllResponseHeaders()); */
/*alert(\'js:\'+compjsstring);*/
if (compjsstring == null || (compjsstring.indexOf("gzip") == -1 && compjsstring.indexOf("deflate") == -1 && compjsstring.indexOf("br") == -1))
2013-07-09 13:50:20 +02:00
{
jQuery("#httpcompjsok").hide();
jQuery("#httpcompjsko").show();
}
else
{
jQuery("#httpcompjsok").show();
jQuery("#httpcompjsko").hide();
2013-07-24 00:34:08 +02:00
}
2013-07-09 13:50:20 +02:00
}
})
var getjsphpurl;
var cachejsphpstring;
var compjsphpstring;
getjsphpurl = $.ajax({
type: "GET",
2021-06-17 03:37:52 +02:00
data: { token: \''.currentToken().'\' },
2017-09-19 17:31:37 +02:00
url: \''.DOL_URL_ROOT.'/core/js/lib_head.js.php\',
2013-07-09 13:50:20 +02:00
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 && compjsphpstring.indexOf("br") == -1))
2013-07-09 13:50:20 +02:00
{
jQuery("#httpcompjsphpok").hide();
jQuery("#httpcompjsphpko").show();
}
else
{
jQuery("#httpcompjsphpok").show();
jQuery("#httpcompjsphpko").hide();
2013-07-24 00:34:08 +02:00
}
2013-07-09 13:50:20 +02:00
}
})
});
</script>';
print '<br>';
print '<strong>'.$langs->trans("HTTPCacheStaticResources").' - ';
2017-05-15 12:57:08 +02:00
print $form->textwithpicto($langs->trans("CacheByServer"), $langs->trans("CacheByServerDesc"));
2024-05-31 14:59:16 +02:00
print '</strong><br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2023-04-20 22:51:33 +02:00
// No cache on PHP
2013-07-09 13:50:20 +02:00
//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
2024-05-29 19:36:55 +02:00
print '<div id="httpcachecssok">'.img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCached", 'css (.css)').'</div>';
print '<div id="httpcachecssko">'.img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCached", 'css (.css)').'</div>';
print '<div id="httpcachecssphpok">'.img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCached", 'css (.css.php)').'</div>';
print '<div id="httpcachecssphpko">'.img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCached", 'css (.css.php)').'</div>';
print '<div id="httpcacheimgok">'.img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCached", 'img (.png)').'</div>';
print '<div id="httpcacheimgko">'.img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCached", 'img (.png)').'</div>';
print '<div id="httpcachejsok">'.img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCached", 'javascript (.js)').'</div>';
print '<div id="httpcachejsko">'.img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCached", 'javascript (.js)').'</div>';
print '<div id="httpcachejsphpok">'.img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCached", 'javascript (.js.php)').'</div>';
print '<div id="httpcachejsphpko">'.img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCached", 'javascript (.js.php)').'</div>';
2024-05-31 14:59:16 +02:00
print '</div>';
2013-07-09 13:50:20 +02:00
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("HTTPCacheStaticResources").' - '.$langs->trans("CacheByClient").'</strong><br>';
print '<div class="divsection">';
2024-05-29 19:36:55 +02:00
print '<div id="httpcachebybrowser">'.img_picto('', 'question.png', 'class="pictofixedwidth"').' '.$langs->trans("TestNotPossibleWithCurrentBrowsers").'</div>';
print '</div>';
2013-07-09 13:50:20 +02:00
2013-07-13 10:34:19 +02:00
// Compressions
print '<br>';
2017-05-15 12:57:08 +02:00
print '<strong>';
print $form->textwithpicto($langs->trans("CompressionOfResources"), $langs->trans("CompressionOfResourcesDesc"));
2024-05-31 14:59:16 +02:00
print '</strong>';
2013-07-13 10:34:19 +02:00
print '<br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2013-07-13 10:34:19 +02:00
// on PHP
2024-05-29 19:36:55 +02:00
print '<div id="httpcompphpok">'.img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCompressed", 'php (.php)').'</div>';
print '<div id="httpcompphpko">'.img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCompressed", 'php (.php)').'</div>';
2013-07-13 10:34:19 +02:00
// on rest
2024-05-29 19:36:55 +02:00
print '<div id="httpcompcssok">'.img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCompressed", 'css (.css)').'</div>';
print '<div id="httpcompcssko">'.img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCompressed", 'css (.css)').'</div>';
print '<div id="httpcompcssphpok">'.img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCompressed", 'css (.css.php)').'</div>';
print '<div id="httpcompcssphpko">'.img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCompressed", 'css (.css.php)').'</div>';
//print '<div id="httpcompimgok">'.img_picto('','tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCompressed",'img (.png)').'</div>';
//print '<div id="httpcompimgko">'.img_picto('','warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCompressed",'img (.png)').'</div>';
print '<div id="httpcompjsok">'.img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCompressed", 'javascript (.js)').'</div>';
print '<div id="httpcompjsko">'.img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCompressed", 'javascript (.js)').'</div>';
print '<div id="httpcompjsphpok">'.img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeCompressed", 'javascript (.js.php)').'</div>';
print '<div id="httpcompjsphpko">'.img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("FilesOfTypeNotCompressed", 'javascript (.js.php)').'</div>';
print '</div>';
2013-07-09 13:50:20 +02:00
// Database driver
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("DriverType").'</strong>';
2013-07-09 13:50:20 +02:00
print '<br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2021-02-26 22:04:03 +01:00
if ($conf->db->type == 'mysql' || $conf->db->type == 'mysqli') {
$test = ($conf->db->type == 'mysqli');
2021-02-26 22:04:03 +01:00
if ($test) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("YouUseBestDriver", $conf->db->type);
2020-05-21 09:35:30 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("YouDoNotUseBestDriver", $conf->db->type, 'mysqli');
2013-07-13 10:34:19 +02:00
}
print '<br>';
2013-07-09 13:50:20 +02:00
}
2024-05-29 19:36:55 +02:00
print '</div>';
2013-07-13 10:34:19 +02:00
2021-05-27 01:52:52 +02:00
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("ComboListOptim").'</strong>';
2021-05-27 01:52:52 +02:00
print '<br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2021-05-27 01:52:52 +02:00
// Product combo list
$sql = "SELECT COUNT(*) as nb";
$sql .= " FROM ".MAIN_DB_PREFIX."product as p";
$resql = $db->query($sql);
if ($resql) {
$limitforoptim = 5000;
$num = $db->num_rows($resql);
$obj = $db->fetch_object($resql);
$nb = $obj->nb;
if ($nb > $limitforoptim) {
if (!getDolGlobalString('PRODUIT_USE_SEARCH_TO_SELECT')) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectUseComboOptim", $nb, $langs->transnoentitiesnoconv("ProductsOrServices"), 'PRODUIT_USE_SEARCH_TO_SELECT');
2021-05-27 01:52:52 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectAndSearchOptimOn", $nb, $langs->transnoentitiesnoconv("ProductsOrServices"), 'PRODUIT_USE_SEARCH_TO_SELECT', getDolGlobalString('PRODUIT_USE_SEARCH_TO_SELECT'));
2021-05-27 01:52:52 +02:00
}
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv("ProductsOrServices"));
2021-05-27 01:52:52 +02:00
}
print '<br>';
$db->free($resql);
}
// Thirdparty combo list
$sql = "SELECT COUNT(*) as nb";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s";
$resql = $db->query($sql);
if ($resql) {
$limitforoptim = 5000;
$num = $db->num_rows($resql);
$obj = $db->fetch_object($resql);
$nb = $obj->nb;
if ($nb > $limitforoptim) {
if (!getDolGlobalString('COMPANY_USE_SEARCH_TO_SELECT')) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectUseComboOptim", $nb, $langs->transnoentitiesnoconv("ThirdParties"), 'COMPANY_USE_SEARCH_TO_SELECT');
2021-05-27 01:52:52 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectAndSearchOptimOn", $nb, $langs->transnoentitiesnoconv("ThirdParties"), 'COMPANY_USE_SEARCH_TO_SELECT', getDolGlobalString('COMPANY_USE_SEARCH_TO_SELECT'));
2021-05-27 01:52:52 +02:00
}
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv("ThirdParties"));
2021-05-27 01:52:52 +02:00
}
print '<br>';
$db->free($resql);
}
// Contact combo list
$sql = "SELECT COUNT(*) as nb";
$sql .= " FROM ".MAIN_DB_PREFIX."socpeople as s";
$resql = $db->query($sql);
if ($resql) {
$limitforoptim = 5000;
$num = $db->num_rows($resql);
$obj = $db->fetch_object($resql);
$nb = $obj->nb;
if ($nb > $limitforoptim) {
if (!getDolGlobalString('CONTACT_USE_SEARCH_TO_SELECT')) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectUseComboOptim", $nb, $langs->transnoentitiesnoconv("Contacts"), 'CONTACT_USE_SEARCH_TO_SELECT');
2021-05-27 01:52:52 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectAndSearchOptimOn", $nb, $langs->transnoentitiesnoconv("Contacts"), 'CONTACT_USE_SEARCH_TO_SELECT', getDolGlobalString('CONTACT_USE_SEARCH_TO_SELECT'));
2021-05-27 01:52:52 +02:00
}
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv("Contacts"));
2021-05-27 01:52:52 +02:00
}
print '<br>';
$db->free($resql);
}
// Contact combo list
$sql = "SELECT COUNT(*) as nb";
$sql .= " FROM ".MAIN_DB_PREFIX."projet as s";
$resql = $db->query($sql);
if ($resql) {
$limitforoptim = 5000;
$num = $db->num_rows($resql);
$obj = $db->fetch_object($resql);
$nb = $obj->nb;
if ($nb > $limitforoptim) {
if (!getDolGlobalString('PROJECT_USE_SEARCH_TO_SELECT')) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectUseComboOptim", $nb, $langs->transnoentitiesnoconv("Projects"), 'PROJECT_USE_SEARCH_TO_SELECT');
2021-05-27 01:52:52 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectAndSearchOptimOn", $nb, $langs->transnoentitiesnoconv("Projects"), 'PROJECT_USE_SEARCH_TO_SELECT', getDolGlobalString('PROJECT_USE_SEARCH_TO_SELECT'));
2021-05-27 01:52:52 +02:00
}
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv("Projects"));
2021-05-27 01:52:52 +02:00
}
print '<br>';
$db->free($resql);
}
2024-05-29 19:36:55 +02:00
print '</div>';
2021-05-27 01:52:52 +02:00
2013-07-13 10:34:19 +02:00
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("SearchOptim").'</strong>';
2013-07-09 13:50:20 +02:00
print '<br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2021-05-27 01:52:52 +02:00
// Product search
2013-07-13 10:34:19 +02:00
$sql = "SELECT COUNT(*) as nb";
$sql .= " FROM ".MAIN_DB_PREFIX."product as p";
$resql = $db->query($sql);
2021-02-26 22:04:03 +01:00
if ($resql) {
2021-01-15 12:42:40 +01:00
$limitforoptim = 100000;
$num = $db->num_rows($resql);
$obj = $db->fetch_object($resql);
$nb = $obj->nb;
2021-02-26 22:04:03 +01:00
if ($nb > $limitforoptim) {
if (!getDolGlobalString('PRODUCT_DONOTSEARCH_ANYWHERE')) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectUseSearchOptim", $nb, $langs->transnoentitiesnoconv("ProductsOrServices"), 'PRODUCT_DONOTSEARCH_ANYWHERE');
2021-05-27 01:52:52 +02:00
print $langs->trans("YouHaveXObjectUseSearchOptimDesc");
2020-05-21 09:35:30 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectAndSearchOptimOn", $nb, $langs->transnoentitiesnoconv("ProductsOrServices"), 'PRODUCT_DONOTSEARCH_ANYWHERE', getDolGlobalString('PRODUCT_DONOTSEARCH_ANYWHERE'));
}
2020-05-21 09:35:30 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv("ProductsOrServices"));
}
print '<br>';
$db->free($resql);
}
// Thirdparty search
$sql = "SELECT COUNT(*) as nb";
$sql .= " FROM ".MAIN_DB_PREFIX."societe as s";
$resql = $db->query($sql);
2021-02-26 22:04:03 +01:00
if ($resql) {
2021-05-27 01:52:52 +02:00
$limitforoptim = 100000;
$num = $db->num_rows($resql);
$obj = $db->fetch_object($resql);
$nb = $obj->nb;
2021-02-26 22:04:03 +01:00
if ($nb > $limitforoptim) {
if (!getDolGlobalString('COMPANY_DONOTSEARCH_ANYWHERE')) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectUseSearchOptim", $nb, $langs->transnoentitiesnoconv("ThirdParties"), 'COMPANY_DONOTSEARCH_ANYWHERE');
2021-05-27 01:52:52 +02:00
print $langs->trans("YouHaveXObjectUseSearchOptimDesc");
2020-05-21 09:35:30 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveXObjectAndSearchOptimOn", $nb, $langs->transnoentitiesnoconv("ThirdParties"), 'COMPANY_DONOTSEARCH_ANYWHERE', getDolGlobalString('COMPANY_DONOTSEARCH_ANYWHERE'));
2013-07-13 10:34:19 +02:00
}
2020-05-21 09:35:30 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv("ThirdParties"));
2013-07-09 13:50:20 +02:00
}
print '<br>';
2013-07-13 10:34:19 +02:00
$db->free($resql);
}
// Perf advice on max size on list
$MAXRECOMMENDED = 20;
if (getDolGlobalInt('MAIN_SIZE_LISTE_LIMIT') > $MAXRECOMMENDED) {
print img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("YouHaveALargeAmountOfRecordOnLists", getDolGlobalInt('MAIN_SIZE_LISTE_LIMIT'), $MAXRECOMMENDED);
} else {
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("MaxNbOfRecordOnListIsOk", getDolGlobalInt('MAIN_SIZE_LISTE_LIMIT'), $MAXRECOMMENDED);
}
2024-05-29 19:36:55 +02:00
print '</div>';
2013-07-09 13:50:20 +02:00
2013-07-09 13:50:20 +02:00
// Browser
2013-07-13 10:34:19 +02:00
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("Browser").'</strong><br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
2021-02-26 22:04:03 +01:00
if (!in_array($conf->browser->name, array('chrome', 'opera', 'safari', 'firefox'))) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'warning.png', 'class="pictofixedwidth"').' '.$langs->trans("BrowserIsKO", $conf->browser->name);
2020-05-21 09:35:30 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"').' '.$langs->trans("BrowserIsOK", $conf->browser->name);
2013-07-09 18:45:14 +02:00
}
2013-07-13 10:34:19 +02:00
print '<br>';
2024-05-29 19:36:55 +02:00
print '</div>';
2013-07-09 13:50:20 +02:00
// Options
print '<br>';
2024-05-31 14:59:16 +02:00
print '<strong>'.$langs->trans("Options").'</strong><br>';
2024-05-29 19:36:55 +02:00
print '<div class="divsection">';
if (getDolGlobalInt('MAIN_ACTIVATE_FILECACHE')) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"');
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'minus', 'class="pictofixedwidth"');
}
2024-09-17 12:24:46 +02:00
print $form->textwithpicto($langs->trans("EnableFileCache").' ('.$langs->trans("Widgets").')', $langs->trans("Option").' MAIN_ACTIVATE_FILECACHE');
2024-05-29 19:36:55 +02:00
print ': '.yn(getDolGlobalInt('MAIN_ACTIVATE_FILECACHE'));
print '<br>';
if (getDolGlobalInt('MAIN_ENABLE_AJAX_TOOLTIP')) {
2024-05-29 19:36:55 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"');
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'minus', 'class="pictofixedwidth"');
}
2024-09-17 12:24:46 +02:00
print 'MAIN_ENABLE_AJAX_TOOLTIP : ';
2024-05-29 19:36:55 +02:00
print yn(getDolGlobalInt('MAIN_ENABLE_AJAX_TOOLTIP'));
print '<br>';
2023-10-11 00:21:25 +02:00
if (getDolGlobalInt('MAIN_CACHE_COUNT')) {
2024-06-26 17:49:23 +02:00
print img_picto('', 'tick.png', 'class="pictofixedwidth"');
2023-10-11 00:21:25 +02:00
} else {
2024-05-29 19:36:55 +02:00
print img_picto('', 'minus', 'class="pictofixedwidth"');
2023-10-11 00:21:25 +02:00
}
2024-05-29 19:36:55 +02:00
print 'MAIN_CACHE_COUNT : ';
print yn(getDolGlobalInt('MAIN_CACHE_COUNT'));
//.' '.img_picto('', 'warning.png');
2023-10-11 00:21:25 +02:00
print '<br>';
2024-05-29 19:36:55 +02:00
print '</div>';
2018-07-28 14:29:28 +02:00
// End of page
2013-07-09 13:50:20 +02:00
llxFooter();
$db->close();