diff --git a/core/core.php b/core/core.php index 42aa8a8a..4972728c 100644 --- a/core/core.php +++ b/core/core.php @@ -34,7 +34,7 @@ class common { const TEMP_DIR = 'site/tmp/'; // Numéro de version - const ZWII_VERSION = '10.0.029.dev'; + const ZWII_VERSION = '10.0.030.dev'; public static $actions = []; public static $coreModuleIds = [ diff --git a/core/layout/common.css b/core/layout/common.css index db9be5bd..ca1c5977 100755 --- a/core/layout/common.css +++ b/core/layout/common.css @@ -145,6 +145,10 @@ img[align='right'] { margin-left: 10px; } +#metaImage { + height: 100px; +} + /* Signature dans les articles blog et news */ @@ -972,13 +976,14 @@ label { width: 88%; } .inputFileDelete { - display: inline-block; + display: block; width: 10%; padding: 10px 0; background: #F5F5F5; text-align: center; - /*float: right;*/ - min-height :100%; + float: right; + min-height :100%; + } .inputFile:hover { text-decoration: none; diff --git a/core/module/config/config.php b/core/module/config/config.php index a294f006..152a6d23 100755 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -20,7 +20,7 @@ class config extends common { 'generateFiles' => self::GROUP_ADMIN, 'updateRobots' => self::GROUP_ADMIN, 'index' => self::GROUP_ADMIN, - 'manage' => self::GROUP_ADMIN, + 'restore' => self::GROUP_ADMIN, 'updateBaseUrl' => self::GROUP_ADMIN ]; @@ -200,21 +200,29 @@ class config extends common { * Sauvegarde des données */ public function backup() { - // Creation du ZIP - $filter = $this->getInput('configBackupOption',helper::FILTER_BOOLEAN) === true ? ['backup','tmp'] : ['backup','tmp','file']; - $fileName = helper::autoBackup(self::TEMP_DIR,$filter); + // Soumission du formulaire + if($this->isPost()) { + // Creation du ZIP + $filter = $this->getInput('configBackupOption',helper::FILTER_BOOLEAN) === true ? ['backup','tmp'] : ['backup','tmp','file']; + $fileName = helper::autoBackup(self::TEMP_DIR,$filter); - // Téléchargement du ZIP - header('Content-Type: application/zip'); - header('Content-Disposition: attachment; filename="' . $fileName . '"'); - header('Content-Length: ' . filesize(self::TEMP_DIR . $fileName)); - readfile(self::TEMP_DIR . $fileName); - // Valeurs en sortie - $this->addOutput([ - 'display' => self::DISPLAY_RAW - ]); - unlink(self::TEMP_DIR . $fileName); - exit(); + // Téléchargement du ZIP + header('Content-Type: application/zip'); + header('Content-Disposition: attachment; filename="' . $fileName . '"'); + header('Content-Length: ' . filesize(self::TEMP_DIR . $fileName)); + readfile(self::TEMP_DIR . $fileName); + // Valeurs en sortie + $this->addOutput([ + 'display' => self::DISPLAY_RAW + ]); + unlink(self::TEMP_DIR . $fileName); + } else { + // Valeurs en sortie + $this->addOutput([ + 'title' => 'Sauvegarder', + 'view' => 'backup' + ]); + } } /** @@ -254,11 +262,11 @@ class config extends common { /** * Procédure d'importation */ - public function manage() { + public function restore() { // Soumission du formulaire if($this->isPost()) { - //if ($this->getInput('configManageImportFile')) - $fileZip = $this->getInput('configManageImportFile'); + //if ($this->getInput('configrestoreImportFile')) + $fileZip = $this->getInput('configRestoreImportFile'); $file_parts = pathinfo($fileZip); $folder = date('Y-m-d-h-i-s', time()); $zip = new ZipArchive(); @@ -266,7 +274,7 @@ class config extends common { // Valeurs en sortie erreur $this->addOutput([ 'notification' => 'Le fichier n\'est pas une archive valide', - 'redirect' => helper::baseUrl() . 'config/manage', + 'redirect' => helper::baseUrl() . 'config/restore', 'state' => false ]); } @@ -275,7 +283,7 @@ class config extends common { // Valeurs en sortie erreur $this->addOutput([ 'notification' => 'Impossible de lire l\'archive', - 'redirect' => helper::baseUrl() . 'config/manage', + 'redirect' => helper::baseUrl() . 'config/restore', 'state' => false ]); } @@ -300,14 +308,14 @@ class config extends common { // V10 valide user et config $version = '10'; // Option active, les users sont stockées - if ($this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true ) { + if ($this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true ) { $users = $this->getData(['user']); } } else { // Version invalide // Valeurs en sortie erreur $this->addOutput([ 'notification' => 'Cette archive n\'est pas une sauvegarde valide', - 'redirect' => helper::baseUrl() . 'config/manage', + 'redirect' => helper::baseUrl() . 'config/restore', 'state' => false ]); } @@ -315,7 +323,7 @@ class config extends common { // Préserver les comptes des utilisateurs d'une version 9 si option cochée // Positionnement d'une variable de session lue au constructeur if ($version === '9') { - $_SESSION['KEEP_USERS'] = $this->getInput('configManageImportUser', helper::FILTER_BOOLEAN); + $_SESSION['KEEP_USERS'] = $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN); } // Extraire le zip @@ -326,13 +334,13 @@ class config extends common { // Restaurer les users originaux d'une v10 si option cochée if (!empty($users) && $version === '10' && - $this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true) { + $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true) { $this->setData(['user',$users]); } // Message de notification $notification = $success === true ? 'Sauvegarde importée avec succès' : 'Erreur d\'extraction'; - $redirect = $this->getInput('configManageImportUser', helper::FILTER_BOOLEAN) === true ? helper::baseUrl() . 'config/manage' : helper::baseUrl() . 'user/login/'; + $redirect = $this->getInput('configRestoreImportUser', helper::FILTER_BOOLEAN) === true ? helper::baseUrl() . 'config/restore' : helper::baseUrl() . 'user/login/'; // Valeurs en sortie erreur $this->addOutput([ 'notification' => $notification, @@ -343,8 +351,8 @@ class config extends common { // Valeurs en sortie $this->addOutput([ - 'title' => 'Sauvegarder / Restaurer', - 'view' => 'manage' + 'title' => 'Restaurer', + 'view' => 'restore' ]); } @@ -475,7 +483,7 @@ class config extends common { // Valeurs en sortie $this->addOutput([ 'notification' => $success ? 'Conversion effectuée' : 'Aucune conversion', - 'redirect' => helper::baseUrl() . 'config/manage', + 'redirect' => helper::baseUrl() . 'config/restore', 'state' => $success ? true : false ]); } diff --git a/core/module/config/view/backup/backup.php b/core/module/config/view/backup/backup.php new file mode 100644 index 00000000..1d4716fc --- /dev/null +++ b/core/module/config/view/backup/backup.php @@ -0,0 +1,33 @@ + +
Une archive contenant le dossier /site/data est copiée dans le dossier \'site/backup\'. La sauvegarde est conservée pendant 30 jours.
Le contenu du gestionnaire de fichiers n\'est pas sauvegardé.
' +Une archive contenant le dossier /site/data est copiée dans le dossier \'site/backup\'. La sauvegarde est conservée pendant 30 jours.
Le contenu du gestionnaire de fichiers n\'est pas sauvegardé.
' + ]); ?> +