diff --git a/modules/backups/actions.php b/modules/backups/actions.php
index b2eb2fed1..c676e2085 100755
--- a/modules/backups/actions.php
+++ b/modules/backups/actions.php
@@ -2,8 +2,6 @@
include_once __DIR__.'/../../core.php';
-$backup_dir = Backup::getDirectory();
-
switch (filter('op')) {
case 'getfile':
$number = filter('number');
@@ -53,8 +51,7 @@ switch (filter('op')) {
$number = intval($number);
$backups = Backup::getList();
- $backup = $backups[$number];
- $filename = basename($backup);
+ $backup = $backups[$number] ?: $backup_dir;
echo Util\FileSystem::size($backup);
diff --git a/modules/backups/edit.php b/modules/backups/edit.php
index 053369948..4ffb1ac9c 100755
--- a/modules/backups/edit.php
+++ b/modules/backups/edit.php
@@ -2,11 +2,9 @@
include_once __DIR__.'/../../core.php';
-$backup_dir = Backup::getDirectory();
$backups = Backup::getList();
-echo '
'.tr('Il backup è molto importante perché permette di creare una copia della propria installazione e relativi dati per poterla poi ripristinare in seguito a errori, cancellazioni accidentali o guasti hardware').'.
';
-
+// Controllo sul requisito ZIP
if (!extension_loaded('zip')) {
echo "
@@ -15,27 +13,33 @@ if (!extension_loaded('zip')) {
';
}
-if (starts_with($backup_dir, $docroot)) {
+if (!empty($backup_dir)) {
+ $message = tr('Il percorso di backup è attualmente in: _PATH_', [
+ '_PATH_' => ''.slashes($backup_dir).'',
+ ]);
+} else {
+ $message = tr('Sembra che tu non abbia ancora specificato un percorso per il backup').'.';
+}
+
+// Controllo sui permessi di scrittura
+if (!is_writable($backup_dir) || !is_readable($backup_dir)) {
+ echo '
+
+ '.$message.'
'.tr('La cartella di backup indicata non è utilizzabile dal gestionale a causa di alcuni permessi di scrittura non impostati correttamente').'.
+
';
+
+ return;
+}
+
+echo ''.tr('Il backup è molto importante perché permette di creare una copia della propria installazione e relativi dati per poterla poi ripristinare in seguito a errori, cancellazioni accidentali o guasti hardware').'.
';
+
+if (starts_with($backup_dir, DOCROOT)) {
echo '
'.tr('Per motivi di sicurezza si consiglia di modificare il percorso della cartella di backup al di fuori della cartella di OSM, possibilmente in una unità esterna').'.
';
}
-if (!is_writable($backup_dir)) {
- echo '
-
- '.tr('La cartella di backup presente nella configurazione non è utilizzabile dal gestionale').'.
- '.tr('Verificare che la cartella abbia i permessi di scrittura abilitati').'.
-
';
-}
-
-if (!empty($backup_dir)) {
- $message = tr('Il percorso di backup è attualmente in').': '.slashes($backup_dir).'';
-} else {
- $message = tr('Sembra che tu non abbia ancora specificato un percorso per il backup').'.';
-}
-
// Operazioni JavaScript
echo '
';
@@ -158,7 +162,7 @@ if (file_exists($backup_dir)) {
if (empty($backups_zip) && empty($backups_file)) {
echo '
-
+
'.tr('Non è ancora stato trovato alcun backup!').'
'.tr('Se hai già inserito dei dati su OSM crealo il prima possibile...').'
';
@@ -186,11 +190,11 @@ if (file_exists($backup_dir)) {
'.tr('Nome del file').': '.$name.'
'.tr('Dimensione').':
-
+
-
+
'.tr('Scarica').'
@@ -236,7 +240,7 @@ if (file_exists($backup_dir)) {
'.tr('Nome del file').': '.$name.'
'.tr('Dimensione').':
-
+
diff --git a/modules/backups/init.php b/modules/backups/init.php
index dab6a26ee..acc0f251e 100644
--- a/modules/backups/init.php
+++ b/modules/backups/init.php
@@ -4,6 +4,5 @@ include_once __DIR__.'/../../core.php';
try {
$backup_dir = Backup::getDirectory();
-}catch (UnexpectedValueException $e){
-
+} catch (UnexpectedValueException $e) {
}
diff --git a/src/Backup.php b/src/Backup.php
index bf3874551..15f9c9c7d 100755
--- a/src/Backup.php
+++ b/src/Backup.php
@@ -29,7 +29,7 @@ class Backup
$result = rtrim($result, '/');
if (!directory($result) || !is_writable($result)) {
- throw new UnexpectedValueException();
+ //throw new UnexpectedValueException();
}
return slashes($result);
@@ -44,6 +44,11 @@ class Backup
*/
public static function getList($pattern = null)
{
+ $directory = self::getDirectory();
+ if (!is_writable($directory) || !is_readable($directory)) {
+ return [];
+ }
+
// Costruzione del pattern
if (empty($pattern)) {
$replaces = self::getReplaces();
@@ -56,7 +61,7 @@ class Backup
$backups = Symfony\Component\Finder\Finder::create()
->name('/^'.$pattern.'/')
->sortByName()
- ->in(self::getDirectory())
+ ->in($directory)
->depth('== 0');
$results = [];