From bd28cf062af5f516e8c1b273577a530fc215255b Mon Sep 17 00:00:00 2001 From: brettp Date: Mon, 14 Mar 2011 23:07:31 +0000 Subject: Fixes #2928: Invalid plugins are shown on the advance page with details about the problem and a link to the docs. git-svn-id: http://code.elgg.org/elgg/trunk@8709 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/classes/ElggPlugin.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'engine/classes/ElggPlugin.php') diff --git a/engine/classes/ElggPlugin.php b/engine/classes/ElggPlugin.php index 69b3b1c67..55be2b887 100644 --- a/engine/classes/ElggPlugin.php +++ b/engine/classes/ElggPlugin.php @@ -14,6 +14,7 @@ class ElggPlugin extends ElggObject { private $path; private $pluginID; + private $errorMsg = ''; /** * Set subtype to 'plugin' @@ -86,6 +87,7 @@ class ElggPlugin extends ElggObject { } 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'); + $this->errorMsg = $e->getmessage(); } } @@ -547,14 +549,17 @@ class ElggPlugin extends ElggObject { */ public function isValid() { if (!$this->getID()) { + $this->errorMsg = elgg_echo('ElggPlugin:NoId', array($this->guid)); return false; } if (!$this->package instanceof ElggPluginPackage) { + $this->errorMsg = elgg_echo('ElggPlugin:NoPluginPackagePackage', array($this->getID(), $this->guid)); return false; } if (!$this->package->isValid()) { + $this->errorMsg = $this->package->getError(); return false; } @@ -951,4 +956,13 @@ class ElggPlugin extends ElggObject { return remove_entity_relationship($this->guid, 'active_plugin', $site->guid); } } + + /** + * Returns the last error message registered. + * + * @return string|null + */ + public function getError() { + return $this->errorMsg; + } } -- cgit v1.2.3