mirror of
https://github.com/Dolibarr/dolibarr.git
synced 2025-12-11 12:01:23 +01:00
New: Can delete the log file from the tool menu
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
/* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net>
|
/* Copyright (C) 2006-2009 Laurent Destailleur <eldy@users.sourceforge.net>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -17,10 +17,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\file htdocs/admin/tools/purge.php
|
* \file htdocs/admin/tools/purge.php
|
||||||
\brief Page de purge des fichiers temporaires
|
* \brief Page to purge files (temporary or not)
|
||||||
\version $Id$
|
* \version $Id$
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require("./pre.inc.php");
|
require("./pre.inc.php");
|
||||||
include_once(DOL_DOCUMENT_ROOT."/lib/databases/".$conf->db->type.".lib.php");
|
include_once(DOL_DOCUMENT_ROOT."/lib/databases/".$conf->db->type.".lib.php");
|
||||||
@@ -29,19 +29,27 @@ include_once(DOL_DOCUMENT_ROOT.'/lib/files.lib.php');
|
|||||||
$langs->load("admin");
|
$langs->load("admin");
|
||||||
|
|
||||||
if (! $user->admin)
|
if (! $user->admin)
|
||||||
accessforbidden();
|
accessforbidden();
|
||||||
|
|
||||||
if ($_GET["msg"]) $message='<div class="error">'.$_GET["msg"].'</div>';
|
if ($_GET["msg"]) $message='<div class="error">'.$_GET["msg"].'</div>';
|
||||||
|
|
||||||
|
// Define filelog to discard it from purge
|
||||||
|
$filelog='';
|
||||||
|
if ($conf->syslog->enabled)
|
||||||
|
{
|
||||||
|
$filelog=SYSLOG_FILE;
|
||||||
|
$filelog=eregi_replace('DOL_DATA_ROOT',DOL_DATA_ROOT,$filelog);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Actions
|
* Actions
|
||||||
*/
|
*/
|
||||||
if ($_POST["action"]=='purge')
|
if ($_POST["action"]=='purge')
|
||||||
{
|
{
|
||||||
$filesarray=array();
|
$filesarray=array();
|
||||||
|
|
||||||
if ($_POST["choice"]=='tempfiles')
|
if ($_POST["choice"]=='tempfiles')
|
||||||
{
|
{
|
||||||
// Delete temporary files
|
// Delete temporary files
|
||||||
@@ -60,15 +68,32 @@ if ($_POST["action"]=='purge')
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($_POST["choice"]=='logfile')
|
||||||
|
{
|
||||||
|
$filesarray[]=array('fullname'=>$filelog,'type'=>'file');
|
||||||
|
}
|
||||||
|
|
||||||
$count=0;
|
$count=0;
|
||||||
if (sizeof($filesarray))
|
if (sizeof($filesarray))
|
||||||
{
|
{
|
||||||
|
|
||||||
foreach($filesarray as $key => $value)
|
foreach($filesarray as $key => $value)
|
||||||
{
|
{
|
||||||
//print "x ".$filesarray[$key]['fullname']."<br>\n";
|
//print "x ".$filesarray[$key]['fullname']."<br>\n";
|
||||||
$count+=dol_delete_dir_recursive($filesarray[$key]['fullname']);
|
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
|
// Update cachenbofdoc
|
||||||
if ($conf->ecm->enabled && $_POST["choice"]=='allfiles')
|
if ($conf->ecm->enabled && $_POST["choice"]=='allfiles')
|
||||||
{
|
{
|
||||||
@@ -85,8 +110,8 @@ if ($_POST["action"]=='purge')
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Affichage page
|
* View
|
||||||
*/
|
*/
|
||||||
|
|
||||||
llxHeader();
|
llxHeader();
|
||||||
|
|
||||||
@@ -98,7 +123,7 @@ print '<br>';
|
|||||||
print $langs->trans("PurgeAreaDesc",$dolibarr_main_data_root).'<br>';
|
print $langs->trans("PurgeAreaDesc",$dolibarr_main_data_root).'<br>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
if ($message)
|
if ($message)
|
||||||
{
|
{
|
||||||
print $message.'<br>';
|
print $message.'<br>';
|
||||||
print "\n";
|
print "\n";
|
||||||
@@ -109,13 +134,25 @@ print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
|||||||
|
|
||||||
print '<input type="hidden" name="action" value="purge">';
|
print '<input type="hidden" name="action" value="purge">';
|
||||||
|
|
||||||
print '<table class="border" width="100%"><tr><td>';
|
print '<table class="border" width="100%">';
|
||||||
|
|
||||||
|
print '<tr><td>';
|
||||||
|
|
||||||
print '<input type="radio" name="choice" value="tempfiles"';
|
print '<input type="radio" name="choice" value="tempfiles"';
|
||||||
print (! $_POST["choice"] || $_POST["choice"]=='tempfiles') ? ' checked="true"' : '';
|
print (! $_POST["choice"] || $_POST["choice"]=='tempfiles') ? ' checked="true"' : '';
|
||||||
print '> '.$langs->trans("PurgeDeleteTemporaryFiles").'<br>';
|
print '> '.$langs->trans("PurgeDeleteTemporaryFiles").'<br>';
|
||||||
|
|
||||||
print '<input type="radio" name="choice" value="allfiles"';
|
print '<input type="radio" name="choice" value="allfiles"';
|
||||||
print ($_POST["choice"] && $_POST["choice"]=='allfiles') ? ' checked="true"' : '';
|
print ($_POST["choice"] && $_POST["choice"]=='allfiles') ? ' checked="true"' : '';
|
||||||
print '> '.$langs->trans("PurgeDeleteAllFilesInDocumentsDir",$dolibarr_main_data_root).'<br>';
|
print '> '.$langs->trans("PurgeDeleteAllFilesInDocumentsDir",$dolibarr_main_data_root).'<br>';
|
||||||
|
|
||||||
|
if ($conf->syslog->enabled)
|
||||||
|
{
|
||||||
|
print '<input type="radio" name="choice" value="logfile"';
|
||||||
|
print ($_POST["choice"] && $_POST["choice"]=='logfile') ? ' checked="true"' : '';
|
||||||
|
print '> '.$langs->trans("PurgeDeleteLogFile",$filelog).'<br>';
|
||||||
|
}
|
||||||
|
|
||||||
print '</td></tr></table>';
|
print '</td></tr></table>';
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ SystemToolsAreaDesc=This area provides administration features. Use the menu to
|
|||||||
PurgeAreaDesc=This page allows you to delete all files built or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files built by the web server.
|
PurgeAreaDesc=This page allows you to delete all files built or stored by Dolibarr (temporary files or all files in <b>%s</b> directory). Using this feature is not necessary. It is provided for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files built by the web server.
|
||||||
PurgeDeleteTemporaryFiles=Delete all temporary files (no risk to loose data)
|
PurgeDeleteTemporaryFiles=Delete all temporary files (no risk to loose data)
|
||||||
PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
|
PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory <b>%s</b>. Temporary files but also files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted.
|
||||||
|
PurgeDeleteLogFile=Delete log file <b>%s</b> defined for Syslog module.
|
||||||
PurgeRunNow=Purge now
|
PurgeRunNow=Purge now
|
||||||
PurgeNothingToDelete=no directory to delete.
|
PurgeNothingToDelete=no directory to delete.
|
||||||
PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
|
PurgeNDirectoriesDeleted=<b>%s</b> files or directories deleted.
|
||||||
@@ -684,7 +685,7 @@ NoEventOrNoAuditSetup=No security event has been recorded yet. This can be norma
|
|||||||
NoEventFoundWithCriteria=No security event has been found for such search criterias.
|
NoEventFoundWithCriteria=No security event has been found for such search criterias.
|
||||||
SeeLocalSendMailSetup=See your local sendmail setup
|
SeeLocalSendMailSetup=See your local sendmail setup
|
||||||
BackupDesc=To make a complete backup of Dolibarr, you must:
|
BackupDesc=To make a complete backup of Dolibarr, you must:
|
||||||
BackupDesc2=* Save content of documents directory (<b>%s</b>) that contains all uplaoded and generated files (you can make a zip for exeample).
|
BackupDesc2=* Save content of documents directory (<b>%s</b>) that contains all uploaded and generated files (you can make a zip for exeample).
|
||||||
BackupDesc3=* Save content of your database with a dump. for this, you can use following assistant.
|
BackupDesc3=* Save content of your database with a dump. for this, you can use following assistant.
|
||||||
BackupDescX=Archived directory should be stored in a secure place.
|
BackupDescX=Archived directory should be stored in a secure place.
|
||||||
BackupDescY=The generated dump file should be stored in a secure place.
|
BackupDescY=The generated dump file should be stored in a secure place.
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ SystemToolsAreaDesc = Cet espace offre des fonctions d'administration diverses.
|
|||||||
PurgeAreaDesc = Cette page vous permet d'effacer tous les fichiers construits ou stockés par Dolibarr (fichiers temporaires ou tous les fichiers du répertoire <b>%s</b>). L'utilisation de cette fonction n'est pas nécessaire. Elle est fournie pour les utilisateurs qui héberge Dolibarr chez un hébergeur qui n'offre pas les permissions de supprimer les fichiers sauvegardés par le serveur Web.
|
PurgeAreaDesc = Cette page vous permet d'effacer tous les fichiers construits ou stockés par Dolibarr (fichiers temporaires ou tous les fichiers du répertoire <b>%s</b>). L'utilisation de cette fonction n'est pas nécessaire. Elle est fournie pour les utilisateurs qui héberge Dolibarr chez un hébergeur qui n'offre pas les permissions de supprimer les fichiers sauvegardés par le serveur Web.
|
||||||
PurgeDeleteTemporaryFiles = Effacer tous les fichiers temporaires (pas de risque de perte de données)
|
PurgeDeleteTemporaryFiles = Effacer tous les fichiers temporaires (pas de risque de perte de données)
|
||||||
PurgeDeleteAllFilesInDocumentsDir = Effacer tous les fichiers du répertoire <b>%s</b>. Les fichiers temporaires mais aussi les fichiers joints aux éléments (tiers, factures, ...) ou dans le module GED seront effacées.
|
PurgeDeleteAllFilesInDocumentsDir = Effacer tous les fichiers du répertoire <b>%s</b>. Les fichiers temporaires mais aussi les fichiers joints aux éléments (tiers, factures, ...) ou dans le module GED seront effacées.
|
||||||
|
PurgeDeleteLogFile = Effacer le fichier log <b>%s</b> défini pour le module Syslog.
|
||||||
PurgeRunNow = Lancer la purge maintenant
|
PurgeRunNow = Lancer la purge maintenant
|
||||||
PurgeNothingToDelete = Aucun répertoire à supprimer.
|
PurgeNothingToDelete = Aucun répertoire à supprimer.
|
||||||
PurgeNDirectoriesDeleted = <b>%s</b> fichiers ou répertoires supprimés.
|
PurgeNDirectoriesDeleted = <b>%s</b> fichiers ou répertoires supprimés.
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
* \param $sortcriteria Sort criteria ("name","date","size")
|
* \param $sortcriteria Sort criteria ("name","date","size")
|
||||||
* \param $sortorder Sort order (SORT_ASC, SORT_DESC)
|
* \param $sortorder Sort order (SORT_ASC, SORT_DESC)
|
||||||
* \param $mode 0=Return array with only keys needed, 1=Force all keys to be loaded
|
* \param $mode 0=Return array with only keys needed, 1=Force all keys to be loaded
|
||||||
* \return array Array of array('name'=>xxx,'date'=>yyy,'size'=>zzz)
|
* \return array Array of array('name'=>'xxx','fullname'=>'/abc/xxx','date'=>'yyy','size'=>99,'type'=>'dir|file')
|
||||||
*/
|
*/
|
||||||
function dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter="", $sortcriteria="name", $sortorder=SORT_ASC, $mode=0)
|
function dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefilter="", $sortcriteria="name", $sortorder=SORT_ASC, $mode=0)
|
||||||
{
|
{
|
||||||
@@ -73,7 +73,8 @@ function dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefil
|
|||||||
"name" => $file,
|
"name" => $file,
|
||||||
"fullname" => $path.'/'.$file,
|
"fullname" => $path.'/'.$file,
|
||||||
"date" => $filedate,
|
"date" => $filedate,
|
||||||
"size" => $filesize
|
"size" => $filesize,
|
||||||
|
"type" => 'dir'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,7 +95,8 @@ function dol_dir_list($path, $types="all", $recursive=0, $filter="", $excludefil
|
|||||||
"name" => $file,
|
"name" => $file,
|
||||||
"fullname" => $path.'/'.$file,
|
"fullname" => $path.'/'.$file,
|
||||||
"date" => $filedate,
|
"date" => $filedate,
|
||||||
"size" => $filesize
|
"size" => $filesize,
|
||||||
|
"type" => 'file'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2017,9 +2017,9 @@ function print_fleche_navigation($page,$file,$options='',$nextpage,$betweenarrow
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Effacement d'un fichier
|
* \brief Remove a file
|
||||||
* \param file Fichier a effacer ou masque de fichier a effacer
|
* \param file Fichier a effacer ou masque de fichier a effacer
|
||||||
* \param boolean true if file deleted, false if error
|
* \param boolean true if file deleted, false if error
|
||||||
*/
|
*/
|
||||||
function dol_delete_file($file)
|
function dol_delete_file($file)
|
||||||
{
|
{
|
||||||
@@ -2052,6 +2052,7 @@ function dol_delete_dir($dir)
|
|||||||
*/
|
*/
|
||||||
function dol_delete_dir_recursive($dir,$count=0)
|
function dol_delete_dir_recursive($dir,$count=0)
|
||||||
{
|
{
|
||||||
|
//dol_syslog("functions.lib:dol_delete_dir_recursive ".$dir,LOG_DEBUG);
|
||||||
if ($handle = opendir("$dir"))
|
if ($handle = opendir("$dir"))
|
||||||
{
|
{
|
||||||
while (false !== ($item = readdir($handle)))
|
while (false !== ($item = readdir($handle)))
|
||||||
|
|||||||
Reference in New Issue
Block a user