From 1a2238ff02746d4949a12c7ff924a0d0636efb27 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Thu, 17 Jan 2019 17:48:58 +0100 Subject: [PATCH] =?UTF-8?q?Correction=20:=20erreur=20zip=20download=20et?= =?UTF-8?q?=20libell=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/module/theme/theme.php | 59 ++++++++++-------------- core/module/theme/view/manage/manage.php | 14 +++--- 2 files changed, 31 insertions(+), 42 deletions(-) diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index 99737d17..a9d0a671 100755 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -480,25 +480,8 @@ class theme extends common { * Export du thème */ public function export() { - // Creation du dossier - $zipFilename = 'theme-'.date('dmYhms').'-'.rand(100,999).'.zip'; - $zip = new ZipArchive(); - if ($zip->open('site/tmp/' . $zipFilename, ZipArchive::CREATE | ZipArchive::OVERWRITE ) === TRUE) { - $zip->addFile('site/data/theme.json','site/data/theme.json'); - $zip->addFile('site/data/theme.json','site/data/theme.css'); - $zip->addFile('site/data/theme.json','site/data/custom.css'); - if ($this->getData(['theme','body','image']) !== '' ) { - $zip->addFile('site/file/source/'.$this->getData(['theme','body','image']), - 'site/file/source/'.$this->getData(['theme','body','image']) - ); - } - if ($this->getData(['theme','header','image']) !== '' ) { - $zip->addFile('site/file/source/'.$this->getData(['theme','header','image']), - 'site/file/source/'.$this->getData(['theme','header','image']) - ); - } - $ret = $zip->close(); - } + // Make zip + $zipFilename = $this->makezip(); // Téléchargement du ZIP header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); @@ -508,18 +491,33 @@ class theme extends common { readfile('site/tmp/' . $zipFilename); // Nettoyage du dossier unlink ('site/tmp/' . $zipFilename); - // Valeurs en sortie - $this->addOutput([ - 'display' => self::DISPLAY_RAW - ]); + die(); } /** * Export du thème */ public function save() { + // Make zip + $zipFilename = $this->makezip(); + // Téléchargement du ZIP + copy ('site/tmp/' . $zipFilename , 'site/file/source/' . $zipFilename); + // Nettoyage du dossier + unlink ('site/tmp/' . $zipFilename); + // Valeurs en sortie + $this->addOutput([ + 'notification' => 'Archive '.$zipFilename.' sauvegardée dans fichiers', + 'redirect' => helper::baseUrl() . 'theme/manage', + 'state' => true + ]); + } + + /** + * construction du zip + */ + public function makezip() { // Creation du dossier - $zipFilename = 'theme-'.date('dmYhms').'-'.rand(100,999).'.zip'; + $zipFilename = 'theme-'.date('dmY').'-'.date('hm').'-'.rand(10,99).'.zip'; $zip = new ZipArchive(); if ($zip->open('site/tmp/' . $zipFilename, ZipArchive::CREATE | ZipArchive::OVERWRITE ) === TRUE) { $zip->addFile('site/data/theme.json','site/data/theme.json'); @@ -537,16 +535,7 @@ class theme extends common { } $ret = $zip->close(); } - // Téléchargement du ZIP - copy ('site/tmp/' . $zipFilename , 'site/file/source/' . $zipFilename); - // Nettoyage du dossier - unlink ('site/tmp/' . $zipFilename); - // Valeurs en sortie - $this->addOutput([ - 'notification' => 'Archive '.$zipFilename.' sauvegardée dans fichiers', - 'redirect' => helper::baseUrl() . 'theme/manage', - 'state' => true - ]); - } + return ($zipFilename); + } } diff --git a/core/module/theme/view/manage/manage.php b/core/module/theme/view/manage/manage.php index 10ebb476..92228d64 100644 --- a/core/module/theme/view/manage/manage.php +++ b/core/module/theme/view/manage/manage.php @@ -12,9 +12,9 @@
-

Importer les données du thème

+

Importer

'Archive à importer', + 'label' => 'Archive', 'type' => 2 ]); ?>
@@ -26,23 +26,23 @@
-

Enregistrer les données du thème

+

Exporter

helper::baseUrl() . 'theme/save', - 'value' => 'Sauvegarder le thème dans les fichiers' + 'value' => 'Sauvegarder' ]); ?>
helper::baseUrl() . 'theme/export', - 'value' => 'Télécharger une archive du thème' + 'value' => 'Télécharger' ]); ?>
- L'archive ZIP contient la structure du thème avec l'arborescence complète à copier dans le dossier site. Les images sont comprises dans l'archive. -

Le nom du thème est généré à partir du groupe date heure et d'un nombre aléatoire. + L'archive ZIP contient un dossier "site" à copier à la racine du répertoire d'installation de ZwiiCMS. Il comprend les données du thème et les images qu'il utilise le cas échéant. +

Le nom du thème est généré automatiquement à partir de la date et de l'heure de son enregistrement et d'un nombre aléatoire.