diff options
author | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-01-26 01:22:12 +0000 |
---|---|---|
committer | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-01-26 01:22:12 +0000 |
commit | 75a5ae666eb9ec89898e81bf9429d361551126fe (patch) | |
tree | 4cfae1af28cc794c2c478b2c0be27dd0c184fdef /engine/lib/plugins.php | |
parent | bbfd05c0c40703399e633151713a09c6f9fbe9a0 (diff) | |
download | elgg-75a5ae666eb9ec89898e81bf9429d361551126fe.tar.gz elgg-75a5ae666eb9ec89898e81bf9429d361551126fe.tar.bz2 |
Fixes #1454: Applied Cash's patch. Bad plugins are automatically disabled and a notice is displayed instead of breaking the site.
git-svn-id: http://code.elgg.org/elgg/trunk@3841 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/lib/plugins.php')
-rw-r--r-- | engine/lib/plugins.php | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/engine/lib/plugins.php b/engine/lib/plugins.php index 0c8af5497..76692b447 100644 --- a/engine/lib/plugins.php +++ b/engine/lib/plugins.php @@ -228,7 +228,14 @@ function load_plugins() { if (is_plugin_enabled($mod)) { if (file_exists($CONFIG->pluginspath . $mod)) { if (!include($CONFIG->pluginspath . $mod . "/start.php")) { - throw new PluginException(sprintf(elgg_echo('PluginException:MisconfiguredPlugin'), $mod)); + // automatically disable the bad plugin + disable_plugin($mod); + + // register error rather than rendering the site unusable with exception + register_error(sprintf(elgg_echo('PluginException:MisconfiguredPlugin'), $mod)); + + // continue loading remaining plugins + continue; } if (!$cached_view_paths) { |