24require
'../../main.inc.php';
25require_once DOL_DOCUMENT_ROOT.
'/core/lib/memory.lib.php';
26require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
27require_once DOL_DOCUMENT_ROOT.
'/core/lib/geturl.lib.php';
28require_once DOL_DOCUMENT_ROOT.
'/core/lib/functions2.lib.php';
31$langs->loadLangs(array(
"install",
"other",
"admin",
"products"));
37if (
GETPOST(
'action',
'aZ09') ==
'donothing') {
49llxHeader(
'',
'',
'',
'', 0, 0,
'',
'',
'',
'mod-admin page-system_perf');
53print
'<span class="opacitymedium">'.$langs->trans(
"YouMayFindPerfAdviceHere",
'https://wiki.dolibarr.org/index.php/FAQ_Increase_Performance').
'</span>';
54print
' ';
55print
'<a href="'.$_SERVER[
"PHP_SELF"].
'">';
56print
img_picto($langs->trans(
"Reload"),
'refresh').
' ';
57print $langs->trans(
"Reload");
64print
"<br><strong>PHP</strong> - ".$langs->trans(
"Version").
": ".$phpversion.
"\n";
67print
"<br><strong>Web server</strong> - ".$langs->trans(
"Version").
": ".$_SERVER[
"SERVER_SOFTWARE"].
"<br>\n";
75print
'<strong>'.$langs->trans(
"XDebug").
'</strong><br>';
76print
'<div class="divsection">';
77$test = !function_exists(
'xdebug_is_enabled');
79 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"NotInstalled").
' <span class="opacitymedium">'.$langs->trans(
"NotSlowedDownByThis").
'</span>';
81 print
img_picto(
'',
'warning',
'class="pictofixedwidth"').
' '.$langs->trans(
"ModuleActivated", $langs->transnoentities(
"XDebug"));
82 print
' - '.$langs->trans(
"MoreInformation").
' <a href="'.DOL_URL_ROOT.
'/admin/system/xdebug.php">XDebug admin page</a>';
89print
'<strong>'.$langs->trans(
"Syslog").
'</strong><br>';
90print
'<div class="divsection">';
91$test = !isModEnabled(
'syslog');
93 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"NotInstalled").
' <span class="opacitymedium">'.$langs->trans(
"NotSlowedDownByThis").
'</span>';
96 print
img_picto(
'',
'warning',
'class="pictofixedwidth"').
' '.$langs->trans(
"ModuleActivatedWithTooHighLogLevel", $langs->transnoentities(
"Syslog"));
98 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"ModuleSyslogActivatedButLevelNotTooVerbose", $langs->transnoentities(
"Syslog"),
getDolGlobalInt(
'SYSLOG_LEVEL'));
107print
'<strong>'.$langs->trans(
"DebugBar").
'</strong><br>';
108print
'<div class="divsection">';
109$test = !isModEnabled(
'debugbar');
111 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"NotInstalled").
' <span class="opacitymedium">'.$langs->trans(
"NotSlowedDownByThis").
'</span>';
113 print
img_picto(
'',
'warning',
'class="pictofixedwidth"').
' '.$langs->trans(
"ModuleActivated", $langs->transnoentities(
"DebugBar"));
121print
'<strong>'.$langs->trans(
"ApplicativeCache").
'</strong><br>';
122print
'<div class="divsection">';
123$test = isModEnabled(
'memcached');
126 print $langs->trans(
"MemcachedAvailableAndSetup");
127 print
' '.$langs->trans(
"MoreInformation").
' <a href="'.
dol_buildpath(
'/memcached/admin/memcached.php', 1).
'">Memcached module admin page</a>';
129 print $langs->trans(
"MemcachedModuleAvailableButNotSetup");
130 print
' <a href="'.dol_buildpath(
'/memcached/admin/memcached.php', 1).
'">Memcached module admin page</a>';
133 print $langs->trans(
"MemcachedNotAvailable");
140print
'<strong>'.$langs->trans(
"OPCodeCache").
'</strong><br>';
141print
'<div class="divsection">';
143$test = function_exists(
'xcache_info');
144if (!$foundcache && $test) {
146 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"PHPModuleLoaded",
"XCache");
147 print
' '.$langs->trans(
"MoreInformation").
' <a href="'.DOL_URL_ROOT.
'/admin/system/xcache.php">Xcache admin page</a>';
149$test = function_exists(
'eaccelerator_info');
150if (!$foundcache && $test) {
152 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"PHPModuleLoaded",
"Eaccelerator");
154$test = function_exists(
'opcache_get_status');
155if (!$foundcache && $test) {
157 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"PHPModuleLoaded",
"ZendOPCache");
161$test = function_exists(
'apc_cache_info');
162if (!$foundcache && $test) {
164 if (ini_get(
'apc.enabled')) {
166 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"APCInstalled");
168 print
img_picto(
'',
'warning',
'class="pictofixedwidth"').
' '.$langs->trans(
"APCCacheInstalledButDisabled");
172 print $langs->trans(
"NoOPCodeCacheFound");
179print
'<strong>'.$langs->trans(
"PreloadOPCode").
'</strong><br>';
180print
'<div class="divsection">';
181if (ini_get(
'opcache.preload')) {
182 print ini_get(
'opcache.preload');
184 print
img_picto(
'',
'minus',
'class="pictofixedwidth"').
' '.$langs->trans(
"No");
190print
'<script type="text/javascript">
191jQuery(document).ready(function() {
197 data: { token: \''.currentToken().
'\' },
198 url: \
''.DOL_URL_ROOT.
'/public/notice.php\',
201 /* crossDomain: true,*/
202 success: function () {
203 cachephpstring=getphpurl.getResponseHeader(\'Cache-Control\');
204 /* alert(\'php:\'+getphpurl.getAllResponseHeaders()); */
205 /*alert(\'php:\'+cachephpstring);*/
206 if (cachephpstring == null || cachephpstring.indexOf("no-cache") !== -1)
208 jQuery("#httpcachephpok").hide();
209 jQuery("#httpcachephpko").show();
213 jQuery("#httpcachephpok").show();
214 jQuery("#httpcachephpko").hide();
216 compphpstring=getphpurl.getResponseHeader(\'Content-Encoding\');
217 /* alert(\'php:\'+getphpurl.getAllResponseHeaders()); */
218 /*alert(\'php:\'+compphpstring);*/
219 if (compphpstring == null || (compphpstring.indexOf("gzip") == -1 && compphpstring.indexOf("deflate") == -1 && compphpstring.indexOf("br") == -1))
221 jQuery("#httpcompphpok").hide();
222 jQuery("#httpcompphpko").show();
226 jQuery("#httpcompphpok").show();
227 jQuery("#httpcompphpko").hide();
237 data: { token: \'notrequired\' },
238 url: \''.DOL_URL_ROOT.
'/includes/jquery/css/base/jquery-ui.css\',
241 /* crossDomain: true, */
242 success: function () {
243 cachecssstring=getcssurl.getResponseHeader(\'Cache-Control\');
244 /* alert(\'css:\'+getcssurl.getAllResponseHeaders()); */
245 /*alert(\'css:\'+cachecssstring);*/
246 if (cachecssstring != null && cachecssstring.indexOf("no-cache") !== -1)
248 jQuery("#httpcachecssok").hide();
249 jQuery("#httpcachecssko").show();
253 jQuery("#httpcachecssok").show();
254 jQuery("#httpcachecssko").hide();
256 compcssstring=getcssurl.getResponseHeader(\'Content-Encoding\');
257 /* alert(\'php:\'+getcssurl.getAllResponseHeaders()); */
258 /*alert(\'php:\'+compcssstring);*/
259 if (compcssstring == null || (compcssstring.indexOf("gzip") == -1 && compcssstring.indexOf("deflate") == -1 && compcssstring.indexOf("br") == -1))
261 jQuery("#httpcompcssok").hide();
262 jQuery("#httpcompcssko").show();
266 jQuery("#httpcompcssok").show();
267 jQuery("#httpcompcssko").hide();
273 var cachecssphpstring;
274 var compcssphpstring;
275 getcssphpurl = $.ajax({
278 url: \
''.DOL_URL_ROOT.
'/theme/eldy/style.css.php\',
281 /* crossDomain: true,*/
282 success: function () {
283 cachecssphpstring=getcssphpurl.getResponseHeader(\'Cache-Control\');
284 /* alert(\'cssphp:\'+getcssphpurl.getAllResponseHeaders()); */
285 /*alert(\'cssphp:\'+cachecssphpstring);*/
286 if (cachecssphpstring != null && cachecssphpstring.indexOf("no-cache") !== -1)
288 jQuery("#httpcachecssphpok").hide();
289 jQuery("#httpcachecssphpko").show();
293 jQuery("#httpcachecssphpok").show();
294 jQuery("#httpcachecssphpko").hide();
296 compcssphpstring=getcssphpurl.getResponseHeader(\'Content-Encoding\');
297 /* alert(\'php:\'+getcssphpurl.getAllResponseHeaders()); */
298 /*alert(\'php:\'+compcssphpstring);*/
299 if (compcssphpstring == null || (compcssphpstring.indexOf("gzip") == -1 && compcssphpstring.indexOf("deflate") == -1 && compcssphpstring.indexOf("br") == -1))
301 jQuery("#httpcompcssphpok").hide();
302 jQuery("#httpcompcssphpko").show();
306 jQuery("#httpcompcssphpok").show();
307 jQuery("#httpcompcssphpko").hide();
317 data: { token: \'notrequired\' },
318 url: \''.DOL_URL_ROOT.
'/theme/eldy/img/help.png\',
321 /* crossDomain: true,*/
322 success: function () {
323 cacheimgstring=getimgurl.getResponseHeader(\'Cache-Control\');
324 /* alert(\'img:\'+getimgurl.getAllResponseHeaders()); */
325 /*alert(\'img:\'+cacheimgstring);*/
326 if (cacheimgstring != null && cacheimgstring.indexOf("no-cache") !== -1)
328 jQuery("#httpcacheimgok").hide();
329 jQuery("#httpcacheimgko").show();
333 jQuery("#httpcacheimgok").show();
334 jQuery("#httpcacheimgko").hide();
336 compimgstring=getimgurl.getResponseHeader(\'Content-Encoding\');
337 /* alert(\'php:\'+getimgurl.getAllResponseHeaders()); */
338 /*alert(\'php:\'+compimgstring);*/
339 if (compimgstring == null || (compimgstring.indexOf("gzip") == -1 && compimgstring.indexOf("deflate") == -1 && compimgstring.indexOf("br") == -1))
341 jQuery("#httpcompimgok").hide();
342 jQuery("#httpcompimgko").show();
346 jQuery("#httpcompimgok").show();
347 jQuery("#httpcompimgko").hide();
357 data: { token: \'notrequired\' },
358 url: \''.DOL_URL_ROOT.
'/core/js/lib_rare.js\',
361 /* crossDomain: true,*/
362 success: function () {
363 cachejsstring=getjsurl.getResponseHeader(\'Cache-Control\');
364 /*alert(\'js:\'+getjsurl.getAllResponseHeaders());*/
365 /*alert(\'js:\'+cachejsstring);*/
366 if (cachejsstring != null && cachejsstring.indexOf("no-cache") !== -1)
368 jQuery("#httpcachejsok").hide();
369 jQuery("#httpcachejsko").show();
373 jQuery("#httpcachejsok").show();
374 jQuery("#httpcachejsko").hide();
376 compjsstring=getjsurl.getResponseHeader(\'Content-Encoding\');
377 /* alert(\'js:\'+getjsurl.getAllResponseHeaders()); */
378 /*alert(\'js:\'+compjsstring);*/
379 if (compjsstring == null || (compjsstring.indexOf("gzip") == -1 && compjsstring.indexOf("deflate") == -1 && compjsstring.indexOf("br") == -1))
381 jQuery("#httpcompjsok").hide();
382 jQuery("#httpcompjsko").show();
386 jQuery("#httpcompjsok").show();
387 jQuery("#httpcompjsko").hide();
393 var cachejsphpstring;
395 getjsphpurl = $.ajax({
398 url: \
''.DOL_URL_ROOT.
'/core/js/lib_head.js.php\',
401 /* crossDomain: true,*/
402 success: function () {
403 cachejsphpstring=getjsphpurl.getResponseHeader(\'Cache-Control\');
404 /* alert(\'jsphp:\'+getjsphpurl.getAllResponseHeaders()); */
405 /*alert(\'jsphp:\'+cachejsphpstring);*/
406 if (cachejsphpstring != null && cachejsphpstring.indexOf("no-cache") !== -1)
408 jQuery("#httpcachejsphpok").hide();
409 jQuery("#httpcachejsphpko").show();
413 jQuery("#httpcachejsphpok").show();
414 jQuery("#httpcachejsphpko").hide();
416 compjsphpstring=getjsphpurl.getResponseHeader(\'Content-Encoding\');
417 /* alert(\'php:\'+getjsphpurl.getAllResponseHeaders()); */
418 /*alert(\'php:\'+compjsphpstring);*/
419 if (compjsphpstring == null || (compjsphpstring.indexOf("gzip") == -1 && compjsphpstring.indexOf("deflate") == -1 && compjsphpstring.indexOf("br") == -1))
421 jQuery("#httpcompjsphpok").hide();
422 jQuery("#httpcompjsphpko").show();
426 jQuery("#httpcompjsphpok").show();
427 jQuery("#httpcompjsphpko").hide();
437print
'<strong>'.$langs->trans(
"HTTPCacheStaticResources").
' - ';
438print $form->textwithpicto($langs->trans(
"CacheByServer"), $langs->trans(
"CacheByServerDesc"));
439print
'</strong><br>';
440print
'<div class="divsection">';
445print
'<div id="httpcachecssok">'.img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeCached",
'css (.css)').
'</div>';
446print
'<div id="httpcachecssko">'.img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeNotCached",
'css (.css)').
'</div>';
447print
'<div id="httpcachecssphpok">'.img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeCached",
'css (.css.php)').
'</div>';
448print
'<div id="httpcachecssphpko">'.img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeNotCached",
'css (.css.php)').
'</div>';
449print
'<div id="httpcacheimgok">'.img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeCached",
'img (.png)').
'</div>';
450print
'<div id="httpcacheimgko">'.img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeNotCached",
'img (.png)').
'</div>';
451print
'<div id="httpcachejsok">'.img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeCached",
'javascript (.js)').
'</div>';
452print
'<div id="httpcachejsko">'.img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeNotCached",
'javascript (.js)').
'</div>';
453print
'<div id="httpcachejsphpok">'.img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeCached",
'javascript (.js.php)').
'</div>';
454print
'<div id="httpcachejsphpko">'.img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeNotCached",
'javascript (.js.php)').
'</div>';
457print
'<strong>'.$langs->trans(
"HTTPCacheStaticResources").
' - '.$langs->trans(
"CacheByClient").
'</strong><br>';
458print
'<div class="divsection">';
459print
'<div id="httpcachebybrowser">'.img_picto(
'',
'question.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"TestNotPossibleWithCurrentBrowsers").
'</div>';
465print $form->textwithpicto($langs->trans(
"CompressionOfResources"), $langs->trans(
"CompressionOfResourcesDesc"));
468print
'<div class="divsection">';
470print
'<div id="httpcompphpok">'.img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeCompressed",
'php (.php)').
'</div>';
471print
'<div id="httpcompphpko">'.img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeNotCompressed",
'php (.php)').
'</div>';
473print
'<div id="httpcompcssok">'.img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeCompressed",
'css (.css)').
'</div>';
474print
'<div id="httpcompcssko">'.img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeNotCompressed",
'css (.css)').
'</div>';
475print
'<div id="httpcompcssphpok">'.img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeCompressed",
'css (.css.php)').
'</div>';
476print
'<div id="httpcompcssphpko">'.img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeNotCompressed",
'css (.css.php)').
'</div>';
479print
'<div id="httpcompjsok">'.img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeCompressed",
'javascript (.js)').
'</div>';
480print
'<div id="httpcompjsko">'.img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeNotCompressed",
'javascript (.js)').
'</div>';
481print
'<div id="httpcompjsphpok">'.img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeCompressed",
'javascript (.js.php)').
'</div>';
482print
'<div id="httpcompjsphpko">'.img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"FilesOfTypeNotCompressed",
'javascript (.js.php)').
'</div>';
487print
'<strong>'.$langs->trans(
"DriverType").
'</strong>';
489print
'<div class="divsection">';
490if ($conf->db->type ==
'mysql' || $conf->db->type ==
'mysqli') {
491 $test = ($conf->db->type ==
'mysqli');
493 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"YouUseBestDriver", $conf->db->type);
495 print
img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"YouDoNotUseBestDriver", $conf->db->type,
'mysqli');
502print
'<strong>'.$langs->trans(
"ComboListOptim").
'</strong>';
504print
'<div class="divsection">';
506$sql =
"SELECT COUNT(*) as nb";
507$sql .=
" FROM ".MAIN_DB_PREFIX.
"product as p";
508$resql = $db->query($sql);
510 $limitforoptim = 5000;
511 $num = $db->num_rows($resql);
512 $obj = $db->fetch_object($resql);
514 if ($nb > $limitforoptim) {
516 print
img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"YouHaveXObjectUseComboOptim", $nb, $langs->transnoentitiesnoconv(
"ProductsOrServices"),
'PRODUIT_USE_SEARCH_TO_SELECT');
518 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'));
521 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv(
"ProductsOrServices"));
527$sql =
"SELECT COUNT(*) as nb";
528$sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s";
529$resql = $db->query($sql);
531 $limitforoptim = 5000;
532 $num = $db->num_rows($resql);
533 $obj = $db->fetch_object($resql);
535 if ($nb > $limitforoptim) {
537 print
img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"YouHaveXObjectUseComboOptim", $nb, $langs->transnoentitiesnoconv(
"ThirdParties"),
'COMPANY_USE_SEARCH_TO_SELECT');
539 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'));
542 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv(
"ThirdParties"));
548$sql =
"SELECT COUNT(*) as nb";
549$sql .=
" FROM ".MAIN_DB_PREFIX.
"socpeople as s";
550$resql = $db->query($sql);
552 $limitforoptim = 5000;
553 $num = $db->num_rows($resql);
554 $obj = $db->fetch_object($resql);
556 if ($nb > $limitforoptim) {
558 print
img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"YouHaveXObjectUseComboOptim", $nb, $langs->transnoentitiesnoconv(
"Contacts"),
'CONTACT_USE_SEARCH_TO_SELECT');
560 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'));
563 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv(
"Contacts"));
569$sql =
"SELECT COUNT(*) as nb";
570$sql .=
" FROM ".MAIN_DB_PREFIX.
"projet as s";
571$resql = $db->query($sql);
573 $limitforoptim = 5000;
574 $num = $db->num_rows($resql);
575 $obj = $db->fetch_object($resql);
577 if ($nb > $limitforoptim) {
579 print
img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"YouHaveXObjectUseComboOptim", $nb, $langs->transnoentitiesnoconv(
"Projects"),
'PROJECT_USE_SEARCH_TO_SELECT');
581 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'));
584 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv(
"Projects"));
592print
'<strong>'.$langs->trans(
"SearchOptim").
'</strong>';
594print
'<div class="divsection">';
596$sql =
"SELECT COUNT(*) as nb";
597$sql .=
" FROM ".MAIN_DB_PREFIX.
"product as p";
598$resql = $db->query($sql);
600 $limitforoptim = 100000;
601 $num = $db->num_rows($resql);
602 $obj = $db->fetch_object($resql);
604 if ($nb > $limitforoptim) {
606 print
img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"YouHaveXObjectUseSearchOptim", $nb, $langs->transnoentitiesnoconv(
"ProductsOrServices"),
'PRODUCT_DONOTSEARCH_ANYWHERE');
607 print $langs->trans(
"YouHaveXObjectUseSearchOptimDesc");
609 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"YouHaveXObjectAndSearchOptimOn", $nb, $langs->transnoentitiesnoconv(
"ProductsOrServices"),
'PRODUCT_DONOTSEARCH_ANYWHERE',
getDolGlobalString(
'PRODUCT_DONOTSEARCH_ANYWHERE'));
612 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv(
"ProductsOrServices"));
619$sql =
"SELECT COUNT(*) as nb";
620$sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s";
621$resql = $db->query($sql);
623 $limitforoptim = 100000;
624 $num = $db->num_rows($resql);
625 $obj = $db->fetch_object($resql);
627 if ($nb > $limitforoptim) {
629 print
img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"YouHaveXObjectUseSearchOptim", $nb, $langs->transnoentitiesnoconv(
"ThirdParties"),
'COMPANY_DONOTSEARCH_ANYWHERE');
630 print $langs->trans(
"YouHaveXObjectUseSearchOptimDesc");
632 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"YouHaveXObjectAndSearchOptimOn", $nb, $langs->transnoentitiesnoconv(
"ThirdParties"),
'COMPANY_DONOTSEARCH_ANYWHERE',
getDolGlobalString(
'COMPANY_DONOTSEARCH_ANYWHERE'));
635 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"NbOfObjectIsLowerThanNoPb", $nb, $langs->transnoentitiesnoconv(
"ThirdParties"));
644print
'<strong>'.$langs->trans(
"Browser").
'</strong><br>';
645print
'<div class="divsection">';
646if (!in_array($conf->browser->name, array(
'chrome',
'opera',
'safari',
'firefox'))) {
647 print
img_picto(
'',
'warning.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"BrowserIsKO", $conf->browser->name);
649 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"').
' '.$langs->trans(
"BrowserIsOK", $conf->browser->name);
656print
'<strong>'.$langs->trans(
"Options").
'</strong><br>';
657print
'<div class="divsection">';
659 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"');
661 print
img_picto(
'',
'minus',
'class="pictofixedwidth"');
663print $form->textwithpicto($langs->trans(
"EnableFileCache").
' ('.$langs->trans(
"Widgets").
')', $langs->trans(
"Option").
' MAIN_ACTIVATE_FILECACHE');
668 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"');
670 print
img_picto(
'',
'minus',
'class="pictofixedwidth"');
672print
'MAIN_ENABLE_AJAX_TOOLTIP : ';
678 print
img_picto(
'',
'tick.png',
'class="pictofixedwidth"');
680 print
img_picto(
'',
'minus',
'class="pictofixedwidth"');
682print
'MAIN_CACHE_COUNT : ';
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
version_php()
Return PHP version.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
yn($yesno, $case=1, $color=0)
Return yes or no in current language.
currentToken()
Return the value of token currently saved into session with name 'token'.
dol_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_buildpath($path, $type=0, $returnemptyifnotfound=0)
Return path of url or filesystem.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.