diff --git a/include/class_pluglist.inc b/include/class_pluglist.inc index c8248aa3a9b0de02d22e223e67befd164c592fa2..974580ead2de819207ad130cbc659f9ec97c83e3 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 45860775626d019a72f9281a0cac4e9ff7f9b350..812bef3f77d820f6181ae07e54d5517c09476c21 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(); } }