diff --git a/lib/pluginlib.php b/lib/pluginlib.php index 31e3e0eb794..5179b3c514d 100644 --- a/lib/pluginlib.php +++ b/lib/pluginlib.php @@ -98,6 +98,16 @@ class plugin_manager { global $CFG; if ($disablecache or is_null($this->pluginsinfo)) { + // Hack: include mod and editor subplugin management classes first, + // the adminlib.php is supposed to contain extra admin settings too. + require_once($CFG->libdir.'/adminlib.php'); + foreach(array('mod', 'editor') as $type) { + foreach (get_plugin_list($type) as $dir) { + if (file_exists("$dir/adminlib.php")) { + include_once("$dir/adminlib.php"); + } + } + } $this->pluginsinfo = array(); $plugintypes = get_plugin_types(); $plugintypes = $this->reorder_plugin_types($plugintypes); diff --git a/mod/upgrade.txt b/mod/upgrade.txt index 72411c8168d..c5b23355384 100644 --- a/mod/upgrade.txt +++ b/mod/upgrade.txt @@ -2,6 +2,13 @@ This files describes API changes in /mod/* - activity modules, information provided here is intended especially for developers. +=== 2.4 === + +new features: + +* mod/xxx/adminlib.php may now include 'plugininfo_yoursubplugintype' class definition + used by plugin_manager; it is recommended to store extra admin settings classes in this file + === 2.3 === required changes in code: