diff --git a/CHANGES.md b/CHANGES.md index 0d49a1bf..028c8565 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -3,9 +3,10 @@ ## version 10.4.02 - Corrections : - Thème : aperçu du site amélioré. - - Editeur de texte : couleur de fond parasite quand une image en arrière-plan est sélectionnée. + - Thème : rétablissement du contrôle de l'import d'une version ancienne d'un thème. + - Éditeur de texte : couleur de fond parasite quand une image en arrière-plan est sélectionnée. -## version 10.4.01 +## version 10.4.01 Corrections : - Module form, erreur de syntaxe. - Chargement d'un thème, désactivation du contrôle des clés. diff --git a/README.md b/README.md index 71521879..cb9d1c5f 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -# ZwiiCMS 10.4.00 +# ZwiiCMS 10.4.02 Zwii est un CMS sans base de données (flat-file) qui permet de créer et gérer facilement un site web sans aucune connaissance en programmation. diff --git a/core/class/helper.class.php b/core/class/helper.class.php index 4ce97ef5..ae3fd0bb 100755 --- a/core/class/helper.class.php +++ b/core/class/helper.class.php @@ -137,30 +137,51 @@ class helper { public static function getModules() { $dirs = array_diff(scandir('module'), array('..', '.')); foreach ($dirs as $key => $value) { - // Lire les constantes - $class_reflex = new \ReflectionClass($value); - $class_constants = $class_reflex->getConstants(); - // Constante REALNAME - if (array_key_exists('REALNAME', $class_constants)) { - $realName = $value::REALNAME; - } else { - $realName = ucfirst($value); + // Dossier non vide + if (file_exists('module/' . $value . '/' . $value . '.php')) { + // Lire les constantes + $class_reflex = new \ReflectionClass($value); + $class_constants = $class_reflex->getConstants(); + // Constante REALNAME + if (array_key_exists('REALNAME', $class_constants)) { + $realName = $value::REALNAME; + } else { + $realName = ucfirst($value); + } + // Constante VERSION + if (array_key_exists('VERSION', $class_constants)) { + $version = $value::VERSION; + } else { + $version = '0.0'; + } + // Affection + $modules [$value] = [ + 'realName' => $realName, + 'version' => $version + ]; } - // Constante VERSION - if (array_key_exists('VERSION', $class_constants)) { - $version = $value::VERSION; - } else { - $version = '0.0'; - } - // Affection - $modules [$value] = [ - 'realName' => $realName, - 'version' => $version - ]; } return($modules); } + + /** + * Scanne le contenu d'un dossier et de ses sous-dossiers + * @param string $dir Dossier à scanner + * @return array liste de dossiers contenus dans le répertoire cible. + */ + public static function scanSubDir($dir) { + $dirContent = []; + $iterator = new DirectoryIterator($dir); + foreach($iterator as $fileInfos) { + if($fileInfos->isDot() === false AND $fileInfos->isDir()) { + $dirContent[] = $dir . '/' . $fileInfos->getBasename(); + $dirContent = array_merge($dirContent, self::scanSubDir($dir . '/' . $fileInfos->getBasename())); + } + } + return $dirContent; + } + /** * Retourne true si le protocole est en TLS diff --git a/core/core.php b/core/core.php index 82c56899..7246dac0 100755 --- a/core/core.php +++ b/core/core.php @@ -972,8 +972,7 @@ class common { $db->set($keys[0].'.'.$keys[1].'.'.$keys[2].'.'.$keys[3].'.'.$keys[4].'.'.$keys[5],$keys[6], true); break; case 8: - $db->set($keys[0].'.'.$keys[1].'.'.$keys[2].'.'.$keys[3].'.'.$keys[4].'.'.$keys[5].'.'.$keys[6],$keys[7] ); - $db->save(); + $db->set($keys[0].'.'.$keys[1].'.'.$keys[2].'.'.$keys[3].'.'.$keys[4].'.'.$keys[5].'.'.$keys[6],$keys[7], true ); break; } return true; diff --git a/core/module/config/config.php b/core/module/config/config.php index 79c03d23..9faf5392 100755 --- a/core/module/config/config.php +++ b/core/module/config/config.php @@ -604,7 +604,6 @@ class config extends common { */ public function modules() { - helper::getModules(); // Préparation du tableau des modules installés // Liste des modules installés (répertoire de module/) if ($dh = opendir( 'module/' )) { diff --git a/module/gallery/gallery.php b/module/gallery/gallery.php index e8526b7c..7156931c 100755 --- a/module/gallery/gallery.php +++ b/module/gallery/gallery.php @@ -324,7 +324,7 @@ class gallery extends common { // Valeurs en sortie $this->addOutput([ 'display' => self::DISPLAY_JSON, - 'content' => galleriesHelper::scanDir(self::FILE_DIR.'source') + 'content' => helper::scanSubDir(self::FILE_DIR.'source') ]); } @@ -673,24 +673,4 @@ class gallery extends common { ]); } -} - -class galleriesHelper extends helper { - - /** - * Scan le contenu d'un dossier et de ses sous-dossiers - * @param string $dir Dossier à scanner - * @return array - */ - public static function scanDir($dir) { - $dirContent = []; - $iterator = new DirectoryIterator($dir); - foreach($iterator as $fileInfos) { - if($fileInfos->isDot() === false AND $fileInfos->isDir()) { - $dirContent[] = $dir . '/' . $fileInfos->getBasename(); - $dirContent = array_merge($dirContent, self::scanDir($dir . '/' . $fileInfos->getBasename())); - } - } - return $dirContent; - } } \ No newline at end of file