* * 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 2 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * \file htdocs/admin/tools/purge.php * \brief Page to purge files (temporary or not) * \version $Id$ */ require("../../main.inc.php"); include_once(DOL_DOCUMENT_ROOT."/lib/databases/".$conf->db->type.".lib.php"); include_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php'); $langs->load("admin"); if (! $user->admin) accessforbidden(); if ($_GET["msg"]) $message='
'.$_GET["msg"].'
'; // Define filelog to discard it from purge $filelog=''; if ($conf->syslog->enabled) { $filelog=SYSLOG_FILE; $filelog=preg_replace('/DOL_DATA_ROOT/i',DOL_DATA_ROOT,$filelog); } /* * Actions */ if ($_REQUEST["action"]=='purge' && ! preg_match('/^confirm/i',$_REQUEST["choice"]) && ($_REQUEST["choice"] != 'allfiles' || $_REQUEST["confirm"] == 'yes') ) { $filesarray=array(); if ($_REQUEST["choice"]=='tempfiles') { // Delete temporary files if ($dolibarr_main_data_root) { $filesarray=dol_dir_list($dolibarr_main_data_root,"directories",1,'\/temp$'); } } if ($_REQUEST["choice"]=='allfiles') { // Delete all files if ($dolibarr_main_data_root) { $filesarray=dol_dir_list($dolibarr_main_data_root,"all",0); } } if ($_REQUEST["choice"]=='logfile') { $filesarray[]=array('fullname'=>$filelog,'type'=>'file'); } $count=0; if (sizeof($filesarray)) { foreach($filesarray as $key => $value) { //print "x ".$filesarray[$key]['fullname']."
\n"; if ($filesarray[$key]['type'] == 'dir') { $count+=dol_delete_dir_recursive($filesarray[$key]['fullname']); } elseif ($filesarray[$key]['type'] == 'file') { // If (file that is not logfile) or (if logfile with option logfile) if ($filesarray[$key]['fullname'] != $filelog || $_POST["choice"]=='logfile') { $count+=dol_delete_file($filesarray[$key]['fullname']); } } } // Update cachenbofdoc if ($conf->ecm->enabled && $_REQUEST["choice"]=='allfiles') { require_once(DOL_DOCUMENT_ROOT."/ecm/class/ecmdirectory.class.php"); $ecmdirstatic = new ECMDirectory($db); $result = $ecmdirstatic->refreshcachenboffile(1); } } if ($count) $message=$langs->trans("PurgeNDirectoriesDeleted",$count); else $message=$langs->trans("PurgeNothingToDelete"); $message='
'.$message.'
'; } /* * View */ llxHeader(); $html=new Form($db); print_fiche_titre($langs->trans("Purge"),'','setup'); print $langs->trans("PurgeAreaDesc",$dolibarr_main_data_root).'
'; print '
'; print '
'; print ''; print ''; print ''; print '
'; if ($conf->syslog->enabled) { print ' '.$langs->trans("PurgeDeleteLogFile",$filelog).'

'; } print ' '.$langs->trans("PurgeDeleteTemporaryFiles").'

'; print ' '.$langs->trans("PurgeDeleteAllFilesInDocumentsDir",$dolibarr_main_data_root).'
'; print '
'; if ($_REQUEST['choice'] != 'confirm_allfiles') { print '
'; print '
'; } print '
'; if ($message) { print '
'.$message.'
'; print "\n"; } if (preg_match('/^confirm/i',$_REQUEST["choice"])) { print '
'; $formquestion=array(); $ret=$html->form_confirm($_SERVER["PHP_SELF"].'?choice=allfiles',$langs->trans('Purge'),$langs->trans('ConfirmPurge').' '.img_warning(),'purge',$formquestion,'no',2); if ($ret == 'html') print '
'; } llxFooter('$Date$ - $Revision$'); ?>