mirror of
https://github.com/YunoHost-Apps/dolibarr_ynh.git
synced 2024-09-03 18:35:53 +02:00
352 lines
11 KiB
PHP
352 lines
11 KiB
PHP
<?php
|
|
/* Copyright (C) 2007-2009 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/tools/eaccelerator.php
|
|
* \brief Page administration de eaccelerator
|
|
*/
|
|
|
|
require '../../main.inc.php';
|
|
|
|
$langs->load("admin");
|
|
|
|
if (!$user->admin) accessforbidden();
|
|
|
|
|
|
/*
|
|
* View
|
|
*/
|
|
|
|
llxHeader();
|
|
|
|
|
|
if (!function_exists('eaccelerator_info')) {
|
|
print 'eAccelerator is not installed.';
|
|
llxFooter();
|
|
exit;
|
|
}
|
|
|
|
|
|
$info = eaccelerator_info();
|
|
if (isset($_POST['caching'])) {
|
|
if ($info['cache']) {
|
|
eaccelerator_caching(false);
|
|
} else {
|
|
eaccelerator_caching(true);
|
|
}
|
|
} else if (isset($_POST['optimizer']) && function_exists('eaccelerator_optimizer')) {
|
|
if ($info['optimizer']) {
|
|
eaccelerator_optimizer(false);
|
|
} else {
|
|
eaccelerator_optimizer(true);
|
|
}
|
|
} else if (isset($_POST['clear'])) {
|
|
eaccelerator_clear();
|
|
} else if (isset($_POST['clean'])) {
|
|
eaccelerator_clean();
|
|
} else if (isset($_POST['purge'])) {
|
|
eaccelerator_purge();
|
|
}
|
|
$info = eaccelerator_info();
|
|
if (!is_array($info)) {
|
|
dol_print_error('','An error occured getting eAccelerator information, this is caused if eAccelerator isn\'t initalised properly');
|
|
exit;
|
|
}
|
|
|
|
|
|
/**
|
|
* Compare revisions
|
|
*
|
|
* @param array $x Parts of version 1
|
|
* @param array $y Parts of version 2
|
|
* @return int -1 if 1<2, 0 if 1=2, 1 if 1>2
|
|
*/
|
|
function compare($x, $y)
|
|
{
|
|
global $sortby;
|
|
|
|
if ( $x[$sortby] == $y[$sortby] ) {
|
|
return 0;
|
|
} else if ($x[$sortby] < $y[$sortby]) {
|
|
return -1;
|
|
} else {
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Compare revisions
|
|
*
|
|
* @param array $x Parts of version 1
|
|
* @param array $y Parts of version 2
|
|
* @return int 1 if 1<2, 0 if 1=2, -1 if 1>2
|
|
*/
|
|
function revcompare($x, $y)
|
|
{
|
|
global $sortby;
|
|
|
|
if ($x[$sortby] == $y[$sortby]) {
|
|
return 0;
|
|
} else if ($x[$sortby] < $y[$sortby]) {
|
|
return 1;
|
|
} else {
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Output table
|
|
*
|
|
* @param array $list Array of records
|
|
* @return void
|
|
*/
|
|
function create_script_table($list)
|
|
{
|
|
global $sortby,$bc,$langs;
|
|
$var=true;
|
|
|
|
if (isset($_GET['order']) && ($_GET['order'] == "asc" || $_GET['order'] =="desc")) {
|
|
$order = $_GET['order'];
|
|
} else {
|
|
$order = "asc";
|
|
}
|
|
|
|
if (isset($_GET['sort'])) {
|
|
switch ($_GET['sort']) {
|
|
case "mtime":
|
|
case "size":
|
|
case "reloads":
|
|
case "hits":
|
|
$sortby = $_GET['sort'];
|
|
($order == "asc" ? uasort($list, 'compare') : uasort($list, 'revcompare'));
|
|
break;
|
|
default:
|
|
$sortby = "file";
|
|
($order == "asc" ? uasort($list, 'compare') : uasort($list, 'revcompare'));
|
|
}
|
|
}
|
|
|
|
print '<table class="noborder">';
|
|
print '<tr>';
|
|
print '<th><a href="'.$_SERVER['PHP_SELF'].'?sort=file&order='.($order == "asc" ? "desc" : "asc").'">'.$langs->trans("Filename").'</a> ';
|
|
if($sortby == "file")
|
|
print ($order == "asc" ? "↓" : "↑").'</th>';
|
|
print '<th><a href="'.$_SERVER['PHP_SELF'].'?sort=mtime&order='.($order == "asc" ? "desc" : "asc").'">'.$langs->trans("Date").'</a> ';
|
|
if($sortby == "mtime")
|
|
print ($order == "asc" ? "↓" : "↑").'</th>';
|
|
print '<th><a href="'.$_SERVER['PHP_SELF'].'?sort=size&order='.($order == "asc" ? "desc" : "asc").'">'.$langs->trans("Size").'</a> ';
|
|
if($sortby == "size")
|
|
print ($order == "asc" ? "↓" : "↑").'</th>';
|
|
print '<th><a href="'.$_SERVER['PHP_SELF'].'?sort=reloads&order='.($order == "asc" ? "desc" : "asc").'">'.$langs->trans("Reloads").'</a> ';
|
|
if($sortby == "reloads")
|
|
print ($order == "asc" ? "↓" : "↑").'</th>';
|
|
print '<th><a href="'.$_SERVER['PHP_SELF'].'?sort=hits&order='.($order == "asc" ? "desc" : "asc").'">'.$langs->trans("Hits").'</a> ';
|
|
if($sortby == "hits")
|
|
print ($order == "asc" ? "↓" : "↑").'</th>';
|
|
print '</tr>';
|
|
switch ($sortby) {
|
|
case "mtime":
|
|
case "size":
|
|
case "reloads":
|
|
case "hits":
|
|
($order == "asc" ? uasort($list, 'compare') : uasort($list, 'revcompare'));
|
|
break;
|
|
case "file":
|
|
default:
|
|
$sortby = "file";
|
|
($order == "asc" ? uasort($list, 'compare') : uasort($list, 'revcompare'));
|
|
|
|
}
|
|
|
|
foreach($list as $script) {
|
|
$var = ! $var;
|
|
print '<tr '.$bc[$var].'>';
|
|
print '<td>'.dol_trunc($script['file'],80,'left').'</td>';
|
|
print '<td align="center" class="nowrap">'.dol_print_date($script['mtime'],'dayhour').'</td>';
|
|
print '<td align="right" class="nowrap">'.number_format($script['size'] / 1024, 2).'KB</td>';
|
|
print '<td align="right" class="nowrap">'.$script['reloads'].' ('.$script['usecount'].')</td>';
|
|
print '<td align="right" class="nowrap">'.$script['hits'].'</td>';
|
|
print '</tr>';
|
|
}
|
|
print '</table>';
|
|
|
|
}
|
|
|
|
/**
|
|
* Output table
|
|
*
|
|
* @param array $list Array of records
|
|
* @return void
|
|
*/
|
|
function create_key_table($list)
|
|
{
|
|
global $bc,$langs;
|
|
$var=true;
|
|
|
|
print '<table class="noborder">';
|
|
print '<tr class="liste_titre">';
|
|
print '<th>Name</th>';
|
|
print '<th>Created</th>';
|
|
print '<th>'.$langs->trans("Size").'</th>';
|
|
print '<th>ttl</th>';
|
|
print '</tr>';
|
|
|
|
foreach($list as $key) {
|
|
$var = !$var;
|
|
print '<tr '.$bc[$var].'>';
|
|
print '<td>'.dol_trunc($key['name'],80,'left').'</td>';
|
|
print '<td align="center" class="nowrap">'.dol_print_date($key['created'],'dayhour').'</td>';
|
|
print '<td align="right" class="nowrap">'.number_format($key['size']/1024, 3).'KB</td>';
|
|
print '<td align="right" class="nowrap">';
|
|
if ($key['ttl'] == -1) {
|
|
print 'expired';
|
|
} elseif ($key['ttl'] == 0) {
|
|
print 'none';
|
|
} else {
|
|
print dol_print_date($key['ttl'],'dayhour');
|
|
}
|
|
print '</td>';
|
|
print '</tr>';
|
|
}
|
|
print '</table>';
|
|
}
|
|
|
|
|
|
$form=new Form($db);
|
|
print_fiche_titre('Dolibarr eAccelerator '.$info['version'].' control panel','','title_setup');
|
|
|
|
$var=true;
|
|
|
|
print '<br>';
|
|
|
|
|
|
print '<table class="noborder">';
|
|
print '<tr class="liste_titre">';
|
|
print '<td colspan="2">Information</td>';
|
|
print '</tr>';
|
|
$var = !$var;
|
|
print '<tr '.$bc[$var].'>';
|
|
print '<td>Caching enabled</td>';
|
|
print '<td align="right">'.($info['cache']?'yes':'no').'</td>';
|
|
print '</tr>';
|
|
$var = !$var;
|
|
print '<tr '.$bc[$var].'>';
|
|
print '<td>Optimizer enabled</td>';
|
|
print '<td align="right">'.$info['optimizer']?'yes':'no'.'</td>';
|
|
print '</tr>';
|
|
$var = !$var;
|
|
print '<tr '.$bc[$var].'>';
|
|
print '<td>Memory usage</td>';
|
|
print '<td align="right">'.number_format(100 * $info['memoryAllocated']/$info['memorySize'], 2).'%('.number_format($info['memoryAllocated'] / (1024*1024), 2).'MB / '.number_format($info['memorySize']/(1024*1024), 2).'MB)</td>';
|
|
print '</tr>';
|
|
$var = ! $var;
|
|
print '<tr '.$bc[$var].'>';
|
|
print '<td>Free memory in reserved cache</td>';
|
|
print '<td align="right">'.number_format($info['memoryAvailable']/(1024*1024), 2).'MB</td>';
|
|
print '</tr>';
|
|
$var = ! $var;
|
|
print '<tr '.$bc[$var].'>';
|
|
print '<td>Cached scripts</td>';
|
|
print '<td align="right">'.$info['cachedScripts'].'</td>';
|
|
print '</tr>';
|
|
$var = ! $var;
|
|
print '<tr '.$bc[$var].'>';
|
|
print '<td>Removed scripts</td>';
|
|
print '<td align="right">'.$info['removedScripts'].'</td>';
|
|
print '</tr>';
|
|
$var = ! $var;
|
|
print '<tr '.$bc[$var].'>';
|
|
print '<td>Cached keys</td>';
|
|
print '<td align="right">'.(isset($info['cachedKeys'])?$info['cachedKeys']:'').'</td>';
|
|
print '</tr>';
|
|
print '</table>';
|
|
|
|
$var=true;
|
|
|
|
$resCached = @eaccelerator_cached_scripts(); // If success return an array
|
|
$resRemoved = @eaccelerator_removed_scripts();
|
|
|
|
if (is_array($resCached) || is_array($resRemoved)) {
|
|
print "<br>";
|
|
print '<form name="ea_control" method="post">';
|
|
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|
print '<table class="noborder">';
|
|
print '<tr class="liste_titre"><td colspan="2">Actions</td></tr>';
|
|
|
|
if (is_array($resCached)) {
|
|
$var = ! $var;
|
|
print "<tr ".$bc[$var].">";
|
|
print "<td>Caching</td>";
|
|
print '<td align="right"><input type="submit" class="butAction" name="caching" value="'. ($info['cache']?'disable':'enable') .'" /></td>';
|
|
print "</tr>";
|
|
$var = ! $var;
|
|
print "<tr ".$bc[$var].">";
|
|
print "<td>Optimizer</td>";
|
|
print '<td align="right"><input type="submit" class="butAction" name="optimizer" value="'. ($info['optimizer']?'disable':'enable') .'" /></td>';
|
|
print "</tr>";
|
|
}
|
|
|
|
if (is_array($resRemoved)) {
|
|
$var = ! $var;
|
|
print "<tr ".$bc[$var].">";
|
|
print "<td>Clear cache</td>";
|
|
print '<td align="right"><input type="submit" class="butAction" name="clear" value="clear" title="remove all unused scripts and data from shared memory and disk cache" /></td>';
|
|
print "</tr>";
|
|
$var = ! $var;
|
|
print "<tr ".$bc[$var].">";
|
|
print "<td>Clean cache</td>";
|
|
print '<td align="right"><input type="submit" class="butAction" name="clean" value="clean" title=" remove all expired scripts and data from shared memory and disk cache" /></td>';
|
|
print "</tr>";
|
|
$var = ! $var;
|
|
print "<tr ".$bc[$var].">";
|
|
print "<td>Purge cache</td>";
|
|
print '<td align="right"><input type="submit" class="butAction" name="purge" value="purge" title="remove all \'removed\' scripts from shared memory" /></td>';
|
|
print "</tr></table></form>";
|
|
}
|
|
|
|
if (is_array($resCached)) {
|
|
print "<br><br>";
|
|
print "<b>Cached scripts</b><br>";
|
|
create_script_table($resCached);
|
|
}
|
|
|
|
if (is_array($resRemoved)) {
|
|
print "<br><br>";
|
|
print "<b>Removed scripts</b><br>";
|
|
create_script_table($resRemoved);
|
|
}
|
|
} else {
|
|
print "<br><br>";
|
|
print "Check in your <b>php.ini</b> that <b>eaccelerator.allowed_admin_path</b> parameter is : ";
|
|
print "<br><br>";
|
|
print "<b>".$_SERVER["SCRIPT_FILENAME"]."</b>";
|
|
print "<br><br>";
|
|
}
|
|
|
|
if (function_exists('eaccelerator_get')) {
|
|
print '<br><br>';
|
|
print '<b>Cached keys</b><br>';
|
|
$res=eaccelerator_list_keys();
|
|
create_key_table($res);
|
|
}
|
|
|
|
print "<br><br>";
|
|
|
|
|
|
llxFooter();
|
|
|
|
$db->close();
|