From 3eba28b61f5dad8275a9dd045e537a410c0c1af0 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Mon, 24 Dec 2018 19:48:14 +0100 Subject: [PATCH] v9.0.0 : import data from version 8 --- core/core.php | 81 +++++++++++++++-------- core/module/install/install.php | 2 +- core/vendor/filemanager/config/config.php | 2 +- 3 files changed, 54 insertions(+), 31 deletions(-) diff --git a/core/core.php b/core/core.php index ad9bc6bc..c44a9fa1 100644 --- a/core/core.php +++ b/core/core.php @@ -65,11 +65,9 @@ class common { ], 'page' => [ 'accueil' => [ - // menu image 'typeMenu' => 'text', 'iconUrl' => '', 'disable' => false, - // menu image 'content' => "

Bienvenue sur votre nouveau site Zwii !

\r\n

Un email contenant le récapitulatif de votre installation vient de vous être envoyé.

\r\n

Connectez-vous dès maintenant à votre espace membre afin de créer un site à votre image ! Vous allez pouvoir personnaliser le thème, créer des pages, ajouter des utilisateurs et bien plus encore !

\r\n

Si vous avez besoin d'aide ou si vous cherchez des informations sur Zwii, n'hésitez pas à jeter un œil à notre forum.

", 'hideTitle' => false, 'metaDescription' => '', @@ -83,11 +81,9 @@ class common { 'title' => 'Accueil' ], 'enfant' => [ - // menu image 'typeMenu' => 'text', 'iconUrl' => '', 'disable' => false, - // menu image 'content' => "

Vous pouvez assigner des parents à vos pages afin de mieux organiser votre menu !

\r\n
\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

\r\n
\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

\r\n
\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

\r\n
\r\n
", 'hideTitle' => false, 'metaDescription' => '', @@ -101,11 +97,10 @@ class common { 'title' => 'Enfant' ], 'cachee' => [ - // menu image 'typeMenu' => 'text', 'iconUrl' => '', 'disable' => false, - // menu image + 'content' => "

Cette page n'est visible que par les membres de votre site !

\r\n
\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

\r\n
\r\n
\r\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam interdum, neque non vulputate hendrerit, arcu turpis dapibus nisl, id scelerisque metus lectus vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec feugiat dolor et turpis finibus condimentum. Cras sit amet ligula sagittis justo.

\r\n
r\n
", 'hideTitle' => false, 'metaDescription' => '', @@ -119,11 +114,9 @@ class common { 'title' => 'Cachée' ], 'blog' => [ - // menu image 'typeMenu' => 'text', 'iconUrl' => '', 'disable' => false, - // menu image 'content' => "

Cette page contient une instance du module de blog. Cliquez sur un article afin de le lire et de poster des commentaires.

", 'hideTitle' => false, 'metaDescription' => '', @@ -153,11 +146,9 @@ class common { 'title' => 'Galeries' ], 'site-de-zwii' => [ - 'typeMenu' => 'text', 'iconUrl' => '', 'disable' => false, - 'content' => "", 'hideTitle' => false, 'metaDescription' => '', @@ -171,11 +162,9 @@ class common { 'title' => 'Site de Zwii' ], 'contact' => [ - 'typeMenu' => 'text', 'iconUrl' => '', 'disable' => false, - 'content' => "

Cette page contient un exemple de formulaire conçu à partir du module de génération de formulaires. Il est configuré pour envoyer les données saisies par mail aux administrateurs du site.

", 'hideTitle' => false, 'metaDescription' => '', @@ -294,7 +283,7 @@ class common { ] ] ], - 'user' => [], + 'user' => [], 'theme' => [ 'body' => [ 'backgroundColor' => 'rgba(236, 239, 241, 1)', @@ -454,20 +443,22 @@ class common { $this->input['_COOKIE'] = $_COOKIE; } - // Génère le fichier de donnée - if(file_exists('site/data/data.json') === false || - file_exists('site/data/theme.json') === false ) { + // Génère le fichier de données lorque les deux fichiers sont absents ou seulement le thème est - installation fraîche par défaut + if(file_exists('site/data/core.json') === false OR + file_exists('site/data/theme.json') === false) { $this->setData([$this->defaultData]); $this->saveData(); - chmod('site/data/data.json', 0755); - chmod('site/data/theme.json', 0755); - } + chmod('site/data/core.json', 0755); + chmod('site/data/theme.json', 0755); + } + + $this->importdata(); // Import des données if($this->data === []) { // Trois tentatives for($i = 0; $i < 3; $i++) { - $this->setData([json_decode(file_get_contents('site/data/data.json'), true) + json_decode(file_get_contents('site/data/theme.json'), true)]); + $this->setData([json_decode(file_get_contents('site/data/core.json'), true) + json_decode(file_get_contents('site/data/theme.json'), true)]); if($this->data) { break; } @@ -545,6 +536,37 @@ class common { } } + + /** + * Import des données du la version 8 + * + */ + public function importData() { + if(file_exists('site/data/data.json')) { + // Trois tentatives + for($i = 0; $i < 3; $i++) { + $tempData = [json_decode(file_get_contents('site/data/data.json'), true)]; + if($tempData) { + for($i = 0; $i < 3; $i++) { + if(file_put_contents('site/data/theme.json', json_encode($tempData), LOCK_EX) !== false) { + break; + } + // Pause de 10 millisecondes + usleep(10000); + } + // Effacer ou renommer le fichier data.json + break; + } + elseif($i === 2) { + exit('Unable to read data file.'); + } + // Pause de 10 millisecondes + usleep(10000); + } + + } + } + /** * Ajoute les valeurs en sortie * @param array $output Valeurs en sortie @@ -794,7 +816,7 @@ class common { // 5 premières clés principales // Trois tentatives for($i = 0; $i < 3; $i++) { - if(file_put_contents('site/data/data.json', json_encode(array_slice($this->getData(),0,5)) , LOCK_EX) !== false) { + if(file_put_contents('site/data/core.json', json_encode(array_slice($this->getData(),0,5)) , LOCK_EX) !== false) { break; } // Pause de 10 millisecondes @@ -1005,7 +1027,7 @@ class core extends common { AND $this->getData(['user']) // Pas de backup pendant l'installation ) { // Copie du fichier de données - copy('site/data/data.json', 'site/backup/' . date('Y-m-d', $lastBackup) . '.json'); + copy('site/data/core.json', 'site/backup/' . date('Y-m-d', $lastBackup) . '.json'); // Date du dernier backup $this->setData(['core', 'lastBackup', $lastBackup]); // Enregistre les données @@ -2127,16 +2149,17 @@ class layout extends common { $rightItems = ''; if($this->getUser('group') >= self::GROUP_MODERATOR) { - $rightItems .= '
  • ' . template::ico('folder') . '
  • '; + $rightItems .= '
  • ' . template::ico('folder') . '
  • '; } if($this->getUser('group') >= self::GROUP_ADMIN) { $rightItems .= '
  • ' . template::ico('users') . '
  • '; $rightItems .= '
  • ' . template::ico('brush') . '
  • '; $rightItems .= '
  • ' . template::ico('gear') . '
  • '; - - if(helper::checkNewVersion()) { - $rightItems .= '
  • ' . template::ico('update colorRed') . '
  • '; - } + // UA + // if(helper::checkNewVersion()) { + // $rightItems .= '
  • ' . template::ico('update colorRed') . '
  • '; + // } + // UA } $rightItems .= '
  • ' . template::ico('user', 'right') . $this->getUser('firstname') . ' ' . $this->getUser('lastname') . '
  • '; $rightItems .= '
  • ' . template::ico('logout') . '
  • '; @@ -2217,7 +2240,7 @@ class layout extends common { $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') AND $this->getUser('group') >= self::GROUP_MODERATOR ) { - $vars .= 'var privateKey = ' . json_encode(md5_file('site/data/data.json')) . ';'; + $vars .= 'var privateKey = ' . json_encode(md5_file('site/data/core.json')) . ';'; } echo ''; // Librairies @@ -2505,7 +2528,7 @@ class template { '?relative_url=1' . '&field_id=' . $attributes['id'] . '&type=' . $attributes['type'] . - '&akey=' . md5_file('site/data/data.json') . + '&akey=' . md5_file('site/data/core.json') . ($attributes['extensions'] ? '&extensions=' . $attributes['extensions'] : '') . '" class="inputFile %s %s" diff --git a/core/module/install/install.php b/core/module/install/install.php index 2039bbb9..5f725db8 100755 --- a/core/module/install/install.php +++ b/core/module/install/install.php @@ -97,7 +97,7 @@ class install extends common { case 1: $success = true; // Copie du fichier de données - copy('site/data/data.json', 'site/backup/' . date('Y-m-d', time()) . '-update.json'); + copy('site/data/core.json', 'site/backup/' . date('Y-m-d', time()) . '-update.json'); // Nettoyage des fichiers temporaires if(file_exists('site/tmp/update.tar.gz')) { $success = unlink('site/tmp/update.tar.gz'); diff --git a/core/vendor/filemanager/config/config.php b/core/vendor/filemanager/config/config.php index 1008b081..fd6b13fa 100755 --- a/core/vendor/filemanager/config/config.php +++ b/core/vendor/filemanager/config/config.php @@ -30,7 +30,7 @@ setlocale(LC_CTYPE, 'fr_FR'); //correct transliteration */ define('USE_ACCESS_KEYS', true); // TRUE or FALSE -$privateKey = md5_file('../../../site/data/data.json'); +$privateKey = md5_file('../../../site/data/core.json'); /* |--------------------------------------------------------------------------