From 206ab7f9a16c7e1b9808080f18f5cdba9b58530a Mon Sep 17 00:00:00 2001 From: fredtempez Date: Wed, 29 Sep 2021 14:50:25 +0200 Subject: [PATCH] 11.0.10 mkdir permission 0755 + init module galerie --- CHANGES.md | 4 + core/core.php | 8 +- core/include/update.inc.php | 2 +- core/module/addon/addon.php | 16 ++-- core/module/config/config.php | 4 +- core/module/install/ressource/defaultdata.php | 2 +- core/module/page/page.php | 6 +- core/module/theme/theme.php | 4 +- core/module/translate/translate.php | 2 +- module/form/form.php | 4 +- module/gallery/gallery.php | 74 +++++++++---------- module/news/news.php | 6 +- module/search/search.php | 4 +- 13 files changed, 70 insertions(+), 66 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index c1abbad0..6f9dfef4 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,10 @@ # Changelog ## Version 11.0.10 +- Corrections : + - Création d'un dossier : les droits d'accès sont positionnés sur 0755 au lieu de la valeur par défaut 0777. Concerne également les modules Formulaire, Galerie, News, Search et d'autres modules optionnels. + - Données d'initialisation, le numéro de version devient 11000 au lieu de 10602. + - Module galerie version 3.3, modification de l'initialisation du module. ## Version 11.0.09 - Modifications : diff --git a/core/core.php b/core/core.php index aff89a6f..173bb27a 100755 --- a/core/core.php +++ b/core/core.php @@ -558,7 +558,7 @@ class common { // Stockage dans un sous-dossier localisé if (!file_exists(self::DATA_DIR . $lang)) { - mkdir (self::DATA_DIR .$lang); + mkdir (self::DATA_DIR .$lang, 0755); } $db = $this->dataFiles[$module]; if ($sampleSite === true) { @@ -570,7 +570,7 @@ class common { // Dossier des pages if (!is_dir(self::DATA_DIR . $lang . '/content')) { - mkdir(self::DATA_DIR . $lang . '/content'); + mkdir(self::DATA_DIR . $lang . '/content', 0755); } // Créer le jeu de pages du site de test if ($module === 'page' ) { @@ -748,7 +748,7 @@ class common { // Dossier de langues if (!file_exists(self::DATA_DIR . '/fr')) { - mkdir (self::DATA_DIR . '/fr'); + mkdir (self::DATA_DIR . '/fr', 0755); } // Un seul fichier pour éviter les erreurs de sauvegarde des v9 @@ -963,7 +963,7 @@ class common { // Vérifier l'existence du dossier de destination. $fileInfo = pathinfo($dest); if (!is_dir($fileInfo['dirname'])) { - mkdir($fileInfo['dirname'],0755,true); + mkdir($fileInfo['dirname'], 0755, true); } // Type d'image switch( $fileInfo['extension']) { diff --git a/core/include/update.inc.php b/core/include/update.inc.php index 2acd1077..2951b567 100644 --- a/core/include/update.inc.php +++ b/core/include/update.inc.php @@ -623,7 +623,7 @@ if ($this->getData(['core', 'dataVersion']) < 11000) { $pageList = array(); // Creation du contenu de la page if (!is_dir(self::DATA_DIR . self::$i18n . '/content')) { - mkdir(self::DATA_DIR . self::$i18n . '/content'); + mkdir(self::DATA_DIR . self::$i18n . '/content', 0755); } foreach ($this->getHierarchy(null,null,null) as $parentKey=>$parentValue) { $pageList [] = $parentKey; diff --git a/core/module/addon/addon.php b/core/module/addon/addon.php index 2be1ccb6..fb18939e 100644 --- a/core/module/addon/addon.php +++ b/core/module/addon/addon.php @@ -94,7 +94,7 @@ class addon extends common { $zip = new ZipArchive(); if ($zip->open($moduleName) === TRUE) { $notification = 'Archive ouverte'; - mkdir (self::TEMP_DIR . $tempFolder); + mkdir (self::TEMP_DIR . $tempFolder, 0755); $zip->extractTo(self::TEMP_DIR . $tempFolder ); // Archive de module ? $success = false; @@ -253,7 +253,7 @@ class addon extends common { $moduleFile = $d[count($d)-1]; // Créer le dossier modules if (!is_dir(self::FILE_DIR . 'source/modules')) { - mkdir (self::FILE_DIR . 'source/modules'); + mkdir (self::FILE_DIR . 'source/modules', 0755); } // Sauver les données du fichiers file_put_contents(self::FILE_DIR . 'source/modules/' . $moduleFile, $moduleData); @@ -422,7 +422,7 @@ class addon extends common { $tmpFolder = self::TEMP_DIR . uniqid(); //$tmpFolder = self::TEMP_DIR . 'test'; if (!is_dir($tmpFolder)) { - mkdir($tmpFolder); + mkdir($tmpFolder, 0755); } // Clés moduleIds dans les pages $inPages = helper::arrayCollumn($this->getData(['page']),'moduleId', 'SORT_DESC'); @@ -446,15 +446,15 @@ class addon extends common { } // Créer le dossier temporaire si inexistant sinon le nettoie et le créer if (!is_dir($tmpFolder . '/' . $lang)) { - mkdir ($tmpFolder . '/' . $lang, 0777, true); + mkdir ($tmpFolder . '/' . $lang, 0755, true); } else { $this->removeDir($tmpFolder . '/' . $lang); - mkdir ($tmpFolder . '/' . $lang, 0777, true); + mkdir ($tmpFolder . '/' . $lang, 0755, true); } // Créer le dossier temporaire des données du module if ($infoModules[$this->getUrl(2)]['dataDirectory']) { if (!is_dir($tmpFolder . '/' . $moduleDir)) { - mkdir ($tmpFolder . '/' . $moduleDir, 0777, true) ; + mkdir ($tmpFolder . '/' . $moduleDir, 0755, true) ; } } // Sauvegarde si données non vides @@ -471,7 +471,7 @@ class addon extends common { // Enregistrement des pages dans le dossier de langue identique à module if (!file_exists($tmpFolder . '/' . $lang . '/page.json')) { file_put_contents($tmpFolder . '/' . $lang . '/page.json', json_encode($pageParam)); - mkdir ($tmpFolder . '/' . $lang . '/content'); + mkdir ($tmpFolder . '/' . $lang . '/content', 0755); file_put_contents($tmpFolder . '/' . $lang . '/content/' . $this->getData(['page', $pageId, 'content']), $pageContent); } // création du zip @@ -518,7 +518,7 @@ class addon extends common { // Récupérer le fichier et le décompacter $zipFilename = $this->getInput('addonImportFile', helper::FILTER_STRING_SHORT, true); $tempFolder = uniqid(); - mkdir (self::TEMP_DIR . $tempFolder); + mkdir (self::TEMP_DIR . $tempFolder, 0755); $zip = new ZipArchive(); if ($zip->open(self::FILE_DIR . 'source/' . $zipFilename) === TRUE) { $zip->extractTo(self::TEMP_DIR . $tempFolder ); diff --git a/core/module/config/config.php b/core/module/config/config.php index 560575d4..a521d68f 100644 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -209,7 +209,7 @@ class config extends common { $fileName = helper::autoBackup(self::TEMP_DIR,$filter); // Créer le répertoire manquant if (!is_dir(self::FILE_DIR.'source/backup')) { - mkdir(self::FILE_DIR.'source/backup'); + mkdir(self::FILE_DIR.'source/backup', 0755); } // Copie dans les fichiers $success = copy (self::TEMP_DIR . $fileName , self::FILE_DIR.'source/backup/' . $fileName); @@ -761,7 +761,7 @@ class config extends common { public function copyBackups() { // Créer le répertoire manquant if (!is_dir(self::FILE_DIR.'source/backup')) { - mkdir(self::FILE_DIR.'source/backup'); + mkdir(self::FILE_DIR.'source/backup', 0755); } $this->copyDir(self::BACKUP_DIR, self::FILE_DIR . 'source/backup' ); // Valeurs en sortie diff --git a/core/module/install/ressource/defaultdata.php b/core/module/install/ressource/defaultdata.php index 328bcbfb..f717a8de 100644 --- a/core/module/install/ressource/defaultdata.php +++ b/core/module/install/ressource/defaultdata.php @@ -52,7 +52,7 @@ class init extends common { ] ], 'core' => [ - 'dataVersion' => 10602, + 'dataVersion' => 11000, 'lastBackup' => 0, 'lastClearTmp' => 0, 'lastAutoUpdate' => 0, diff --git a/core/module/page/page.php b/core/module/page/page.php index 827fe57c..3ba16329 100644 --- a/core/module/page/page.php +++ b/core/module/page/page.php @@ -153,7 +153,7 @@ class page extends common { ]); // Creation du contenu de la page if (!is_dir(self::DATA_DIR . self::$i18n . '/content')) { - mkdir(self::DATA_DIR . self::$i18n . '/content'); + mkdir(self::DATA_DIR . self::$i18n . '/content', 0755); } //file_put_contents(self::DATA_DIR . self::$i18n . '/content/' . $pageId . '.html', '

