v9.0.0 : import data from version 8

This commit is contained in:
fredtempez 2018-12-24 19:48:14 +01:00
parent 8238f31e67
commit 3eba28b61f
3 changed files with 54 additions and 31 deletions

View File

@ -65,11 +65,9 @@ class common {
], ],
'page' => [ 'page' => [
'accueil' => [ 'accueil' => [
// menu image
'typeMenu' => 'text', 'typeMenu' => 'text',
'iconUrl' => '', 'iconUrl' => '',
'disable' => false, 'disable' => false,
// menu image
'content' => "<h3>Bienvenue sur votre nouveau site Zwii !</h3>\r\n<p><strong>Un email contenant le récapitulatif de votre installation vient de vous être envoyé.</strong></p>\r\n<p>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 !</p>\r\n<p>Si vous avez besoin d'aide ou si vous cherchez des informations sur Zwii, n'hésitez pas à jeter un œil à notre <a title=\"Forum\" href=\"http://forum.zwiicms.com/\">forum</a>.</p>", 'content' => "<h3>Bienvenue sur votre nouveau site Zwii !</h3>\r\n<p><strong>Un email contenant le récapitulatif de votre installation vient de vous être envoyé.</strong></p>\r\n<p>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 !</p>\r\n<p>Si vous avez besoin d'aide ou si vous cherchez des informations sur Zwii, n'hésitez pas à jeter un œil à notre <a title=\"Forum\" href=\"http://forum.zwiicms.com/\">forum</a>.</p>",
'hideTitle' => false, 'hideTitle' => false,
'metaDescription' => '', 'metaDescription' => '',
@ -83,11 +81,9 @@ class common {
'title' => 'Accueil' 'title' => 'Accueil'
], ],
'enfant' => [ 'enfant' => [
// menu image
'typeMenu' => 'text', 'typeMenu' => 'text',
'iconUrl' => '', 'iconUrl' => '',
'disable' => false, 'disable' => false,
// menu image
'content' => "<p>Vous pouvez assigner des parents à vos pages afin de mieux organiser votre menu !</p>\r\n<div class=\"row\">\r\n<div class=\"col4\">\r\n<p>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.</p>\r\n</div>\r\n<div class=\"col4\">\r\n<p>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.</p>\r\n</div>\r\n<div class=\"col4\">\r\n<p>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.</p>\r\n</div>\r\n</div>", 'content' => "<p>Vous pouvez assigner des parents à vos pages afin de mieux organiser votre menu !</p>\r\n<div class=\"row\">\r\n<div class=\"col4\">\r\n<p>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.</p>\r\n</div>\r\n<div class=\"col4\">\r\n<p>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.</p>\r\n</div>\r\n<div class=\"col4\">\r\n<p>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.</p>\r\n</div>\r\n</div>",
'hideTitle' => false, 'hideTitle' => false,
'metaDescription' => '', 'metaDescription' => '',
@ -101,11 +97,10 @@ class common {
'title' => 'Enfant' 'title' => 'Enfant'
], ],
'cachee' => [ 'cachee' => [
// menu image
'typeMenu' => 'text', 'typeMenu' => 'text',
'iconUrl' => '', 'iconUrl' => '',
'disable' => false, 'disable' => false,
// menu image
'content' => "<p>Cette page n'est visible que par les membres de votre site !</p>\r\n<div class=\"row\">\r\n<div class=\"col6\">\r\n<p>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.</p>\r\n</div>\r\n<div class=\"col6\">\r\n<p>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.</p>\r\n</div>r\n</div>", 'content' => "<p>Cette page n'est visible que par les membres de votre site !</p>\r\n<div class=\"row\">\r\n<div class=\"col6\">\r\n<p>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.</p>\r\n</div>\r\n<div class=\"col6\">\r\n<p>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.</p>\r\n</div>r\n</div>",
'hideTitle' => false, 'hideTitle' => false,
'metaDescription' => '', 'metaDescription' => '',
@ -119,11 +114,9 @@ class common {
'title' => 'Cachée' 'title' => 'Cachée'
], ],
'blog' => [ 'blog' => [
// menu image
'typeMenu' => 'text', 'typeMenu' => 'text',
'iconUrl' => '', 'iconUrl' => '',
'disable' => false, 'disable' => false,
// menu image
'content' => "<p>Cette page contient une instance du module de blog. Cliquez sur un article afin de le lire et de poster des commentaires.</p>", 'content' => "<p>Cette page contient une instance du module de blog. Cliquez sur un article afin de le lire et de poster des commentaires.</p>",
'hideTitle' => false, 'hideTitle' => false,
'metaDescription' => '', 'metaDescription' => '',
@ -153,11 +146,9 @@ class common {
'title' => 'Galeries' 'title' => 'Galeries'
], ],
'site-de-zwii' => [ 'site-de-zwii' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
'iconUrl' => '', 'iconUrl' => '',
'disable' => false, 'disable' => false,
'content' => "", 'content' => "",
'hideTitle' => false, 'hideTitle' => false,
'metaDescription' => '', 'metaDescription' => '',
@ -171,11 +162,9 @@ class common {
'title' => 'Site de Zwii' 'title' => 'Site de Zwii'
], ],
'contact' => [ 'contact' => [
'typeMenu' => 'text', 'typeMenu' => 'text',
'iconUrl' => '', 'iconUrl' => '',
'disable' => false, 'disable' => false,
'content' => "<p>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.</p>", 'content' => "<p>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.</p>",
'hideTitle' => false, 'hideTitle' => false,
'metaDescription' => '', 'metaDescription' => '',
@ -454,20 +443,22 @@ class common {
$this->input['_COOKIE'] = $_COOKIE; $this->input['_COOKIE'] = $_COOKIE;
} }
// Génère le fichier de donnée // 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/data.json') === false || if(file_exists('site/data/core.json') === false OR
file_exists('site/data/theme.json') === false ) { file_exists('site/data/theme.json') === false) {
$this->setData([$this->defaultData]); $this->setData([$this->defaultData]);
$this->saveData(); $this->saveData();
chmod('site/data/data.json', 0755); chmod('site/data/core.json', 0755);
chmod('site/data/theme.json', 0755); chmod('site/data/theme.json', 0755);
} }
$this->importdata();
// Import des données // Import des données
if($this->data === []) { if($this->data === []) {
// Trois tentatives // Trois tentatives
for($i = 0; $i < 3; $i++) { 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) { if($this->data) {
break; 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 * Ajoute les valeurs en sortie
* @param array $output Valeurs en sortie * @param array $output Valeurs en sortie
@ -794,7 +816,7 @@ class common {
// 5 premières clés principales // 5 premières clés principales
// Trois tentatives // Trois tentatives
for($i = 0; $i < 3; $i++) { 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; break;
} }
// Pause de 10 millisecondes // Pause de 10 millisecondes
@ -1005,7 +1027,7 @@ class core extends common {
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('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 // Date du dernier backup
$this->setData(['core', 'lastBackup', $lastBackup]); $this->setData(['core', 'lastBackup', $lastBackup]);
// Enregistre les données // Enregistre les données
@ -2127,16 +2149,17 @@ class layout extends common {
$rightItems = ''; $rightItems = '';
if($this->getUser('group') >= self::GROUP_MODERATOR) { if($this->getUser('group') >= self::GROUP_MODERATOR) {
$rightItems .= '<li><a href="' . helper::baseUrl(false) . 'core/vendor/filemanager/dialog.php?type=0&akey=' . md5_file('site/data/data.json') .'" title="Gérer les fichiers" data-lity>' . template::ico('folder') . '</a></li>'; $rightItems .= '<li><a href="' . helper::baseUrl(false) . 'core/vendor/filemanager/dialog.php?type=0&akey=' . md5_file('site/data/core.json') .'" title="Gérer les fichiers" data-lity>' . template::ico('folder') . '</a></li>';
} }
if($this->getUser('group') >= self::GROUP_ADMIN) { if($this->getUser('group') >= self::GROUP_ADMIN) {
$rightItems .= '<li><a href="' . helper::baseUrl() . 'user" title="Configurer les utilisateurs">' . template::ico('users') . '</a></li>'; $rightItems .= '<li><a href="' . helper::baseUrl() . 'user" title="Configurer les utilisateurs">' . template::ico('users') . '</a></li>';
$rightItems .= '<li><a href="' . helper::baseUrl() . 'theme" title="Personnaliser le thème">' . template::ico('brush') . '</a></li>'; $rightItems .= '<li><a href="' . helper::baseUrl() . 'theme" title="Personnaliser le thème">' . template::ico('brush') . '</a></li>';
$rightItems .= '<li><a href="' . helper::baseUrl() . 'config" title="Configurer le site">' . template::ico('gear') . '</a></li>'; $rightItems .= '<li><a href="' . helper::baseUrl() . 'config" title="Configurer le site">' . template::ico('gear') . '</a></li>';
// UA
if(helper::checkNewVersion()) { // if(helper::checkNewVersion()) {
$rightItems .= '<li><a id="barUpdate" href="' . helper::baseUrl() . 'install/update" title="Mettre à jour Zwii">' . template::ico('update colorRed') . '</a></li>'; // $rightItems .= '<li><a id="barUpdate" href="' . helper::baseUrl() . 'install/update" title="Mettre à jour Zwii">' . template::ico('update colorRed') . '</a></li>';
} // }
// UA
} }
$rightItems .= '<li><a href="' . helper::baseUrl() . 'user/edit/' . $this->getUser('id') . '" title="Configurer mon compte">' . template::ico('user', 'right') . $this->getUser('firstname') . ' ' . $this->getUser('lastname') . '</a></li>'; $rightItems .= '<li><a href="' . helper::baseUrl() . 'user/edit/' . $this->getUser('id') . '" title="Configurer mon compte">' . template::ico('user', 'right') . $this->getUser('firstname') . ' ' . $this->getUser('lastname') . '</a></li>';
$rightItems .= '<li><a id="barLogout" href="' . helper::baseUrl() . 'user/logout" title="Se déconnecter">' . template::ico('logout') . '</a></li>'; $rightItems .= '<li><a id="barLogout" href="' . helper::baseUrl() . 'user/logout" title="Se déconnecter">' . template::ico('logout') . '</a></li>';
@ -2217,7 +2240,7 @@ class layout extends common {
$this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD')
AND $this->getUser('group') >= self::GROUP_MODERATOR 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 '<script>' . helper::minifyJs($vars) . '</script>'; echo '<script>' . helper::minifyJs($vars) . '</script>';
// Librairies // Librairies
@ -2505,7 +2528,7 @@ class template {
'?relative_url=1' . '?relative_url=1' .
'&field_id=' . $attributes['id'] . '&field_id=' . $attributes['id'] .
'&type=' . $attributes['type'] . '&type=' . $attributes['type'] .
'&akey=' . md5_file('site/data/data.json') . '&akey=' . md5_file('site/data/core.json') .
($attributes['extensions'] ? '&extensions=' . $attributes['extensions'] : '') ($attributes['extensions'] ? '&extensions=' . $attributes['extensions'] : '')
. '" . '"
class="inputFile %s %s" class="inputFile %s %s"

View File

@ -97,7 +97,7 @@ class install extends common {
case 1: case 1:
$success = true; $success = true;
// Copie du fichier de données // 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 // Nettoyage des fichiers temporaires
if(file_exists('site/tmp/update.tar.gz')) { if(file_exists('site/tmp/update.tar.gz')) {
$success = unlink('site/tmp/update.tar.gz'); $success = unlink('site/tmp/update.tar.gz');

View File

@ -30,7 +30,7 @@ setlocale(LC_CTYPE, 'fr_FR'); //correct transliteration
*/ */
define('USE_ACCESS_KEYS', true); // TRUE or FALSE define('USE_ACCESS_KEYS', true); // TRUE or FALSE
$privateKey = md5_file('../../../site/data/data.json'); $privateKey = md5_file('../../../site/data/core.json');
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------