Merge branch '10400' into 11000

This commit is contained in:
fredtempez 2021-01-06 19:32:36 +01:00
commit 1a5935815a
5 changed files with 36 additions and 12 deletions

View File

@ -132,8 +132,8 @@ class JsonDb extends \Prowebcraft\Dot
touch($this->db);
}
// Backup file
if ($this->config['backup']) {
copy ($this->db, str_replace('json' , 'back.json', $this->db));
if ($this->config['backup'] === true) {
copy ($this->db, str_replace('json' , 'backup.json', $this->db));
}
if ( is_writable($this->db) ) {
// 3 essais

View File

@ -169,10 +169,10 @@ class common {
// Descripteur de données Entrées / Sorties
// Liste ici tous les fichiers de données
private $dataFiles = [
'config' => '',
'page' => '',
'module' => '',
'core' => '',
'config' => '',
'page' => '',
'user' => '',
'theme' => '',
@ -203,13 +203,13 @@ class common {
}
// Instanciation de la classe des entrées / sorties
// Récupére les descripteurs
// Récupère les descripteurs
foreach ($this->dataFiles as $keys => $value) {
// Constructeur JsonDB
$this->dataFiles[$keys] = new \Prowebcraft\JsonDb([
'name' => $keys . '.json',
'dir' => $this->dataPath ($keys,self::$i18nCurrent),
'backup' => true
'backup' => $keys === 'config' ? true : $this->getData(['config','fileBackup'])
]);;
}
@ -1570,6 +1570,18 @@ class common {
$this->setData(['config','translate','it',false]);
$this->setData(['config','translate','nl',false]);
$this->setData(['config','translate','pt',false]);
// Renommer les fichier de backup
if ($this->getInput('configAdvancedFileBackup', helper::FILTER_BOOLEAN) === false) {
$path = realpath('site/data');
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $filename)
{
echo "$filename</br>";
if (strpos($filename,'back.json')) {
rename($filename, str_replace('back.json','backup.json',$filename));
}
}
}
$this->setData(['core', 'dataVersion', 10400]);

View File

@ -485,6 +485,7 @@ class config extends common {
[
'analyticsId' => $this->getInput('configAdvancedAnalyticsId'),
'autoBackup' => $this->getInput('configAdvancedAutoBackup', helper::FILTER_BOOLEAN),
'fileBackup' => $this->getInput('configAdvancedFileBackup', helper::FILTER_BOOLEAN),
'maintenance' => $this->getInput('configAdvancedMaintenance', helper::FILTER_BOOLEAN),
'cookieConsent' => $this->getInput('configAdvancedCookieConsent', helper::FILTER_BOOLEAN),
'favicon' => $this->getInput('configAdvancedFavicon'),
@ -525,7 +526,17 @@ class config extends common {
]
]
]);
// Efface les fichiers de backup lorsque l'option est désactivée
if ($this->getInput('configAdvancedFileBackup', helper::FILTER_BOOLEAN) === false) {
$path = realpath('site/data');
foreach (new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $filename)
{
if (strpos($filename,'backup.json')) {
unlink($filename);
}
}
}
// Notice
if(self::$inputNotices === []) {
// Active la réécriture d'URL
$rewrite = $this->getInput('rewrite', helper::FILTER_BOOLEAN);
@ -572,12 +583,6 @@ class config extends common {
'state' => $success
]);
}
// Initialisation du screen - APPEL AUTO DESACTIVE POUR EVITER UN RALENTISSEMENT
/*
if (!file_exists(self::FILE_DIR.'source/screenshot.jpg')) {
$this->configMetaImage();
}
*/
// Valeurs en sortie
$this->addOutput([
'title' => 'Configuration avancée',

View File

@ -101,6 +101,12 @@
'help' => '<p>Une archive contenant le dossier /site/data est copiée dans le dossier \'site/backup\'. La sauvegarde est conservée pendant 30 jours.</p><p>Les fichiers du site ne sont pas sauvegardés automatiquement.</p>'
]); ?>
</div>
<div class="col4">
<?php echo template::checkbox('configAdvancedFileBackup', true, 'Copie de sauvegarde', [
'checked' => $this->getData(['config', 'fileBackup']),
'help' => '<p>Un fichier .backup.json est généré à chaque édition ou effacement d\'une donnée. La désactivation entraîne la suppression de ces fichiers.</p>'
]); ?>
</div>
</div>
<div class="row">
<div class="col4">

View File

@ -4,6 +4,7 @@ class init extends common {
'config' => [
'analyticsId' => '',
'autoBackup' => true,
'fileBackup' => true,
'autoUpdate' => true,
'autoUpdateHtaccess' => false,
'cookieConsent' => true,