aboutsummaryrefslogtreecommitdiff
path: root/engine/classes
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-01-03 02:09:15 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-01-03 02:09:15 +0000
commitb541e8d324c3feeaa50d185013837c31bae32c6a (patch)
treec974faf1345b70d27dc4671cfaac689bb7186f83 /engine/classes
parent24daa0a2d86484d559467279780e1e662aff0a08 (diff)
downloadelgg-b541e8d324c3feeaa50d185013837c31bae32c6a.tar.gz
elgg-b541e8d324c3feeaa50d185013837c31bae32c6a.tar.bz2
Fixes #2763. Better normalizing for unused 1.7 manifest options. Added logging when ElggPluginPackage can't be loaded. Better disabling of deleted physical plugins.
git-svn-id: http://code.elgg.org/elgg/trunk@7819 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/classes')
-rw-r--r--engine/classes/ElggPlugin.php1
-rw-r--r--engine/classes/ElggPluginManifest.php16
2 files changed, 15 insertions, 2 deletions
diff --git a/engine/classes/ElggPlugin.php b/engine/classes/ElggPlugin.php
index fb9138ab9..eac98da57 100644
--- a/engine/classes/ElggPlugin.php
+++ b/engine/classes/ElggPlugin.php
@@ -83,6 +83,7 @@ class ElggPlugin extends ElggObject {
$this->manifest = $this->package->getManifest();
} catch (Exception $e) {
// we always have to allow the entity to load.
+ elgg_log("Failed to load $this->guid as a plugin. " . $e->getMessage(), 'WARNING');
}
}
diff --git a/engine/classes/ElggPluginManifest.php b/engine/classes/ElggPluginManifest.php
index 9fcdaaf55..290a59a0c 100644
--- a/engine/classes/ElggPluginManifest.php
+++ b/engine/classes/ElggPluginManifest.php
@@ -330,7 +330,12 @@ class ElggPluginManifest {
* @return array
*/
public function getProvides() {
- $provides = $this->parser->getAttribute('provides');
+ // normalize for 1.7
+ if ($this->getApiVersion() < 1.8) {
+ $provides = array();
+ } else {
+ $provides = $this->parser->getAttribute('provides');
+ }
if (!$provides) {
$provides = array();
@@ -370,6 +375,8 @@ class ElggPluginManifest {
'comparison' => 'ge'
)
);
+ } else {
+ $reqs = array();
}
} else {
$reqs = $this->parser->getAttribute('requires');
@@ -465,7 +472,12 @@ class ElggPluginManifest {
* @return array
*/
public function getConflicts() {
- $conflicts = $this->parser->getAttribute('conflicts');
+ // normalize for 1.7
+ if ($this->getApiVersion() < 1.8) {
+ $conflicts = array();
+ } else {
+ $conflicts = $this->parser->getAttribute('conflicts');
+ }
if (!$conflicts) {
$conflicts = array();