10.1 Sauvegarde du theme ou de l'admin

This commit is contained in:
Fred Tempez 2020-05-18 18:26:21 +02:00
parent 5647416cbc
commit 1475ff30fa
2 changed files with 73 additions and 43 deletions

View File

@ -639,7 +639,7 @@ class theme extends common {
*/
public function export() {
// Make zip
$zipFilename = $this->makezip();
$zipFilename = $this->makezip($this->getUrl(2));
// Téléchargement du ZIP
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
@ -657,7 +657,7 @@ class theme extends common {
*/
public function save() {
// Make zip
$zipFilename = $this->makezip();
$zipFilename = $this->makezip($this->getUrl(2));
// Téléchargement du ZIP
mkdir(self::FILE_DIR.'source/theme');
copy (self::TEMP_DIR . $zipFilename , self::FILE_DIR.'source/theme/' . $zipFilename);
@ -673,25 +673,33 @@ class theme extends common {
/**
* construction du zip
* @param string $modele theme ou admin
*/
public function makezip() {
public function makezip($modele) {
// Creation du dossier
// $zipFilename = 'theme-'.date('dmY').'-'.date('hm').'-'.rand(10,99).'.zip';
$zipFilename = 'theme '.date('d m Y').' '.date('H i s ').'.zip';
$zipFilename = $modele . ' ' .date('d m Y').' '.date('H i s ').'.zip';
$zip = new ZipArchive();
if ($zip->open(self::TEMP_DIR . $zipFilename, ZipArchive::CREATE | ZipArchive::OVERWRITE ) === TRUE) {
$zip->addFile(self::DATA_DIR.'theme.json',self::DATA_DIR.'theme.json');
$zip->addFile(self::DATA_DIR.'theme.css',self::DATA_DIR.'theme.css');
$zip->addFile(self::DATA_DIR.'custom.css',self::DATA_DIR.'custom.css');
if ($this->getData(['theme','body','image']) !== '' ) {
$zip->addFile(self::FILE_DIR.'source/'.$this->getData(['theme','body','image']),
self::FILE_DIR.'source/'.$this->getData(['theme','body','image'])
);
}
if ($this->getData(['theme','header','image']) !== '' ) {
$zip->addFile(self::FILE_DIR.'source/'.$this->getData(['theme','header','image']),
self::FILE_DIR.'source/'.$this->getData(['theme','header','image'])
);
switch ($modele) {
case 'admin':
$zip->addFile(self::DATA_DIR.'admin.json',self::DATA_DIR.'admin.json');
$zip->addFile(self::DATA_DIR.'admin.css',self::DATA_DIR.'admin.css');
break;
case 'theme':
$zip->addFile(self::DATA_DIR.'theme.json',self::DATA_DIR.'theme.json');
$zip->addFile(self::DATA_DIR.'theme.css',self::DATA_DIR.'theme.css');
$zip->addFile(self::DATA_DIR.'custom.css',self::DATA_DIR.'custom.css');
if ($this->getData(['theme','body','image']) !== '' ) {
$zip->addFile(self::FILE_DIR.'source/'.$this->getData(['theme','body','image']),
self::FILE_DIR.'source/'.$this->getData(['theme','body','image'])
);
}
if ($this->getData(['theme','header','image']) !== '' ) {
$zip->addFile(self::FILE_DIR.'source/'.$this->getData(['theme','header','image']),
self::FILE_DIR.'source/'.$this->getData(['theme','header','image'])
);
}
break;
}
$ret = $zip->close();
}

View File

@ -12,39 +12,61 @@
<div class="row">
<div class="col6">
<div class="block">
<h4>Appliquer un thème archivé</h4>
<div class="col10 offset1">
<?php echo template::file('themeManageImport', [
'label' => 'Archive ZIP :',
'type' => 2
]); ?>
<h4>Installer un thème archivé</h4>
<div class="row">
<div class="col12">
<?php echo template::file('themeManageImport', [
'label' => 'Archive ZIP :',
'type' => 2
]); ?>
</div>
</div>
<div class="col5 offset3">
<?php echo template::submit('themeImportSubmit', [
'value' => 'Appliquer'
]); ?>
<div class="row">
<div class="col5 offset3">
<?php echo template::submit('themeImportSubmit', [
'value' => 'Appliquer'
]); ?>
</div>
</div>
</div>
</div>
<div class="col6">
<div class="block">
<h4>Sauvegarder le thème</h4>
<div class="row">
<div class="col8 offset2">
<?php echo template::button('themeSave', [
'href' => helper::baseUrl() . 'theme/save',
'ico' => 'upload-cloud',
'value' => 'Sauvegarder dans les fichiers'
]); ?>
<div class="row">
<div class="col6">
<?php echo template::button('themeSave', [
'href' => helper::baseUrl() . 'theme/save/theme',
'ico' => 'download-cloud',
'value' => 'Thème site'
]); ?>
</div>
<div class="col6">
<?php echo template::button('themeSaveAdmin', [
'href' => helper::baseUrl() . 'theme/save/admin',
'ico' => 'download-cloud',
'value' => 'Thème administration'
]); ?>
</div>
</div>
</div>
<div class="row">
<div class="col8 offset2">
<?php echo template::button('themeExport', [
'href' => helper::baseUrl() . 'theme/export',
'ico' => 'download',
'value' => 'Télécharger'
]); ?>
<div class="block">
<h4>Télécharger le thème</h4>
<div class="row">
<div class="col6">
<?php echo template::button('themeExport', [
'href' => helper::baseUrl() . 'theme/export/theme',
'ico' => 'download',
'value' => 'Thème site'
]); ?>
</div>
<div class="col6">
<?php echo template::button('themeExport', [
'href' => helper::baseUrl() . 'theme/export/admin',
'ico' => 'download',
'value' => 'Thème administration'
]); ?>
</div>
</div>
</div>
</div>