Merge branch '12309' into 12400

This commit is contained in:
Fred Tempez 2023-04-24 21:26:47 +02:00
commit 1a0f6b1721
10 changed files with 58 additions and 17 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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