2009-02-20 21:28:16 +01:00
< ? php
2009-02-21 00:00:00 +01:00
/* Copyright ( C ) 2007 - 2009 Laurent Destailleur < eldy @ users . sourceforge . net >
2007-09-19 21:42:07 +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
2013-01-16 15:36:08 +01:00
* the Free Software Foundation ; either version 3 of the License , or
2007-09-19 21:42:07 +02:00
* ( 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
2011-08-03 02:45:22 +02:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2007-09-19 21:42:07 +02:00
*/
/**
2010-03-01 10:20:41 +01:00
* \file htdocs / admin / tools / eaccelerator . php
* \brief Page administration de eaccelerator
*/
2007-09-19 21:42:07 +02:00
2012-08-22 23:24:21 +02:00
require '../../main.inc.php' ;
2007-09-19 21:42:07 +02:00
$langs -> load ( " admin " );
2011-12-28 12:53:46 +01:00
if ( ! $user -> admin ) accessforbidden ();
2007-09-19 21:42:07 +02:00
2007-09-20 01:32:42 +02:00
/*
2010-03-13 22:53:44 +01:00
* View
*/
2007-09-20 01:32:42 +02:00
2007-09-19 21:42:07 +02:00
llxHeader ();
if ( ! function_exists ( 'eaccelerator_info' ))
{
2010-03-13 22:53:44 +01:00
print 'eAccelerator is not installed.' ;
2011-08-27 21:15:14 +02:00
llxFooter ();
2007-09-19 21:42:07 +02:00
exit ;
}
$info = eaccelerator_info ();
if ( isset ( $_POST [ 'caching' ])) {
2010-03-13 22:53:44 +01:00
if ( $info [ 'cache' ]) {
eaccelerator_caching ( false );
} else {
eaccelerator_caching ( true );
}
2007-09-19 21:42:07 +02:00
} else if ( isset ( $_POST [ 'optimizer' ]) && function_exists ( 'eaccelerator_optimizer' )) {
2010-03-13 22:53:44 +01:00
if ( $info [ 'optimizer' ]) {
eaccelerator_optimizer ( false );
} else {
eaccelerator_optimizer ( true );
}
2007-09-19 21:42:07 +02:00
} else if ( isset ( $_POST [ 'clear' ])) {
2010-03-13 22:53:44 +01:00
eaccelerator_clear ();
2007-09-19 21:42:07 +02:00
} else if ( isset ( $_POST [ 'clean' ])) {
2010-03-13 22:53:44 +01:00
eaccelerator_clean ();
2007-09-19 21:42:07 +02:00
} else if ( isset ( $_POST [ 'purge' ])) {
2010-03-13 22:53:44 +01:00
eaccelerator_purge ();
2007-09-19 21:42:07 +02:00
}
$info = eaccelerator_info ();
if ( ! is_array ( $info )) {
2009-02-20 23:53:15 +01:00
dol_print_error ( '' , 'An error occured getting eAccelerator information, this is caused if eAccelerator isn\'t initalised properly' );
2007-09-19 21:42:07 +02:00
exit ;
}
2007-09-20 01:32:42 +02:00
2007-09-19 21:42:07 +02:00
function compare ( $x , $y )
{
2010-03-13 22:53:44 +01:00
global $sortby ;
if ( $x [ $sortby ] == $y [ $sortby ] )
return 0 ;
else if ( $x [ $sortby ] < $y [ $sortby ] )
return - 1 ;
else
return 1 ;
2007-09-19 21:42:07 +02:00
}
2011-09-14 23:50:18 +02:00
/**
* Compare revisions
2011-12-12 19:50:59 +01:00
*
2011-09-14 23:50:18 +02:00
* @ 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
*/
2007-09-19 21:42:07 +02:00
function revcompare ( $x , $y )
{
2010-03-13 22:53:44 +01:00
global $sortby , $langs ;
if ( $x [ $sortby ] == $y [ $sortby ] )
return 0 ;
else if ( $x [ $sortby ] < $y [ $sortby ] )
return 1 ;
else
return - 1 ;
2007-09-19 21:42:07 +02:00
}
2009-02-20 21:28:16 +01:00
2011-09-14 23:50:18 +02:00
/**
* Output table
2011-12-12 19:50:59 +01:00
*
2011-09-14 23:50:18 +02:00
* @ param array $list Array of records
* @ return void
*/
2010-03-13 22:53:44 +01:00
function create_script_table ( $list )
2007-09-20 01:32:42 +02:00
{
global $sortby , $bc , $langs ;
$var = true ;
2009-02-20 21:28:16 +01:00
2007-09-19 21:42:07 +02:00
if ( isset ( $_GET [ 'order' ]) && ( $_GET [ 'order' ] == " asc " || $_GET [ 'order' ] == " desc " )) {
$order = $_GET [ 'order' ];
} else {
$order = " asc " ;
}
if ( isset ( $_GET [ 'sort' ])) {
switch ( $_GET [ 'sort' ]) {
2010-03-13 22:53:44 +01:00
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' ));
}
}
?>
< table class = " noborder " >
< tr >
< th >< a
2011-09-14 23:50:18 +02:00
href = " <?php print $_SERVER['PHP_SELF'] ?>?sort=file&order=<?php print ( $order == " asc " ? " desc " : " asc " )?> " >< ? php print $langs -> trans ( " Filename " ); ?> </a> <?php if($sortby == "file") print ($order == "asc" ? "↓" : "↑") ?></th>
2010-03-13 22:53:44 +01:00
< th >< a
2011-09-14 23:50:18 +02:00
href = " <?php print $_SERVER['PHP_SELF'] ?>?sort=mtime&order=<?php print ( $order == " asc " ? " desc " : " asc " )?> " >< ? php print $langs -> trans ( " Date " ); ?> </a> <?php if($sortby == "mtime") print ($order == "asc" ? "↓" : "↑") ?></th>
2010-03-13 22:53:44 +01:00
< th >< a
2011-09-14 23:50:18 +02:00
href = " <?php print $_SERVER['PHP_SELF'] ?>?sort=size&order=<?php print ( $order == " asc " ? " desc " : " asc " )?> " >< ? php print $langs -> trans ( " Size " ); ?> </a> <?php if($sortby == "size") print ($order == "asc" ? "↓" : "↑") ?></th>
2010-03-13 22:53:44 +01:00
< th >< a
2011-09-14 23:50:18 +02:00
href = " <?php print $_SERVER['PHP_SELF'] ?>?sort=reloads&order=<?php print ( $order == " asc " ? " desc " : " asc " )?> " >< ? php print $langs -> trans ( " Reloads " ); ?> </a> <?php if($sortby == "reloads") print ($order == "asc" ? "↓" : "↑") ?></th>
2010-03-13 22:53:44 +01:00
< th >< a
2011-09-14 23:50:18 +02:00
href = " <?php print $_SERVER['PHP_SELF'] ?>?sort=hits&order=<?php print ( $order == " asc " ? " desc " : " asc " )?> " >< ? php print $langs -> trans ( " Hits " ); ?> </a> <?php if($sortby == "hits") print ($order == "asc" ? "↓" : "↑") ?></th>
2010-03-13 22:53:44 +01:00
</ tr >
< ? php
switch ( $sortby ) {
2007-09-19 21:42:07 +02:00
case " mtime " :
case " size " :
case " reloads " :
case " hits " :
( $order == " asc " ? uasort ( $list , 'compare' ) : uasort ( $list , 'revcompare' ));
break ;
2010-03-13 22:53:44 +01:00
case " file " :
2007-09-19 21:42:07 +02:00
default :
$sortby = " file " ;
( $order == " asc " ? uasort ( $list , 'compare' ) : uasort ( $list , 'revcompare' ));
2010-03-13 22:53:44 +01:00
2007-09-19 21:42:07 +02:00
}
2010-03-13 22:53:44 +01:00
foreach ( $list as $script ) { ?>
< tr < ? php $var = ! $var ; print $bc [ $var ]; ?> >
< td >< ? php print dol_trunc ( $script [ 'file' ], 80 , 'left' ); ?> </td>
2013-04-25 01:13:13 +02:00
< td align = " center " class = " nowrap " >< ? php print dol_print_date ( $script [ 'mtime' ], 'dayhour' ); ?> </td>
< td align = " right " class = " nowrap " >< ? php print number_format ( $script [ 'size' ] / 1024 , 2 ); ?>
2010-03-13 22:53:44 +01:00
KB </ td >
2013-04-25 01:13:13 +02:00
< td align = " right " class = " nowrap " >< ? php print $script [ 'reloads' ]; ?> (<?php print $script['usecount']; ?>)</td>
< td align = " right " class = " nowrap " >< ? php print $script [ 'hits' ]; ?> </td>
2010-03-13 22:53:44 +01:00
</ tr >
< ? php } ?>
</ table >
< ? php
2007-09-19 21:42:07 +02:00
}
2011-09-14 23:50:18 +02:00
/**
* Output table
2011-12-12 19:50:59 +01:00
*
2011-09-14 23:50:18 +02:00
* @ param array $list Array of records
* @ return void
*/
2007-09-20 01:32:42 +02:00
function create_key_table ( $list )
{
global $bc , $langs ;
$var = true ;
2010-03-13 22:53:44 +01:00
?>
< table class = " noborder " >
< tr class = " liste_titre " >
< th > Name </ th >
< th > Created </ th >
< th >< ? php print $langs -> trans ( " Size " ); ?> </th>
< th > ttl </ th >
</ tr >
< ? php
foreach ( $list as $key ) {
?>
< tr < ? php $var = ! $var ; print $bc [ $var ]; ?> >
< td >< ? php print dol_trunc ( $key [ 'name' ], 80 , 'left' ); ?> </td>
2013-04-25 01:13:13 +02:00
< td align = " center " class = " nowrap " >< ? php dol_print_date ( $key [ 'created' ], 'dayhour' ); ?> </td>
< td align = " right " class = " nowrap " >< ? php print number_format ( $key [ 'size' ] / 1024 , 3 ); ?>
2010-03-13 22:53:44 +01:00
KB </ td >
2013-04-25 01:13:13 +02:00
< td align = " right " class = " nowrap " >< ? php
2010-03-13 22:53:44 +01:00
if ( $key [ 'ttl' ] == - 1 ) {
print 'expired' ;
} elseif ( $key [ 'ttl' ] == 0 ) {
print 'none' ;
} else {
print dol_print_date ( $key [ 'ttl' ], 'dayhour' );
}
?> </td>
</ tr >
< ? php
}
?>
</ table >
< ? php
2007-09-19 21:42:07 +02:00
}
2011-11-08 10:18:45 +01:00
$form = new Form ( $db );
2007-09-19 21:42:07 +02:00
print_fiche_titre ( 'Dolibarr eAccelerator ' . $info [ 'version' ] . ' control panel' , '' , 'setup' );
2007-09-20 01:32:42 +02:00
$var = true ;
2007-09-19 21:42:07 +02:00
?>
< br >
2007-09-20 01:32:42 +02:00
< table class = " noborder " >
2010-03-13 22:53:44 +01:00
< tr class = " liste_titre " >
< td colspan = " 2 " > Information </ td >
</ tr >
< tr < ? php $var = ! $var ; print $bc [ $var ]; ?> >
< td > Caching enabled </ td >
< td align = " right " >< ? php print $info [ 'cache' ] ? 'yes' : 'no' ?> </td>
</ tr >
< tr < ? php $var = ! $var ; print $bc [ $var ]; ?> >
< td > Optimizer enabled </ td >
< td align = " right " >< ? php print $info [ 'optimizer' ] ? 'yes' : 'no' ?> </td>
</ tr >
< tr < ? php $var = ! $var ; print $bc [ $var ]; ?> >
< td > Memory usage </ td >
< td align = " right " >< ? php print number_format ( 100 * $info [ 'memoryAllocated' ] / $info [ 'memorySize' ], 2 ); ?> %
( < ? php print number_format ( $info [ 'memoryAllocated' ] / ( 1024 * 1024 ), 2 ); ?>
MB / < ? php print number_format ( $info [ 'memorySize' ] / ( 1024 * 1024 ), 2 ); ?>
MB ) </ td >
</ tr >
< tr < ? php $var = ! $var ; print $bc [ $var ]; ?> >
< td > Free memory in reserved cache </ td >
< td align = " right " >< ? php print number_format ( $info [ 'memoryAvailable' ] / ( 1024 * 1024 ), 2 ); ?> MB</td>
</ tr >
< tr < ? php $var = ! $var ; print $bc [ $var ]; ?> >
< td > Cached scripts </ td >
< td align = " right " >< ? php print $info [ 'cachedScripts' ]; ?> </td>
</ tr >
< tr < ? php $var = ! $var ; print $bc [ $var ]; ?> >
< td > Removed scripts </ td >
< td align = " right " >< ? php print $info [ 'removedScripts' ]; ?> </td>
</ tr >
< tr < ? php $var = ! $var ; print $bc [ $var ]; ?> >
< td > Cached keys </ td >
2012-08-16 19:18:24 +02:00
< td align = " right " >< ? php print ( isset ( $info [ 'cachedKeys' ]) ? $info [ 'cachedKeys' ] : '' ); ?> </td>
2010-03-13 22:53:44 +01:00
</ tr >
2007-09-19 21:42:07 +02:00
</ table >
2007-09-20 01:32:42 +02:00
< ? php
$var = true ;
2007-09-19 21:42:07 +02:00
2009-05-01 13:25:14 +02:00
$resCached = @ eaccelerator_cached_scripts (); // If success return an array
$resRemoved = @ eaccelerator_removed_scripts ();
if ( is_array ( $resCached ) || is_array ( $resRemoved ))
2009-05-01 12:55:09 +02:00
{
print " <br> " ;
print '<form name="ea_control" method="post">' ;
2009-05-17 10:01:54 +02:00
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
2009-05-01 12:55:09 +02:00
print '<table class="noborder">' ;
print '<tr class="liste_titre"><td colspan="2">Actions</td></tr>' ;
2010-03-13 22:53:44 +01:00
2009-05-01 13:25:14 +02:00
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> " ;
}
2010-03-13 22:53:44 +01:00
2009-05-01 13:25:14 +02:00
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> " ;
}
2010-03-13 22:53:44 +01:00
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 );
}
2009-05-01 13:25:14 +02:00
}
else
{
2009-05-01 13:26:58 +02:00
print " <br><br> " ;
2009-05-01 13:32:51 +02:00
print " Check in your <b>php.ini</b> that <b>eaccelerator.allowed_admin_path</b> parameter is : " ;
2009-05-01 13:30:14 +02:00
print " <br><br> " ;
2009-05-01 13:28:36 +02:00
print " <b> " . $_SERVER [ " SCRIPT_FILENAME " ] . " </b> " ;
2009-05-01 13:32:51 +02:00
print " <br><br> " ;
2009-05-01 12:55:09 +02:00
}
2007-09-19 21:42:07 +02:00
2009-02-21 00:00:00 +01:00
if ( function_exists ( 'eaccelerator_get' ))
{
print '<br><br>' ;
print '<b>Cached keys</b><br>' ;
2010-03-13 22:53:44 +01:00
$res = eaccelerator_list_keys ();
2007-09-19 21:42:07 +02:00
create_key_table ( $res );
}
2010-03-16 00:54:37 +01:00
print " <br><br> " ;
2007-09-19 21:42:07 +02:00
2011-08-27 21:15:14 +02:00
llxFooter ();
2011-12-12 19:50:59 +01:00
$db -> close ();