From bd9aca40946dfd3907d22e3247c698eba48e01d2 Mon Sep 17 00:00:00 2001 From: brettp Date: Fri, 18 Feb 2011 15:34:15 +0000 Subject: Fixes #2945, Refs #2946. Plugins that require priority on an uninstalled plugin don't crash the plugins admin. git-svn-id: http://code.elgg.org/elgg/trunk@8283 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/classes/ElggPluginPackage.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'engine/classes/ElggPluginPackage.php') diff --git a/engine/classes/ElggPluginPackage.php b/engine/classes/ElggPluginPackage.php index e1b3427cc..567ec129f 100644 --- a/engine/classes/ElggPluginPackage.php +++ b/engine/classes/ElggPluginPackage.php @@ -438,7 +438,7 @@ class ElggPluginPackage { * @return bool */ private function checkDepPriority(array $dep, array $plugins, $inverse = false) { - // see if we exist as an ElggPlugin + // grab the ElggPlugin using this package. $this_plugin = elgg_get_plugin_from_id($this->getID()); $this_priority = $this_plugin->getPriority(); @@ -448,6 +448,16 @@ class ElggPluginPackage { } } + // If this isn't a plugin or there are no active plugins, + // we can't satisfy this dep. + // Assume everything is ok. See #2946. + if (!$this->plugin || !$plugins) { + return array( + 'status' => true, + 'value' => 'uninstalled' + ); + } + $test_plugin_priority = $test_plugin->getPriority(); switch ($dep['priority']) { -- cgit v1.2.3