From c07cd7abd2adcb1c1d4845efba7699eab3403cf6 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Tue, 5 Jan 2021 12:50:49 +0100 Subject: [PATCH] =?UTF-8?q?Init=20-=20version=20supportant=20plusieurs=20c?= =?UTF-8?q?ompte=20sur=20la=20m=C3=AAme=20installation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/class/template.class.php | 2 +- core/core.php | 94 ++++++++++---------- core/layout/blank.php | 4 +- core/layout/light.php | 4 +- core/layout/main.php | 16 ++-- core/module/config/config.php | 16 ++-- core/module/config/view/backup/backup.php | 2 +- core/module/config/view/script/script.php | 4 +- core/module/theme/theme.php | 16 ++-- core/module/theme/view/advanced/advanced.php | 2 +- core/module/theme/view/manage/manage.php | 2 +- core/module/user/user.php | 2 +- core/vendor/filemanager/config/config.php | 2 +- 13 files changed, 85 insertions(+), 81 deletions(-) diff --git a/core/class/template.class.php b/core/class/template.class.php index 8a6637a8..18678050 100755 --- a/core/class/template.class.php +++ b/core/class/template.class.php @@ -269,7 +269,7 @@ class template { '?relative_url=1' . '&field_id=' . $attributes['id'] . '&type=' . $attributes['type'] . - '&akey=' . md5_file(core::DATA_DIR.'core.json') . + '&akey=' . md5_file(core::$data_dir.'core.json') . ($attributes['extensions'] ? '&extensions=' . $attributes['extensions'] : '') . '" class="inputFile %s %s" diff --git a/core/core.php b/core/core.php index e165ae0a..501b7fc2 100755 --- a/core/core.php +++ b/core/core.php @@ -28,7 +28,7 @@ class common { const GROUP_ADMIN = 3; // Dossier de travail const BACKUP_DIR = 'site/backup/'; - const DATA_DIR = 'site/data/'; + //const core::$data_dir = 'site/data/'; const FILE_DIR = 'site/file/'; const TEMP_DIR = 'site/tmp/'; @@ -40,7 +40,7 @@ class common { const ACCESS_TIMER = 1800; // Numéro de version - const ZWII_VERSION = '10.3.13'; + const ZWII_VERSION = '10.3.13.multi'; const ZWII_UPDATE_CHANNEL = "v10"; public static $actions = []; @@ -151,7 +151,7 @@ class common { private $user = []; private $page = []; private $module = []; - + public static $data_dir =''; /** * Constructeur commun @@ -164,22 +164,26 @@ class common { if(isset($_COOKIE)) { $this->input['_COOKIE'] = $_COOKIE; } - + // Dossier temporaire + core::$data_dir = 'site/data/' . helper::getIp() . '/'; + if (!is_dir(core::$data_dir) ) { + mkdir(core::$data_dir,0755,true); + } // Import version 9 - if (file_exists(self::DATA_DIR . 'core.json') === true && + if (file_exists(core::$data_dir . 'core.json') === true && $this->getData(['core','dataVersion']) < 10000) { $keepUsers = isset($_SESSION['KEEP_USERS']) ? $_SESSION['KEEP_USERS'] : false; $this->importData($keepUsers); unset ($_SESSION['KEEP_USERS']); // Réinstaller htaccess - copy('core/module/install/ressource/.htaccess', self::DATA_DIR . '.htaccess'); + copy('core/module/install/ressource/.htaccess', core::$data_dir . '.htaccess'); common::$importNotices [] = "Importation réalisée avec succès" ; //echo ''; } // Installation fraîche, initialisation des modules manquants // La langue d'installation par défaut est fr foreach (self::$dataStage as $stageId) { - $folder = $this->dirData ($stageId, 'fr'); + $folder = $this->dirData ($stageId, 'fr'); if (file_exists($folder . $stageId .'.json') === false) { $this->initData($stageId,'fr'); common::$coreNotices [] = $stageId ; @@ -581,12 +585,12 @@ class common { public function importData($keepUsers = false) { // Trois tentatives de lecture for($i = 0; $i < 3; $i++) { - $tempData=json_decode(file_get_contents(self::DATA_DIR.'core.json'), true); - $tempTheme=json_decode(file_get_contents(self::DATA_DIR.'theme.json'), true); + $tempData=json_decode(file_get_contents(core::$data_dir.'core.json'), true); + $tempTheme=json_decode(file_get_contents(core::$data_dir.'theme.json'), true); if($tempData && $tempTheme) { // Backup - rename (self::DATA_DIR.'core.json',self::DATA_DIR.'imported_core.json'); - rename (self::DATA_DIR.'theme.json',self::DATA_DIR.'imported_theme.json'); + rename (core::$data_dir.'core.json',core::$data_dir.'imported_core.json'); + rename (core::$data_dir.'theme.json',core::$data_dir.'imported_theme.json'); break; } elseif($i === 2) { @@ -597,8 +601,8 @@ class common { } // Dossier de langues - if (!file_exists(self::DATA_DIR . '/fr')) { - mkdir (self::DATA_DIR . '/fr'); + if (!file_exists(core::$data_dir . '/fr')) { + mkdir (core::$data_dir . '/fr'); } // Un seul fichier pour éviter les erreurs de sauvegarde des v9 @@ -618,8 +622,8 @@ class common { } // Nettoyage du fichier de thème pour forcer une régénération - if (file_exists(self::DATA_DIR . '/theme.css')) { // On ne sait jamais - unlink (self::DATA_DIR . '/theme.css'); + if (file_exists(core::$data_dir . '/theme.css')) { // On ne sait jamais + unlink (core::$data_dir . '/theme.css'); } } @@ -695,9 +699,9 @@ class common { // Sauf pour les pages et les modules if ($id === 'page' || $id === 'module') { - $folder = self::DATA_DIR . $lang . '/' ; + $folder = core::$data_dir . $lang . '/' ; } else { - $folder = self::DATA_DIR; + $folder = core::$data_dir; } return ($folder); } @@ -1000,10 +1004,10 @@ class common { // Stockage dans un sous-dossier localisé // Le dossier de langue existe t-il ? - if (!file_exists(self::DATA_DIR . '/' . $lang)) { - mkdir (self::DATA_DIR . '/' . $lang); + if (!file_exists(core::$data_dir . '/' . $lang)) { + mkdir (core::$data_dir . '/' . $lang); } - $folder = $this->dirData ($module,$lang); + $folder = $this->dirData ($module,$lang); // Constructeur JsonDB $db = new \Prowebcraft\JsonDb([ 'name' => $module . '.json', @@ -1218,8 +1222,8 @@ class common { // Version 9.2.27 if($this->getData(['core', 'dataVersion']) < 9227) { // Forcer la régénération du thème - if (file_exists(self::DATA_DIR.'theme.css')) { - unlink (self::DATA_DIR.'theme.css'); + if (file_exists(core::$data_dir.'theme.css')) { + unlink (core::$data_dir.'theme.css'); } $this->setData(['core', 'dataVersion', 9227]); } @@ -1300,7 +1304,7 @@ class common { if ($this->getData(['core', 'dataVersion']) < 10093) { // Déplacement du fichier admin.css dans data if (file_exists('core/layout/admin.css')) { - copy('core/layout/admin.css',self::DATA_DIR.'admin.css'); + copy('core/layout/admin.css',core::$data_dir.'admin.css'); unlink('core/layout/admin.css'); } //Déplacement d'un fichier de ressources @@ -1338,12 +1342,12 @@ class common { // Thème $this->deleteData(['admin','colorButtonText']); // Remettre à zéro le thème pour la génération du CSS du blog - if (file_exists(self::DATA_DIR . 'theme.css')) { - unlink(self::DATA_DIR . 'theme.css'); + if (file_exists(core::$data_dir . 'theme.css')) { + unlink(core::$data_dir . 'theme.css'); } // Créer les en-têtes du journal $d = 'Date;Heure;IP;Id;Action' . PHP_EOL; - file_put_contents(self::DATA_DIR . 'journal.log',$d); + file_put_contents(core::$data_dir . 'journal.log',$d); // Init préservation htaccess $this->setData(['config','autoUpdateHtaccess',false]); // Options de barre de membre simple @@ -1439,8 +1443,8 @@ class common { // Couleur des sous menus $this->setData(['theme', 'menu', 'backgroundColorSub', $this->getData(['theme', 'menu', 'backgroundColor']) ]); // Nettoyage du fichier de thème pour forcer une régénération - if (file_exists(self::DATA_DIR . '/theme.css')) { // On ne sait jamais - unlink (self::DATA_DIR . '/theme.css'); + if (file_exists(core::$data_dir . '/theme.css')) { // On ne sait jamais + unlink (core::$data_dir . '/theme.css'); } $this->setData(['core', 'dataVersion', 10304]); } @@ -1547,22 +1551,22 @@ class core extends common { } } // Crée le fichier de personnalisation avancée - 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')); - chmod(self::DATA_DIR.'custom.css', 0755); + if(file_exists(core::$data_dir.'custom.css') === false) { + file_put_contents(core::$data_dir.'custom.css', file_get_contents('core/module/theme/resource/custom.css')); + chmod(core::$data_dir.'custom.css', 0755); } // Crée le fichier de personnalisation - if(file_exists(self::DATA_DIR.'theme.css') === false) { - file_put_contents(self::DATA_DIR.'theme.css', ''); - chmod(self::DATA_DIR.'theme.css', 0755); + if(file_exists(core::$data_dir.'theme.css') === false) { + file_put_contents(core::$data_dir.'theme.css', ''); + chmod(core::$data_dir.'theme.css', 0755); } // Crée le fichier de personnalisation de l'administration - if(file_exists(self::DATA_DIR.'admin.css') === false) { - file_put_contents(self::DATA_DIR.'admin.css', ''); - chmod(self::DATA_DIR.'admin.css', 0755); + if(file_exists(core::$data_dir.'admin.css') === false) { + file_put_contents(core::$data_dir.'admin.css', ''); + chmod(core::$data_dir.'admin.css', 0755); } // Check la version rafraichissement du theme - $cssVersion = preg_split('/\*+/', file_get_contents(self::DATA_DIR.'theme.css')); + $cssVersion = preg_split('/\*+/', file_get_contents(core::$data_dir.'theme.css')); if(empty($cssVersion[1]) OR $cssVersion[1] !== md5(json_encode($this->getData(['theme'])))) { // Version $css = '/*' . md5(json_encode($this->getData(['theme']))) . '*/'; @@ -1699,7 +1703,7 @@ class core extends common { } // Enregistre la personnalisation - file_put_contents(self::DATA_DIR.'theme.css', $css); + file_put_contents(core::$data_dir.'theme.css', $css); // Effacer le cache pour tenir compte de la couleur de fond TinyMCE header("Expires: Tue, 01 Jan 2000 00:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); @@ -1708,7 +1712,7 @@ class core extends common { header("Pragma: no-cache"); } // Check la version rafraichissement du theme admin - $cssVersion = preg_split('/\*+/', file_get_contents(self::DATA_DIR.'admin.css')); + $cssVersion = preg_split('/\*+/', file_get_contents(core::$data_dir.'admin.css')); if(empty($cssVersion[1]) OR $cssVersion[1] !== md5(json_encode($this->getData(['admin'])))) { // Version $css = '/*' . md5(json_encode($this->getData(['admin']))) . '*/'; @@ -1733,7 +1737,7 @@ class core extends common { // Bordure du contour TinyMCE $css .= '.mce-tinymce{border: 1px solid '. $this->getData(['admin','borderBlockColor']) . '!important;}'; // Enregistre la personnalisation - file_put_contents(self::DATA_DIR.'admin.css', $css); + file_put_contents(core::$data_dir.'admin.css', $css); } } /** @@ -1779,7 +1783,7 @@ class core extends common { $dataLog .= $this->getUrl(); $dataLog .= PHP_EOL; if ($this->getData(['config','connect','log'])) { - file_put_contents(self::DATA_DIR . 'journal.log', $dataLog, FILE_APPEND); + file_put_contents(core::$data_dir . 'journal.log', $dataLog, FILE_APPEND); } // Force la déconnexion des membres bannis ou d'une seconde session if ( @@ -2803,7 +2807,7 @@ class layout extends common { // Items de droite $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') . '
  • '; @@ -2849,7 +2853,7 @@ class layout extends common { if($this->core->output['style']) { echo ''; if (strpos($this->core->output['style'], 'admin.css') >= 1 ) { - echo ''; + echo ''; } echo ''; } @@ -2866,7 +2870,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(self::DATA_DIR.'core.json')) . ';'; + $vars .= 'var privateKey = ' . json_encode(md5_file(core::$data_dir.'core.json')) . ';'; } echo ''; // Librairies diff --git a/core/layout/blank.php b/core/layout/blank.php index 5e1266fa..2ad5b50b 100755 --- a/core/layout/blank.php +++ b/core/layout/blank.php @@ -13,8 +13,8 @@ showStyle(); ?> - - + + showContent(); ?> showScript(); ?> diff --git a/core/layout/light.php b/core/layout/light.php index 2c43b144..1da49bd1 100755 --- a/core/layout/light.php +++ b/core/layout/light.php @@ -13,8 +13,8 @@ showStyle(); ?> - - + + showNotification(); ?> diff --git a/core/layout/main.php b/core/layout/main.php index 4590235f..4247ef3a 100755 --- a/core/layout/main.php +++ b/core/layout/main.php @@ -12,11 +12,11 @@ showVendor(); ?> showAnalytics(); ?> - - + + showStyle(); ?> - @@ -176,8 +176,8 @@ in_array($this->getUrl(1),$pattern) ) ) { // Pleine page en mode configuration $layout->showContent(); - if (file_exists(self::DATA_DIR . 'body.inc.html')) { - include( self::DATA_DIR . 'body.inc.html'); + if (file_exists(core::$data_dir . 'body.inc.html')) { + include( core::$data_dir . 'body.inc.html'); } } else { ?> @@ -187,8 +187,8 @@
    showContent(); - if (file_exists(self::DATA_DIR . 'body.inc.html')) { - include(self::DATA_DIR . 'body.inc.html'); + if (file_exists(core::$data_dir . 'body.inc.html')) { + include(core::$data_dir . 'body.inc.html'); } ?>
    diff --git a/core/module/config/config.php b/core/module/config/config.php index 462fd089..ce554dba 100755 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -554,10 +554,10 @@ class config extends common { if($this->isPost()) { // Ecrire les fichiers de script if ($this->geturl(2) === 'head') { - file_put_contents(self::DATA_DIR . 'head.inc.html',$this->getInput('configScriptHead',null)); + file_put_contents(core::$data_dir . 'head.inc.html',$this->getInput('configScriptHead',null)); } if ($this->geturl(2) === 'body') { - file_put_contents(self::DATA_DIR . 'body.inc.html',$this->getInput('configScriptBody',null)); + file_put_contents(core::$data_dir . 'body.inc.html',$this->getInput('configScriptBody',null)); } // Valeurs en sortie $this->addOutput([ @@ -631,11 +631,11 @@ class config extends common { */ public function logReset() { - if ( file_exists(self::DATA_DIR . 'journal.log') ) { - unlink(self::DATA_DIR . 'journal.log'); + if ( file_exists(core::$data_dir . 'journal.log') ) { + unlink(core::$data_dir . 'journal.log'); // Créer les en-têtes des journaux $d = 'Date;Heure;IP;Id;Action' . PHP_EOL; - file_put_contents(self::DATA_DIR . 'journal.log',$d); + file_put_contents(core::$data_dir . 'journal.log',$d); // Valeurs en sortie $this->addOutput([ 'redirect' => helper::baseUrl() . 'config', @@ -659,7 +659,7 @@ class config extends common { * Télécharger le fichier de log */ public function logDownload() { - $fileName = self::DATA_DIR . 'journal.log'; + $fileName = core::$data_dir . 'journal.log'; if (file_exists($fileName)) { header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $fileName . '"'); @@ -730,8 +730,8 @@ class config extends common { */ public function blacklistReset() { - if ( file_exists(self::DATA_DIR . 'blacklist.json') ) { - unlink(self::DATA_DIR . 'blacklist.json'); + if ( file_exists(core::$data_dir . 'blacklist.json') ) { + unlink(core::$data_dir . 'blacklist.json'); // Valeurs en sortie $this->addOutput([ 'redirect' => helper::baseUrl() . 'config', diff --git a/core/module/config/view/backup/backup.php b/core/module/config/view/backup/backup.php index 8e244b47..ff219b5e 100755 --- a/core/module/config/view/backup/backup.php +++ b/core/module/config/view/backup/backup.php @@ -27,7 +27,7 @@ ]); ?>
    - L'archive est générée dans le dossier Backup du gestionnaire de fichiers. + L'archive est générée dans le dossier Backup du gestionnaire de fichiers.
    diff --git a/core/module/config/view/script/script.php b/core/module/config/view/script/script.php index ea1ad0b3..7e22224d 100755 --- a/core/module/config/view/script/script.php +++ b/core/module/config/view/script/script.php @@ -19,7 +19,7 @@
    file_exists( self::DATA_DIR . 'head.inc.html') ? file_get_contents (self::DATA_DIR . 'head.inc.html') : '' , + 'value' => file_exists( core::$data_dir . 'head.inc.html') ? file_get_contents (core::$data_dir . 'head.inc.html') : '' , 'class' => 'editor' ]); ?>
    @@ -29,7 +29,7 @@
    file_exists( self::DATA_DIR . 'body.inc.html') ? file_get_contents (self::DATA_DIR . 'body.inc.html') : '' , + 'value' => file_exists( core::$data_dir . 'body.inc.html') ? file_get_contents (core::$data_dir . 'body.inc.html') : '' , 'class' => 'editor' ]); ?>
    diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index 83ed513e..a86e8018 100755 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -286,7 +286,7 @@ class theme extends common { // Soumission du formulaire if($this->isPost()) { // Enregistre le CSS - file_put_contents(self::DATA_DIR.'custom.css', $this->getInput('themeAdvancedCss', null)); + file_put_contents(core::$data_dir.'custom.css', $this->getInput('themeAdvancedCss', null)); // Valeurs en sortie $this->addOutput([ 'notification' => 'Modifications enregistrées', @@ -535,7 +535,7 @@ class theme extends common { */ public function reset() { // Supprime le fichier de personnalisation avancée - unlink(self::DATA_DIR.'custom.css'); + unlink(core::$data_dir.'custom.css'); // Valeurs en sortie $this->addOutput([ 'notification' => 'Personnalisation avancée réinitialisée', @@ -549,7 +549,7 @@ class theme extends common { */ public function resetAdmin() { // Supprime le fichier de personnalisation avancée - //unlink(self::DATA_DIR.'admin.json'); + //unlink(core::$data_dir.'admin.json'); $this->initData('admin'); // Valeurs en sortie $this->addOutput([ @@ -767,13 +767,13 @@ class theme extends common { if ($zip->open(self::TEMP_DIR . $zipFilename, ZipArchive::CREATE | ZipArchive::OVERWRITE ) === TRUE) { switch ($modele) { case 'admin': - $zip->addFile(self::DATA_DIR.'admin.json',self::DATA_DIR.'admin.json'); - $zip->addFile(self::DATA_DIR.'admin.css',self::DATA_DIR.'admin.css'); + $zip->addFile(core::$data_dir.'admin.json',core::$data_dir.'admin.json'); + $zip->addFile(core::$data_dir.'admin.css',core::$data_dir.'admin.css'); break; case 'theme': - $zip->addFile(self::DATA_DIR.'theme.json',self::DATA_DIR.'theme.json'); - $zip->addFile(self::DATA_DIR.'theme.css',self::DATA_DIR.'theme.css'); - $zip->addFile(self::DATA_DIR.'custom.css',self::DATA_DIR.'custom.css'); + $zip->addFile(core::$data_dir.'theme.json',core::$data_dir.'theme.json'); + $zip->addFile(core::$data_dir.'theme.css',core::$data_dir.'theme.css'); + $zip->addFile(core::$data_dir.'custom.css',core::$data_dir.'custom.css'); if ($this->getData(['theme','body','image']) !== '' ) { $zip->addFile(self::FILE_DIR.'source/'.$this->getData(['theme','body','image']), self::FILE_DIR.'source/'.$this->getData(['theme','body','image']) diff --git a/core/module/theme/view/advanced/advanced.php b/core/module/theme/view/advanced/advanced.php index b3a82d33..39dd709e 100755 --- a/core/module/theme/view/advanced/advanced.php +++ b/core/module/theme/view/advanced/advanced.php @@ -23,7 +23,7 @@
    file_get_contents(self::DATA_DIR.'custom.css'), + 'value' => file_get_contents(core::$data_dir.'custom.css'), 'class' => 'editor' ]); ?>
    diff --git a/core/module/theme/view/manage/manage.php b/core/module/theme/view/manage/manage.php index ff7a28ba..8b766477 100755 --- a/core/module/theme/view/manage/manage.php +++ b/core/module/theme/view/manage/manage.php @@ -51,7 +51,7 @@
    - Le fichier de sauvegarde est généré dans le dossier Thème du gestionnaire de fichiers. + Le fichier de sauvegarde est généré dans le dossier Thème du gestionnaire de fichiers.
    diff --git a/core/module/user/user.php b/core/module/user/user.php index 00ce6831..702528b9 100755 --- a/core/module/user/user.php +++ b/core/module/user/user.php @@ -461,7 +461,7 @@ class user extends common { $dataLog .= $logStatus ; $dataLog .= PHP_EOL; if ($this->getData(['config','connect','log'])) { - file_put_contents(self::DATA_DIR . 'journal.log', $dataLog, FILE_APPEND); + file_put_contents(core::$data_dir . 'journal.log', $dataLog, FILE_APPEND); } // Stockage des cookies if (!empty($_COOKIE['ZWII_USER_ID'])) { diff --git a/core/vendor/filemanager/config/config.php b/core/vendor/filemanager/config/config.php index 29537313..d4105f4c 100755 --- a/core/vendor/filemanager/config/config.php +++ b/core/vendor/filemanager/config/config.php @@ -31,7 +31,7 @@ setlocale(LC_CTYPE, 'fr_FR'); //correct transliteration | */ -define('USE_ACCESS_KEYS', true); // TRUE or FALSE +define('USE_ACCESS_KEYS', false); // TRUE or FALSE $privateKey = md5_file('../../../site/data/core.json'); /*