Contenu de votre nouvelle page.

'); $this->setPage($pageId, '

Contenu de votre nouvelle page.

', self::$i18n); @@ -338,7 +338,7 @@ class page extends common { $modulesData = helper::getModules(); if (is_dir($modulesData[$moduleId]['dataDirectory']. $this->getUrl(2))) { // Placer la feuille de style dans un dossier au nom de la nouvelle instance - mkdir( $modulesData[$moduleId]['dataDirectory']. $pageId ); + mkdir( $modulesData[$moduleId]['dataDirectory']. $pageId, 0755 ); copy( $modulesData[$moduleId]['dataDirectory']. $this->getUrl(2), $modulesData[$moduleId]['dataDirectory']. $pageId); $this->removeDir($modulesData[$moduleId]['dataDirectory']. $this->getUrl(2)); // Mettre à jour le nom de la feuille de style @@ -437,7 +437,7 @@ class page extends common { ]); // Creation du contenu de la page if (!is_dir(self::DATA_DIR . self::$i18n . '/content')) { - mkdir(self::DATA_DIR . self::$i18n . '/content'); + mkdir(self::DATA_DIR . self::$i18n . '/content', 0755); } $content = empty($this->getInput('pageEditContent', null)) ? '

' : str_replace('

', '

 

', $this->getInput('pageEditContent', null)); //file_put_contents( self::DATA_DIR . self::$i18n . '/content/' . $pageId . '.html' , $content ); diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index 25c90b94..792ac6ec 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -636,7 +636,7 @@ class theme extends common { $tempFolder = uniqid(); $zip = new ZipArchive(); if ($zip->open(self::FILE_DIR.'source/'.$zipFilename) === TRUE) { - mkdir (self::TEMP_DIR . $tempFolder); + mkdir (self::TEMP_DIR . $tempFolder, 0755); $zip->extractTo(self::TEMP_DIR . $tempFolder ); $modele = ''; // Archive de thème ? @@ -717,7 +717,7 @@ class theme extends common { $zipFilename = $this->zipTheme($this->getUrl(2)); // Téléchargement du ZIP if (!is_dir(self::FILE_DIR.'source/theme')) { - mkdir(self::FILE_DIR.'source/theme'); + mkdir(self::FILE_DIR.'source/theme', 0755); } copy (self::TEMP_DIR . $zipFilename , self::FILE_DIR.'source/theme/' . $zipFilename); // Nettoyage du dossier diff --git a/core/module/translate/translate.php b/core/module/translate/translate.php index 99842085..4af1b63c 100644 --- a/core/module/translate/translate.php +++ b/core/module/translate/translate.php @@ -45,7 +45,7 @@ class translate extends common { if ($copyFrom !== $toCreate) { // Création du dossier if (is_dir(self::DATA_DIR . $toCreate) === false ) { // Si le dossier est déjà créé - $success = mkdir (self::DATA_DIR . $toCreate); + $success = mkdir (self::DATA_DIR . $toCreate, 0755); } else { $success = true; } diff --git a/module/form/form.php b/module/form/form.php index bf2ffbfb..0cccd18f 100644 --- a/module/form/form.php +++ b/module/form/form.php @@ -16,7 +16,7 @@ class form extends common { - const VERSION = '2.10'; + const VERSION = '2.11'; const REALNAME = 'Formulaire'; const DELETE = true; const UPDATE = '0.0'; @@ -202,7 +202,7 @@ class form extends common { if ($data !== []) { $csvfilename = 'data-'.date('dmY').'-'.date('hm').'-'.rand(10,99).'.csv'; if (!file_exists(self::FILE_DIR.'source/data')) { - mkdir(self::FILE_DIR.'source/data'); + mkdir(self::FILE_DIR.'source/data', 0755); } $fp = fopen(self::FILE_DIR.'source/data/'.$csvfilename, 'w'); fputcsv($fp, array_keys($data[1]), ';','"'); diff --git a/module/gallery/gallery.php b/module/gallery/gallery.php index c5d56367..4d991be4 100644 --- a/module/gallery/gallery.php +++ b/module/gallery/gallery.php @@ -17,7 +17,7 @@ class gallery extends common { - const VERSION = '3.2'; + const VERSION = '3.3'; const REALNAME = 'Galerie'; const DELETE = true; const UPDATE = '0.0'; @@ -149,9 +149,36 @@ class gallery extends common { */ private function update() { - // Mise à jour d'une version inférieure, la gallery existe mais pas content + + // Initialisation du module, créer les données si elles sont manquantes. + $this->init(); + + $versionData = $this->getData(['module',$this->getUrl(0),'config', 'versionData' ]); + // Mise à jour 3.1 + if (version_compare($versionData, '3.1', '<') ) { + if (is_dir(self::DATADIRECTORY . 'pages/')) { + // Déplacer les données du dossier Pages + $this->copyDir(self::DATADIRECTORY . 'pages/' . $this->getUrl(0), self::DATADIRECTORY . $this->getUrl(0)); + $this->removeDir(self::DATADIRECTORY . 'pages/'); + $style = $this->getData(['module', $this->getUrl(0), 'theme', 'style']); + $this->setData(['module', $this->getUrl(0), 'theme', 'style', str_replace('pages/', '', $style)]); + } + // Mettre à jour la version + $this->setData(['module',$this->getUrl(0),'config', 'versionData', '3.1' ]); + } + } + + /** + * Initialisation séparée des éléments absents + * Thème + * Config + * Content + */ + private function init() { + + // Mise à jour d'une version inférieure, la gallery existe mais pas la variable content if ($this->getData(['module', $this->getUrl(0)]) && - $this->getData(['module', $this->getUrl(0), 'content']) === NULL ) { + $this->getData(['module', $this->getUrl(0), 'content']) === NULL ) { // Changement de l'arborescence dans module.json $data = $this->getData(['module', $this->getUrl(0)]); @@ -173,52 +200,24 @@ class gallery extends common { // Nom de la feuille de style $this->setData(['module', $this->getUrl(0), 'theme', 'style', self::DATADIRECTORY . $this->getUrl(0) . '/theme.css']); } - // Nouvelle version - $this->setData(['module', $this->getUrl(0), 'config', 'versionData', '3.0']); } - $versionData = $this->getData(['module',$this->getUrl(0),'config', 'versionData' ]); - - // le module n'est pas initialisé - if ($versionData === NULL) { - $this->init(); - } - - // Mise à jour 3.1 - if (version_compare($versionData, '3.1', '<') ) { - if (is_dir(self::DATADIRECTORY . 'pages/')) { - // Déplacer les données du dossier Pages - $this->copyDir(self::DATADIRECTORY . 'pages/' . $this->getUrl(0), self::DATADIRECTORY . $this->getUrl(0)); - $this->removeDir(self::DATADIRECTORY . 'pages/'); - $style = $this->getData(['module', $this->getUrl(0), 'theme', 'style']); - $this->setData(['module', $this->getUrl(0), 'theme', 'style', str_replace('pages/', '', $style)]); - } - // Mettre à jour la version - $this->setData(['module',$this->getUrl(0),'config', 'versionData', '3.1' ]); - } - } - - /** - * Initialisation séparément les éléments absents - * Thème - * Config - * Content - */ - private function init() { // Variable commune $fileCSS = self::DATADIRECTORY . $this->getUrl(0) . '/theme.css' ; - // Check la présence du thème + + // Check la présence des données de thème if ( $this->getData(['module', $this->getUrl(0), 'theme']) === null ) { require_once('module/gallery/ressource/defaultdata.php'); $this->setData(['module', $this->getUrl(0), 'theme', theme::$defaultTheme]); // Nom de la feuille de style $this->setData(['module', $this->getUrl(0), 'theme', 'style', $fileCSS]); } + // Check la présence de la feuille de style if ( !file_exists(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css')) { // Dossier de l'instance if (!is_dir(self::DATADIRECTORY . $this->getUrl(0) )) { - mkdir (self::DATADIRECTORY . $this->getUrl(0), 0777, true); + mkdir (self::DATADIRECTORY . $this->getUrl(0), 0755, true); } // Générer la feuille de CSS $content = file_get_contents('module/gallery/ressource/vartheme.css'); @@ -244,7 +243,8 @@ class gallery extends common { // Nom de la feuille de style $this->setData(['module', $this->getUrl(0), 'theme', 'style', $fileCSS]); } - // Check Config + + // Check la présence de la config if ( $this->getData(['module', $this->getUrl(0), 'config']) === null ) { require_once('module/gallery/ressource/defaultdata.php'); $this->setData(['module', $this->getUrl(0), 'config', theme::$defaultData]); @@ -743,7 +743,7 @@ class gallery extends common { if($this->isPost()) { // Dossier de l'instance if (!is_dir(self::DATADIRECTORY . $this->getUrl(0) )) { - mkdir (self::DATADIRECTORY . $this->getUrl(0), 0777, true); + mkdir (self::DATADIRECTORY . $this->getUrl(0), 0755, true); } $this->setData(['module', $this->getUrl(0), 'theme', [ 'thumbAlign' => $this->getinput('galleryThemeThumbAlign', helper::FILTER_STRING_SHORT), diff --git a/module/news/news.php b/module/news/news.php index 67787218..7df8f21f 100755 --- a/module/news/news.php +++ b/module/news/news.php @@ -15,7 +15,7 @@ class news extends common { - const VERSION = '3.5'; + const VERSION = '3.6'; const REALNAME = 'News'; const DELETE = true; const UPDATE = '0.0'; @@ -201,7 +201,7 @@ class news extends common { // Dossier de l'instance if (!is_dir(self::DATADIRECTORY . $this->getUrl(0))) { - mkdir (self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', 0777, true); + mkdir (self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', 0755, true); } $success = file_put_contents(self::DATADIRECTORY . $this->getUrl(0) . '/theme.css', $style ); @@ -553,7 +553,7 @@ class news extends common { // Dossier de l'instance if (!is_dir(self::DATADIRECTORY . $this->getUrl(0) )) { - mkdir (self::DATADIRECTORY . $this->getUrl(0) , 0777, true); + mkdir (self::DATADIRECTORY . $this->getUrl(0), 0755, true); } // Check la présence de la feuille de style diff --git a/module/search/search.php b/module/search/search.php index 04f7712b..6c944279 100644 --- a/module/search/search.php +++ b/module/search/search.php @@ -19,7 +19,7 @@ class search extends common { - const VERSION = '2.3'; + const VERSION = '2.4'; const REALNAME = 'Recherche'; const DELETE = true; const UPDATE = '0.0'; @@ -93,7 +93,7 @@ class search extends common { // Dossier de l'instance if (!is_dir(self::DATADIRECTORY . $this->getUrl(0))) { - mkdir (self::DATADIRECTORY . $this->getUrl(0), 0777, true); + mkdir (self::DATADIRECTORY . $this->getUrl(0), 0755, true); } // Check la présence de la feuille de style