From e9535987a7d82f8d8ef836b39afcbb1c087afc8c Mon Sep 17 00:00:00 2001 From: fredtempez Date: Fri, 15 Nov 2019 09:27:15 +0100 Subject: [PATCH] =?UTF-8?q?[10.0.98.dev]=20am=C3=A9liorer=20la=20validit?= =?UTF-8?q?=C3=A9=20d'une=20langue=20demand=C3=A9e=20par=20le=20navigateur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/core.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/core/core.php b/core/core.php index dfc136c5..d93c95a4 100644 --- a/core/core.php +++ b/core/core.php @@ -32,7 +32,7 @@ class common { const I18N_DIR = 'site/i18n/'; // Numéro de version - const ZWII_VERSION = '10.0.97.dev'; + const ZWII_VERSION = '10.0.98.dev'; public static $actions = []; public static $coreModuleIds = [ @@ -358,14 +358,25 @@ class common { } /** - * Récupère la langue sélectionnée + * Récupère et vérifie la langue sélectionnée par l'utilisateur (navigateur) + * Une langue valide a une structure de données et une description dans config. * @param aucun * @return string code iso de la langue */ public function geti18n() { + // Liste des langues dans la config + // On n'utilise pas getData pour éviter une boucle + require_once "core/vendor/jsondb/Dot.php"; + require_once "core/vendor/jsondb/JsonDb.php"; + $db = new \Prowebcraft\JsonDb([ + 'name' => 'config.json', + 'dir' => self::DATA_DIR, + 'template' => self::TEMP_DIR . 'data.template.json' + ]); + $tempData = $db->get('config.i18n'); // Vérifier l'existence du fichier de langue if (isset ($_SESSION['ZWII_USER_I18N']) && - key_exists($_SESSION['ZWII_USER_I18N'] , self::$i18nList) ) { + key_exists($_SESSION['ZWII_USER_I18N'] , $tempData) ) { return ($_SESSION['ZWII_USER_I18N']); } else { // La valeur de la session n'est pas une version installée, remettre à fr