diff --git a/CHANGES.md b/CHANGES.md index 4c034db5..6e087311 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -5,6 +5,11 @@ - Gestion des groupes de profils d'utilisateurs. - Améliore la gestion de la base de données et la génération du fichier de journalisation. +## Version 12.3.09 +- Corrige le filtrage des modules orphelins. +- Autorise la modification de la langue du site par défaut. +- Installation en langue étrangère non prise en compte depuis 12.3.08 + ## Version 12.3.08 - Amélioration du code liée à la traduction du contenu du CMS. - Implémentation d'un message d'avertissement de suppression d'une langue de site ou de contenu. diff --git a/LISEZMOI.md b/LISEZMOI.md index 0ac606d4..ae72ab34 100644 --- a/LISEZMOI.md +++ b/LISEZMOI.md @@ -1,4 +1,4 @@ -# ZwiiCMS 12.3.08 +# ZwiiCMS 12.3.09 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/README.md b/README.md index e3f8f2ab..d3ba0dfc 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ZwiiCMS 12.3.08 +# ZwiiCMS 12.3.09 Zwii is a database-less (flat-file) CMS that allows you to easily create and manage a web site without any programming knowledge. diff --git a/core/core.php b/core/core.php index 0405647a..9be6f9f2 100644 --- a/core/core.php +++ b/core/core.php @@ -366,10 +366,10 @@ class common self::$i18nUI = isset(self::$i18nUI) && file_exists(self::I18N_DIR . self::$i18nUI . '.json') ? self::$i18nUI : 'fr_FR'; - } else { - // Pas de connexion, ZWII_UI prend la valeur de ZWII_CONTENT - if (isset($_SESSION['ZWII_CONTENT'])) { + if (isset($_SESSION['ZWII_UI'])) { + self::$i18nUI = $_SESSION['ZWII_UI']; + } elseif (isset($_SESSION['ZWII_CONTENT'])) { self::$i18nUI = $_SESSION['ZWII_CONTENT']; } else { self::$i18nUI = 'fr_FR'; diff --git a/core/module/install/install.php b/core/module/install/install.php index cdc0e097..3c3d9077 100644 --- a/core/module/install/install.php +++ b/core/module/install/install.php @@ -154,7 +154,7 @@ class install extends common // par défaut le contenu est la langue d'installation self::$i18nContent = self::$i18nUI; $_SESSION['ZWII_CONTENT'] = self::$i18nContent; - + // Création du dossier de langue avec le marqueur de langue par défaut if (!is_dir(self::DATA_DIR . self::$i18nContent)) { mkdir(self::DATA_DIR . self::$i18nContent); diff --git a/core/module/install/ressource/i18n/en_EN.json b/core/module/install/ressource/i18n/en_EN.json index 49c036e2..93540b54 100644 --- a/core/module/install/ressource/i18n/en_EN.json +++ b/core/module/install/ressource/i18n/en_EN.json @@ -289,7 +289,7 @@ "La version installée est plus récente": "The installed version is more recent", "La vérification est quotidienne. Option désactivée si la configuration du serveur ne le permet pas.": "The verification is daily. Option deactivated if the server configuration does not allow it.", "Langue de l'administration": "Language of administration", - "Langue du site sélectionnée": "Selected site language", + "Langue du site par défaut": "Default site language", "Langue par défaut": "Default language", "Langues": "Languages", "Langues disponibles": "Available languages", @@ -614,6 +614,6 @@ "Couleur icône haut de page": "Color of top page icon", "Icône haut de page, couleur arrière-plan": "Top page icon, background color", "Disponible si le consentement des cookies est activé.": "Available if cookie consent is enabled.", - "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Displays account management icons and logout function for logged-in users." - + "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Displays account management icons and logout function for logged-in users.", + "Définir par défaut": "Set as default" } \ No newline at end of file diff --git a/core/module/install/ressource/i18n/es.json b/core/module/install/ressource/i18n/es.json index d9406184..b6f2c825 100644 --- a/core/module/install/ressource/i18n/es.json +++ b/core/module/install/ressource/i18n/es.json @@ -289,7 +289,7 @@ "La version installée est plus récente": "La versión instalada es más nueva.", "La vérification est quotidienne. Option désactivée si la configuration du serveur ne le permet pas.": "La comprobación es diaria. Opción deshabilitada si la configuración del servidor no lo permite.", "Langue de l'administration": "Idioma de la administración", - "Langue du site sélectionnée": "Idioma del sitio web seleccionado", + "Langue du site par défaut": "Idioma predeterminado del sitio", "Langue par défaut": "Idioma predeterminado", "Langues": "Idiomas", "Langues disponibles": "Idiomas Disponibles", @@ -614,6 +614,6 @@ "Couleur icône haut de page":"Color del icono superior de la página", "Icône haut de page, couleur arrière-plan":"Icono superior de la página, color de fondo", "Disponible si le consentement des cookies est activé.": "Disponible si se ha otorgado el consentimiento de las cookies.", - "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Muestra los iconos de gestión de cuenta y de cierre de sesión para los miembros simples conectados." - + "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.": "Muestra los iconos de gestión de cuenta y de cierre de sesión para los miembros simples conectados.", + "Définir par défaut": "Establecer como predeterminado" } \ No newline at end of file diff --git a/core/module/install/ressource/i18n/fr_FR.json b/core/module/install/ressource/i18n/fr_FR.json index 0497a673..b147c135 100644 --- a/core/module/install/ressource/i18n/fr_FR.json +++ b/core/module/install/ressource/i18n/fr_FR.json @@ -289,7 +289,7 @@ "La version installée est plus récente": "", "La vérification est quotidienne. Option désactivée si la configuration du serveur ne le permet pas.": "", "Langue de l'administration": "", - "Langue du site sélectionnée": "", + "Langue du site par défaut": "", "Langue par défaut": "", "Langues": "", "Langues disponibles": "", @@ -614,5 +614,6 @@ "Couleur icône haut de page": "", "Icône haut de page, couleur arrière-plan": "", "Disponible si le consentement des cookies est activé.": "", - "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.:": "" + "Affiche les icônes de gestion du compte et de déconnexion des membres simples connectés.:": "", + "Définir par défaut": "" } \ No newline at end of file diff --git a/core/module/plugin/plugin.php b/core/module/plugin/plugin.php index 5e936171..0db670a6 100644 --- a/core/module/plugin/plugin.php +++ b/core/module/plugin/plugin.php @@ -424,9 +424,9 @@ class plugin extends common foreach (self::$languages as $key => $value) { // tableau des langues installées if ( - is_dir(self::DATA_DIR . $value - && file_exists(self::DATA_DIR . $value . '/page.json') - && file_exists(self::DATA_DIR . $value . '/module.json')) + is_dir(self::DATA_DIR . $key) + && file_exists(self::DATA_DIR . $key . '/page.json') + && file_exists(self::DATA_DIR . $key . '/module.json') ) { $i18nSites[$key] = $value; } diff --git a/core/module/translate/translate.php b/core/module/translate/translate.php index bf38b04a..c0c612f6 100644 --- a/core/module/translate/translate.php +++ b/core/module/translate/translate.php @@ -29,6 +29,7 @@ class translate extends common // Effacer une langue de contenu ou de l'interface 'content' => self::GROUP_VISITOR, 'update' => self::GROUP_ADMIN, + 'default' => self::GROUP_ADMIN ]; const PAGINATION = '20'; @@ -585,6 +586,40 @@ class translate extends common } } + /* + * Modifie la langue du site par défaut + * + */ + public function default() + { + // Jeton incorrect ou URl avec le code langue incorrecte + $lang = $this->getUrl(2); + if ( + $this->getUrl(3) !== $_SESSION['csrf'] + || array_key_exists($lang, self::$languages) === false + ) { + // Valeurs en sortie + $this->addOutput([ + 'redirect' => helper::baseUrl() . 'translate', + 'state' => false, + 'notification' => helper::translate('Action interdite') + ]); + } + + foreach (self::$languages as $key => $value) { + if (file_exists(self::DATA_DIR . $key . '/.default')) { + unlink(self::DATA_DIR . $key . '/.default'); + touch(self::DATA_DIR . $lang . '/.default'); + break; + } + } + // Valeurs en sortie + $this->addOutput([ + 'notification' => helper::translate('Modifications enregistrées'), + 'redirect' => helper::baseUrl() . 'translate', + 'state' => true, + ]); + } /* * Traitement du changement de langue