diff options
author | Brett Profitt <brett.profitt@gmail.com> | 2011-08-27 10:41:35 -0700 |
---|---|---|
committer | Brett Profitt <brett.profitt@gmail.com> | 2011-08-27 10:41:35 -0700 |
commit | 0179e8c68b0827d77c61a31c8c0d6bf4a277c785 (patch) | |
tree | 5899e1172afcbfcfe642b14afd76183f93736ad4 /engine/lib/plugins.php | |
parent | 79bc4476464e53d38a36f59f9a438f7592215951 (diff) | |
download | elgg-0179e8c68b0827d77c61a31c8c0d6bf4a277c785.tar.gz elgg-0179e8c68b0827d77c61a31c8c0d6bf4a277c785.tar.bz2 |
Fixes #3434. Manifests are checked more carefully on anything that checks deps. Disabling plugins with invalid manifests from admin page.
Diffstat (limited to 'engine/lib/plugins.php')
-rw-r--r-- | engine/lib/plugins.php | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/engine/lib/plugins.php b/engine/lib/plugins.php index 88217b782..ba98e94f1 100644 --- a/engine/lib/plugins.php +++ b/engine/lib/plugins.php @@ -548,7 +548,12 @@ function elgg_get_plugins_provides($type = null, $name = null) { $provides = array(); foreach ($active_plugins as $plugin) { - if ($plugin_provides = $plugin->getManifest()->getProvides()) { + $plugin_provides = array(); + $manifest = $plugin->getManifest(); + if ($manifest instanceof ElggPluginManifest) { + $plugin_provides = $plugin->getManifest()->getProvides(); + } + if ($plugin_provides) { foreach ($plugin_provides as $provided) { $provides[$provided['type']][$provided['name']] = array( 'version' => $provided['version'], |