diff --git a/htdocs/core/class/utils.class.php b/htdocs/core/class/utils.class.php
index 2b239a90d98..e35fefdad6f 100644
--- a/htdocs/core/class/utils.class.php
+++ b/htdocs/core/class/utils.class.php
@@ -50,11 +50,11 @@ class Utils
* Purge files into directory of data files.
* CAN BE A CRON TASK
*
- * @param string $choices Choice of purge mode ('tempfiles', '' or 'tempfilesold' to purge temp older than $nbsecondsold seconds, 'allfiles', 'logfile')
+ * @param string $choices Choice of purge mode ('tempfiles', 'tempfilesold' to purge temp older than $nbsecondsold seconds, 'logfiles', or mix of this). Note 'allfiles' is possible too but very dangerous.
* @param int $nbsecondsold Nb of seconds old to accept deletion of a directory if $choice is 'tempfilesold'
* @return int 0 if OK, < 0 if KO (this function is used also by cron so only 0 is OK)
*/
- public function purgeFiles($choices = 'tempfilesold,logfile', $nbsecondsold = 86400)
+ public function purgeFiles($choices = 'tempfilesold+logfiles', $nbsecondsold = 86400)
{
global $conf, $langs, $dolibarr_main_data_root;
@@ -62,7 +62,7 @@ class Utils
require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php';
- if (empty($choices)) $choices = 'tempfilesold,logfile';
+ if (empty($choices)) $choices = 'tempfilesold,logfiles';
dol_syslog("Utils::purgeFiles choice=".$choices, LOG_DEBUG);
@@ -70,7 +70,7 @@ class Utils
$countdeleted = 0;
$counterror = 0;
- $choicesarray = explode(',', $choices);
+ $choicesarray = preg_split('/[\+,]/', $choices);
foreach ($choicesarray as $choice) {
$filesarray = array();
@@ -101,7 +101,7 @@ class Utils
}
}
- if ($choice == 'logfile')
+ if ($choice == 'logfile' || $choice == 'logfiles')
{
// Define files log
if ($dolibarr_main_data_root)
@@ -140,7 +140,7 @@ class Utils
}
} elseif ($filesarray[$key]['type'] == 'file') {
// If (file that is not logfile) or (if mode is logfile)
- if ($filesarray[$key]['fullname'] != $filelog || $choice == 'logfile')
+ if ($filesarray[$key]['fullname'] != $filelog || $choice == 'logfile' || $choice == 'logfiles')
{
$result = dol_delete_file($filesarray[$key]['fullname'], 1, 1);
if ($result)
diff --git a/htdocs/core/modules/modCron.class.php b/htdocs/core/modules/modCron.class.php
index deb140f76e4..62585333c1d 100644
--- a/htdocs/core/modules/modCron.class.php
+++ b/htdocs/core/modules/modCron.class.php
@@ -97,7 +97,7 @@ class modCron extends DolibarrModules
// Cronjobs
$this->cronjobs = array(
- 0=>array('entity'=>0, 'label'=>'PurgeDeleteTemporaryFilesShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'purgeFiles', 'parameters'=>'', 'comment'=>'PurgeDeleteTemporaryFiles', 'frequency'=>2, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>50, 'status'=>1, 'test'=>true),
+ 0=>array('entity'=>0, 'label'=>'PurgeDeleteTemporaryFilesShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'purgeFiles', 'parameters'=>'tempfilesold+logfiles', 'comment'=>'PurgeDeleteTemporaryFiles', 'frequency'=>2, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>50, 'status'=>1, 'test'=>true),
1=>array('entity'=>0, 'label'=>'MakeLocalDatabaseDumpShort', 'jobtype'=>'method', 'class'=>'core/class/utils.class.php', 'objectname'=>'Utils', 'method'=>'dumpDatabase', 'parameters'=>'none,auto,1,auto,10', 'comment'=>'MakeLocalDatabaseDump', 'frequency'=>1, 'unitfrequency'=>3600 * 24 * 7, 'priority'=>90, 'status'=>0, 'test'=>in_array($this->db->type, array('mysql', 'mysqli'))),
// 1=>array('entity'=>0, 'label'=>'My label', 'jobtype'=>'command', 'command'=>'', 'parameters'=>'', 'comment'=>'Comment', 'frequency'=>1, 'unitfrequency'=>3600*24)
);
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 35ba0390ad5..d211b5271a8 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -154,7 +154,7 @@ SystemToolsAreaDesc=This area provides administration functions. Use the menu to
Purge=Purge
PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not normally necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server.
PurgeDeleteLogFile=Delete log files, including %s defined for Syslog module (no risk of losing data)
-PurgeDeleteTemporaryFiles=Delete all log and temporary files (no risk of losing data). Note: Deletion of temporary files is done only if the temp directory was created more than 24 hours ago.
+PurgeDeleteTemporaryFiles=Delete all log and temporary files (no risk of losing data). Parameter can be 'tempfilesold', 'logfile' or both 'tempfilesold+logfiles'. Note: Deletion of temporary files is done only if the temp directory was created more than 24 hours ago.
PurgeDeleteTemporaryFilesShort=Delete log and temporary files
PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory: %s.
This will delete all generated documents related to elements (third parties, invoices etc...), files uploaded into the ECM module, database backup dumps and temporary files.
PurgeRunNow=Purge now
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 2cff05c65db..5506a96b5fe 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -154,7 +154,7 @@ SystemToolsAreaDesc=Cet espace offre des fonctions d'administration diverses. Ut
Purge=Purger
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 %s). L'utilisation de cette fonction n'est pas nécessaire. Elle est fournie pour les utilisateurs qui hébergent Dolibarr chez un hébergeur qui n'offre pas les permissions de supprimer les fichiers sauvegardés par le serveur Web.
PurgeDeleteLogFile=Effacer les fichiers de traces de debug, incluant %s défini dans le module 'Journaux et traces' (pas de risque de perte de données)
-PurgeDeleteTemporaryFiles=Effacer tous les fichiers de log et fichiers temporaires (pas de risque de perte de données). Note : La suppression s'applique aux fichiers supprimés depuis plus de 24 heures.
+PurgeDeleteTemporaryFiles=Effacer tous les fichiers de log et fichiers temporaires (pas de risque de perte de données). Le paramètre peut être 'tempfilesold', 'logfile' ou les 2 'tempfilesold+logfiles'. Note : La suppression s'applique aux fichiers supprimés depuis plus de 24 heures.
PurgeDeleteTemporaryFilesShort=Effacer les fichiers de log et fichiers temporaires
PurgeDeleteAllFilesInDocumentsDir=Effacer tous les fichiers du répertoire %s.
Les fichiers temporaires mais aussi les fichiers «dumps» de sauvegarde de base de données, les fichiers joints aux éléments (tiers, factures, ...) ou fichiers stockés dans le module GED seront irrémédiablement effacés.
PurgeRunNow=Lancer la purge maintenant