forked from ZwiiCMS-Team/ZwiiCMS
Bug sauvegarde plugins
This commit is contained in:
parent
befbd1438d
commit
b72f16cb52
@ -580,7 +580,7 @@ class plugin extends common
|
|||||||
]);
|
]);
|
||||||
} else {
|
} else {
|
||||||
// Créer un dossier temporaire
|
// Créer un dossier temporaire
|
||||||
$tmpFolder = self::TEMP_DIR . uniqid();
|
$tmpFolder = self::TEMP_DIR . uniqid() . '/';
|
||||||
if (!is_dir($tmpFolder)) {
|
if (!is_dir($tmpFolder)) {
|
||||||
mkdir($tmpFolder, 0755);
|
mkdir($tmpFolder, 0755);
|
||||||
}
|
}
|
||||||
@ -590,21 +590,19 @@ class plugin extends common
|
|||||||
|
|
||||||
// Descripteur de l'archive
|
// Descripteur de l'archive
|
||||||
$infoModule = helper::getModules();
|
$infoModule = helper::getModules();
|
||||||
//Nom de l'archive
|
|
||||||
$fileName = $moduleId . $infoModule[$moduleId]['version'] . '.zip';
|
|
||||||
|
|
||||||
// Régénération du module
|
//Nom de l'archive
|
||||||
$success = file_put_contents(self::MODULE_DIR . $moduleId . '/enum.json', json_encode($infoModule[$moduleId], JSON_UNESCAPED_UNICODE));
|
$fileName = $moduleId . str_replace('.', '-', $infoModule[$moduleId]['version']) . '.zip';
|
||||||
|
|
||||||
|
// Régénération du descripteur du module
|
||||||
|
file_put_contents(self::MODULE_DIR . $moduleId . '/enum.json', json_encode($infoModule[$moduleId], JSON_UNESCAPED_UNICODE));
|
||||||
|
|
||||||
// Construire l'archive
|
// Construire l'archive
|
||||||
$this->makeZip(self::TEMP_DIR . $fileName, self::MODULE_DIR . $moduleId);
|
$this->makeZip( $tmpFolder . $fileName, self::MODULE_DIR . $moduleId);
|
||||||
|
|
||||||
switch ($action) {
|
switch ($action) {
|
||||||
case 'filemanager':
|
case 'filemanager':
|
||||||
if (!file_exists(self::FILE_DIR . 'source/modules')) {
|
$success = copy($tmpFolder . $fileName, self::FILE_DIR . 'source/modules/' . $fileName );
|
||||||
mkdir(self::FILE_DIR . 'source/modules');
|
|
||||||
}
|
|
||||||
$success = $success || copy(self::TEMP_DIR . $fileName, self::FILE_DIR . 'source/modules/' . $moduleId . '.zip');
|
|
||||||
|
|
||||||
// Valeurs en sortie
|
// Valeurs en sortie
|
||||||
$this->addOutput([
|
$this->addOutput([
|
||||||
@ -612,24 +610,20 @@ class plugin extends common
|
|||||||
'notification' => $success ? helper::translate('Archive copiée dans le dossier Modules du gestionnaire de fichier') : helper::translate('Erreur de copie'),
|
'notification' => $success ? helper::translate('Archive copiée dans le dossier Modules du gestionnaire de fichier') : helper::translate('Erreur de copie'),
|
||||||
'state' => $success
|
'state' => $success
|
||||||
]);
|
]);
|
||||||
// Nettoyage
|
|
||||||
unlink(self::TEMP_DIR . $fileName);
|
|
||||||
$this->removeDir($tmpFolder);
|
|
||||||
break;
|
break;
|
||||||
case 'download':
|
case 'download':
|
||||||
default:
|
|
||||||
|
|
||||||
// Téléchargement du ZIP
|
// Téléchargement du ZIP
|
||||||
header('Content-Description: File Transfer');
|
header('Content-Description: File Transfer');
|
||||||
header('Content-Type: application/octet-stream');
|
header('Content-Type: application/octet-stream');
|
||||||
header('Content-Transfer-Encoding: binary');
|
header('Content-Transfer-Encoding: binary');
|
||||||
header('Content-Disposition: attachment; filename="' . $fileName . '"');
|
header('Content-Disposition: attachment; filename="' . $fileName . '"');
|
||||||
header('Content-Length: ' . filesize(self::TEMP_DIR . $fileName));
|
header('Content-Length: ' . filesize($tmpFolder. $fileName));
|
||||||
readfile(self::TEMP_DIR . $fileName);
|
readfile($tmpFolder . $fileName);
|
||||||
// Nettoyage du dossier
|
|
||||||
unlink(self::TEMP_DIR . $fileName);
|
|
||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
// Nettoyage
|
||||||
|
unlink(self::TEMP_DIR . $fileName);
|
||||||
|
$this->removeDir($tmpFolder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user