[9.3.00] sauvegarde auto et manuelle
This commit is contained in:
parent
9b5ed2eb0d
commit
b1c04577c1
@ -1022,7 +1022,10 @@ class core extends common {
|
|||||||
if($lastClearTmp > $this->getData(['core', 'lastClearTmp']) + 86400) {
|
if($lastClearTmp > $this->getData(['core', 'lastClearTmp']) + 86400) {
|
||||||
$iterator = new DirectoryIterator(self::TEMP_DIR);
|
$iterator = new DirectoryIterator(self::TEMP_DIR);
|
||||||
foreach($iterator as $fileInfos) {
|
foreach($iterator as $fileInfos) {
|
||||||
if($fileInfos->isFile() AND $fileInfos->getBasename() !== '.gitkeep') {
|
if( $fileInfos->isFile() &&
|
||||||
|
$fileInfos->getBasename() !== '.htaccess' &&
|
||||||
|
$fileInfos->getBasename() !== '.gitkeep'
|
||||||
|
) {
|
||||||
@unlink($fileInfos->getPathname());
|
@unlink($fileInfos->getPathname());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1032,30 +1035,41 @@ class core extends common {
|
|||||||
$this->saveData();
|
$this->saveData();
|
||||||
}
|
}
|
||||||
// Backup automatique des données
|
// Backup automatique des données
|
||||||
$lastBackup = mktime(0, 0, 0);
|
$lastBackup = mktime(0, 0, 0);
|
||||||
if(
|
if(
|
||||||
$this->getData(['config', 'autoBackup'])
|
$this->getData(['config', 'autoBackup'])
|
||||||
AND $lastBackup > $this->getData(['core', 'lastBackup']) + 86400
|
AND $lastBackup > $this->getData(['core', 'lastBackup']) + 86400
|
||||||
AND $this->getData(['user']) // Pas de backup pendant l'installation
|
AND $this->getData(['user']) // Pas de backup pendant l'installation
|
||||||
) {
|
) {
|
||||||
// Copie du fichier de données
|
// Copie du fichier de données
|
||||||
copy(self::DATA_DIR.'core.json', self::BACKUP_DIR . date('Y-m-d', $lastBackup) . '.json');
|
// Creation du ZIP
|
||||||
// Date du dernier backup
|
$fileName = date('Y-m-d-h-i-s', time()) . '.zip';
|
||||||
$this->setData(['core', 'lastBackup', $lastBackup]);
|
$zip = new ZipArchive();
|
||||||
// Enregistre les données
|
if($zip->open(self::TEMP_DIR . $fileName, ZipArchive::CREATE) === TRUE){
|
||||||
$this->saveData();
|
foreach(core::scanDir('site/') as $file) {
|
||||||
// Supprime les backups de plus de 30 jours
|
$zip->addFile($file);
|
||||||
$iterator = new DirectoryIterator(self::BACKUP_DIR);
|
}
|
||||||
foreach($iterator as $fileInfos) {
|
}
|
||||||
if(
|
|
||||||
$fileInfos->isFile()
|
$zip->close();
|
||||||
AND $fileInfos->getBasename() !== '.htaccess'
|
copy(self::TEMP_DIR . $fileName, self::BACKUP_DIR . $fileName );
|
||||||
AND $fileInfos->getMTime() + (86400 * 30) < time()
|
unlink (self::TEMP_DIR . $fileName);
|
||||||
) {
|
// Date du dernier backup
|
||||||
@unlink($fileInfos->getPathname());
|
$this->setData(['core', 'lastBackup', $lastBackup]);
|
||||||
|
// Enregistre les données
|
||||||
|
$this->saveData();
|
||||||
|
// Supprime les backups de plus de 30 jours
|
||||||
|
$iterator = new DirectoryIterator(self::BACKUP_DIR);
|
||||||
|
foreach($iterator as $fileInfos) {
|
||||||
|
if(
|
||||||
|
$fileInfos->isFile()
|
||||||
|
AND $fileInfos->getBasename() !== '.htaccess'
|
||||||
|
AND $fileInfos->getMTime() + (86400 * 30) < time()
|
||||||
|
) {
|
||||||
|
@unlink($fileInfos->getPathname());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// Crée le fichier de personnalisation avancée
|
// Crée le fichier de personnalisation avancée
|
||||||
if(file_exists(self::DATA_DIR.'custom.css') === false) {
|
if(file_exists(self::DATA_DIR.'custom.css') === false) {
|
||||||
file_put_contents(self::DATA_DIR.'custom.css', file_get_contents('core/module/theme/resource/custom.css'));
|
file_put_contents(self::DATA_DIR.'custom.css', file_get_contents('core/module/theme/resource/custom.css'));
|
||||||
@ -1536,6 +1550,30 @@ class core extends common {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scan le contenu d'un dossier et de ses sous-dossiers
|
||||||
|
* @param string $dir Dossier à scanner
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public static function scanDir($dir) {
|
||||||
|
$dirContent = [];
|
||||||
|
$iterator = new DirectoryIterator($dir);
|
||||||
|
foreach($iterator as $fileInfos) {
|
||||||
|
if(in_array($fileInfos->getFilename(), ['.', '..', 'backup'])) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
elseif($fileInfos->isDir()) {
|
||||||
|
$dirContent = array_merge($dirContent, self::scanDir($fileInfos->getPathname()));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$dirContent[] = $fileInfos->getPathname();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $dirContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class helper {
|
class helper {
|
||||||
|
@ -204,7 +204,7 @@ class config extends common {
|
|||||||
$fileName = date('Y-m-d-h-i-s', time()) . '.zip';
|
$fileName = date('Y-m-d-h-i-s', time()) . '.zip';
|
||||||
$zip = new ZipArchive();
|
$zip = new ZipArchive();
|
||||||
if($zip->open(self::TEMP_DIR . $fileName, ZipArchive::CREATE) === TRUE){
|
if($zip->open(self::TEMP_DIR . $fileName, ZipArchive::CREATE) === TRUE){
|
||||||
foreach(configHelper::scanDir('site/') as $file) {
|
foreach(core::scanDir('site/') as $file) {
|
||||||
$zip->addFile($file);
|
$zip->addFile($file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -352,29 +352,3 @@ class config extends common {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class configHelper extends helper {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Scan le contenu d'un dossier et de ses sous-dossiers
|
|
||||||
* @param string $dir Dossier à scanner
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public static function scanDir($dir) {
|
|
||||||
$dirContent = [];
|
|
||||||
$iterator = new DirectoryIterator($dir);
|
|
||||||
foreach($iterator as $fileInfos) {
|
|
||||||
if(in_array($fileInfos->getFilename(), ['.', '..', 'backup'])) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
elseif($fileInfos->isDir()) {
|
|
||||||
$dirContent = array_merge($dirContent, self::scanDir($fileInfos->getPathname()));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$dirContent[] = $fileInfos->getPathname();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $dirContent;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user