if ($plugin->activate()) {
$activated_guids[] = $guid;
} else {
- register_error(elgg_echo('admin:plugins:activate:no', array($plugin->getManifest()->getName())));
+ $msg = $plugin->getError();
+ $string = ($msg) ? 'admin:plugins:activate:no_with_msg' : 'admin:plugins:activate:no';
+ register_error(elgg_echo($string, array($plugin->getFriendlyName(), $plugin->getError())));
}
}
if ($plugin->activate()) {
//system_message(elgg_echo('admin:plugins:activate:yes', array($plugin->getManifest()->getName())));
} else {
- register_error(elgg_echo('admin:plugins:activate:no', array($plugin->getManifest()->getName())));
+ $msg = $plugin->getError();
+ $string = ($msg) ? 'admin:plugins:activate:no_with_msg' : 'admin:plugins:activate:no';
+ register_error(elgg_echo($string, array($plugin->getFriendlyName(), $plugin->getError())));
}
}
}
if ($plugin->deactivate()) {
//system_message(elgg_echo('admin:plugins:deactivate:yes', array($plugin->getManifest()->getName())));
} else {
- register_error(elgg_echo('admin:plugins:deactivate:no', array($plugin->getManifest()->getName())));
+ $msg = $plugin->getError();
+ $string = ($msg) ? 'admin:plugins:deactivate:no_with_msg' : 'admin:plugins:deactivate:no';
+ register_error(elgg_echo($string, array($plugin->getFriendlyName(), $plugin->getError())));
}
}
if ($plugin->deactivate()) {
//system_message(elgg_echo('admin:plugins:activate:yes', array($plugin->getManifest()->getName())));
} else {
- register_error(elgg_echo('admin:plugins:deactivate:no', array($plugin->getManifest()->getName())));
+ $msg = $plugin->getError();
+ $string = ($msg) ? 'admin:plugins:deactivate:no_with_msg' : 'admin:plugins:deactivate:no';
+ register_error(elgg_echo($string, array($plugin->getFriendlyName(), $plugin->getError())));
}
}
}
if ($plugin->setPriority($priority)) {
//system_message(elgg_echo('admin:plugins:set_priority:yes', array($plugin->getManifest()->getName())));
} else {
- register_error(elgg_echo('admin:plugins:set_priority:no', array($plugin->getManifest()->getName())));
+ $msg = $plugin->getError();
+ $string = ($msg) ? 'admin:plugins:set_priority:no_with_msg' : 'admin:plugins:set_priority:no';
+ register_error(elgg_echo($string, array($plugin->getFriendlyName(), $plugin->getError())));
}
// don't regenerate the simplecache because the plugin won't be
return $this->title;
}
+ /**
+ * Returns the manifest's name if available, otherwise the ID.
+ *
+ * @return string
+ * @since 1.8.1
+ */
+ public function getFriendlyName() {
+ $manifest = $this->getManifest();
+ if ($manifest) {
+ return $manifest->getName();
+ }
+
+ return $this->getID();
+ }
+
/**
* Returns the plugin's full path with trailing slash.
*
*/
public function canActivate($site_guid = null) {
if ($this->getPackage()) {
- return $this->getPackage()->isValid() && $this->getPackage()->checkDependencies();
+ $result = $this->getPackage()->isValid() && $this->getPackage()->checkDependencies();
+ if (!$result) {
+ $this->errorMsg = $this->getPackage()->getError();
+ }
+
+ return $result;
}
return false;
$conflict['name'] = $plugin->getManifest()->getName();
if (!$full_report && !$result['status']) {
+ $this->errorMsg = "Conflicts with plugin \"{$plugin->getManifest()->getName()}\".";
return $result['status'];
} else {
$report[] = array(
// unless we're doing a full report, break as soon as we fail.
if (!$full_report && !$result['status']) {
+ $this->errorMsg = "Missing dependencies.";
return $result['status'];
} else {
// build report element and comment
'PluginException:InvalidManifest' => 'Invalid manifest file for plugin %s',
'PluginException:InvalidPlugin' => '%s is not a valid plugin.',
'PluginException:InvalidPlugin:Details' => '%s is not a valid plugin: %s',
+ 'PluginException:NullInstantiated' => 'ElggPlugin cannot be null instantiated. You must pass a GUID, a plugin ID, or a full path.',
'ElggPlugin:MissingID' => 'Missing plugin ID (guid %s)',
'ElggPlugin:NoPluginPackagePackage' => 'Missing ElggPluginPackage for plugin ID %s (guid %s)',
'admin:plugins:set_priority:yes' => "Reordered %s.",
'admin:plugins:set_priority:no' => "Could not reorder %s.",
+ 'admin:plugins:set_priority:no_with_msg' => "Could not reorder %s. Error: %s",
'admin:plugins:deactivate:yes' => "Deactivated %s.",
'admin:plugins:deactivate:no' => "Could not deactivate %s.",
+ 'admin:plugins:deactivate:no_with_msg' => "Could not deactivate %s. Error: %s",
'admin:plugins:activate:yes' => "Activated %s.",
'admin:plugins:activate:no' => "Could not activate %s.",
+ 'admin:plugins:activate:no_with_msg' => "Could not activate %s. Error: %s",
'admin:plugins:categories:all' => 'All categories',
'admin:plugins:plugin_website' => 'Plugin website',
'admin:plugins:author' => '%s',