11.0.10 mkdir permission 0755 + init module galerie

This commit is contained in:
Fred Tempez 2021-09-29 14:50:25 +02:00
parent 04057c285a
commit 206ab7f9a1
13 changed files with 70 additions and 66 deletions

View File

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

View File

@ -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']) {

View File

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

View File

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

View File

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

View File

@ -52,7 +52,7 @@ class init extends common {
]
],
'core' => [
'dataVersion' => 10602,
'dataVersion' => 11000,
'lastBackup' => 0,
'lastClearTmp' => 0,
'lastAutoUpdate' => 0,

View File

@ -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', '<p>Contenu de votre nouvelle page.</p>');
$this->setPage($pageId, '<p>Contenu de votre nouvelle page.</p>', 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)) ? '<p></p>' : str_replace('<p></p>', '<p>&nbsp;</p>', $this->getInput('pageEditContent', null));
//file_put_contents( self::DATA_DIR . self::$i18n . '/content/' . $pageId . '.html' , $content );

View File

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

View File

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

View File

@ -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]), ';','"');

View File

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

View File

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

View File

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