diff --git a/modules/backups/actions.php b/modules/backups/actions.php index ff5d367ac..1d7da22bd 100755 --- a/modules/backups/actions.php +++ b/modules/backups/actions.php @@ -56,20 +56,16 @@ switch (filter('op')) { case 'backup': - $ignore_dirs = []; + $ignores = ['dirs' => [], 'files' => []]; - /*if (!empty(filter('ignore_dirs'))){ - $ignore_dirs = explode(',', filter('ignore_dirs')); - }*/ - if (filter('exclude') == 'exclude_attachments'){ - $ignore_dirs[] = 'files'; + $ignores = ['dirs' => ['files']]; }else if (filter('exclude') == 'only_database'){ - $ignore_dirs = ['vendor','update','templates','src','plugins','modules','logs','locale','lib','include','files','config','assets','api']; + $ignores = ['dirs' => ['vendor','update','templates','src','plugins','modules','logs','locale','lib','include','files','config','assets','api'], 'files' => ['*.php','*.md','*.json','*.js','*.xml','.*']]; } try { - $result = Backup::create($ignore_dirs); + $result = Backup::create($ignores); if ($result) { flash()->info(tr('Nuovo backup creato correttamente!')); diff --git a/src/Backup.php b/src/Backup.php index 53c332fc8..01ea55909 100755 --- a/src/Backup.php +++ b/src/Backup.php @@ -145,16 +145,16 @@ class Backup /** * Esegue il backup del progetto. * - * @param array $ignore_dirs Eventuali dirs da ignorare + * @param array $ignores eventuali dirs o files da ignorare * * @return bool */ - public static function create($ignore_dirs) + public static function create($ignores) { self::checkSpace(); $backup_dir = self::getDirectory(); - $backup_name = tr(self::getNextName(), [ 'AAAAAAA' => ($ignore_dirs)? 'PARTIAL' : 'FULL' ]); + $backup_name = tr(self::getNextName(), [ 'AAAAAAA' => ($ignores['dirs'] || $ignores['files'] )? 'PARTIAL' : 'FULL' ]); set_time_limit(0); @@ -162,8 +162,8 @@ class Backup $database_file = self::getDatabaseDirectory().'/database.sql'; self::database($database_file); - // Percorsi da ignorare di default - $ignores = [ + // Files e dirs da ignorare di default + $default_ignores = [ 'files' => [ 'config.inc.php', '*.lock', @@ -179,13 +179,9 @@ class Backup ], ]; - // Altri percorsi da ignorare - if ($ignore_dirs){ - foreach ((array) $ignore_dirs as $value) { - $ignores['dirs'][] = basename($value); - } - } + $ignores = array_merge_recursive($ignores, $default_ignores); + // Escludo la directory dei backup if (string_starts_with($backup_dir, slashes(base_dir()))) { $ignores['dirs'][] = basename($backup_dir); }