aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/classes/ElggPluginPackage.php12
-rw-r--r--languages/en.php1
2 files changed, 12 insertions, 1 deletions
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']) {
diff --git a/languages/en.php b/languages/en.php
index 99107b464..e1eed9996 100644
--- a/languages/en.php
+++ b/languages/en.php
@@ -96,6 +96,7 @@ $english = array(
'ElggPlugin:Dependencies:Plugin' => 'Plugin: %s',
'ElggPlugin:Dependencies:Priority:After' => 'After %s',
'ElggPlugin:Dependencies:Priority:Before' => 'Before %s',
+ 'ElggPlugin:Dependencies:Priority:Uninstalled' => '%s is not installed',
'ElggPlugin:Dependencies:Suggests:Unsatisfied' => 'Missing',