Browse Source

Option d'activation ou de suppression des fichiers back.json qui deviennent backup.json

Branche10.4
fredtempez 6 months ago
parent
commit
7be1dff6aa
  1. 4
      core/class/jsondb/JsonDb.class.php
  2. 20
      core/core.php
  3. 19
      core/module/config/config.php
  4. 6
      core/module/config/view/advanced/advanced.php
  5. 1
      core/module/install/ressource/defaultdata.php

4
core/class/jsondb/JsonDb.class.php

@ -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

20
core/core.php

@ -44,7 +44,7 @@ class common {
const ACCESS_TIMER = 1800;
// Numéro de version
const ZWII_VERSION = '10.4.00.011';
const ZWII_VERSION = '10.4.00.012';
const ZWII_UPDATE_CHANNEL = "v10";
public static $actions = [];
@ -168,10 +168,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' => '',
@ -198,13 +198,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'])
]);;
}
@ -1565,6 +1565,18 @@ class common {
$this->setData(['locale','metaDescription',$this->getData(['config','metaDescription'])]);
$this->setData(['locale','title',$this->getData(['config','title'])]);
// 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]);
/**

19
core/module/config/config.php

@ -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',

6
core/module/config/view/advanced/advanced.php

@ -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">

1
core/module/install/ressource/defaultdata.php

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

Loading…
Cancel
Save