From 5380dfa886f2a6f0b13d7bcf8ee05e6b4e924eaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be> Date: Thu, 8 Jun 2017 16:47:36 +0200 Subject: [PATCH] Fixes #5568 Fixing language setting and menu reloading --- include/class_pluglist.inc | 12 ++---------- include/functions.inc | 11 ++++++----- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/include/class_pluglist.inc b/include/class_pluglist.inc index c8248aa3a..974580ead 100644 --- a/include/class_pluglist.inc +++ b/include/class_pluglist.inc @@ -62,6 +62,8 @@ class pluglist { /* Fill info part of pluglist */ $classes = get_declared_classes(); + /* To avoid plugins changing index when reloading */ + sort($classes); $index = 0; $depends_infos = array(); @@ -477,16 +479,6 @@ class pluglist { return isset($this->allowed_plugins[$plug_id]); } - - /*! - * \brief Force the menu to be recreated - */ - function reset_menus() - { - $this->menu = ""; - $this->iconmenu = ""; - } - static function pluginInfos($cname) { $plist = session::global_get('plist'); diff --git a/include/functions.inc b/include/functions.inc index 458607756..812bef3f7 100644 --- a/include/functions.inc +++ b/include/functions.inc @@ -159,7 +159,7 @@ function plugin_available($plugin) */ function load_plist ($ldap_available = TRUE) { - global $config; + global $config, $plist; if (!session::global_is_set('plist')) { /* Initially load all classes */ load_all_classes(); @@ -2570,15 +2570,16 @@ function initLanguage($lang = NULL) $ret = FALSE; - /* Reset menu cache if language changed */ + /* Reset plist cache if language changed */ if ((!session::global_is_set('lang')) || (session::global_get('lang') != $lang)) { $ret = TRUE; if (session::global_is_set('plist')) { if ($_SERVER['REQUEST_METHOD'] != 'POST') { - @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, session::global_get('lang'), 'Plist already loaded with language '); + @DEBUG (DEBUG_TRACE, __LINE__, __FUNCTION__, __FILE__, session::global_get('lang'), 'Plist already loaded with language'); } - $plist = session::global_get('plist'); - $plist->reset_menus(); + session::global_un_set('plist'); + session::global_set('lang', $lang); + load_plist(); } } -- GitLab