diff options
author | Matthieu Aubry <matt@piwik.org> | 2015-11-18 06:55:21 +0300 |
---|---|---|
committer | Matthieu Aubry <matt@piwik.org> | 2015-11-18 06:55:21 +0300 |
commit | eca17c0b44b1a73c439d892cdc0743291c5c6acb (patch) | |
tree | 45a55dfd6b32021d6e90005b70e0939de74daa96 | |
parent | b8b4e06357d1dddf56cfea4073d1632fca62def8 (diff) | |
parent | ea30714acff275cff51930d6f4312722e4cb2916 (diff) |
Merge pull request #9218 from piwik/9160
Show an error message if installing a plugin fails
-rw-r--r-- | core/Plugin/Manager.php | 10 | ||||
-rw-r--r-- | core/Plugin/PluginException.php | 24 |
2 files changed, 21 insertions, 13 deletions
diff --git a/core/Plugin/Manager.php b/core/Plugin/Manager.php index 010838acf8..150151ee3e 100644 --- a/core/Plugin/Manager.php +++ b/core/Plugin/Manager.php @@ -440,16 +440,10 @@ class Manager public function installLoadedPlugins() { Log::debug("Loaded plugins: " . implode(", ", array_keys($this->getLoadedPlugins()))); - $messages = array(); + foreach ($this->getLoadedPlugins() as $plugin) { - try { - $this->installPluginIfNecessary($plugin); - } catch (\Exception $e) { - $messages[] = $e->getMessage(); - } + $this->installPluginIfNecessary($plugin); } - - return $messages; } /** diff --git a/core/Plugin/PluginException.php b/core/Plugin/PluginException.php index 90aa03a342..83816ca365 100644 --- a/core/Plugin/PluginException.php +++ b/core/Plugin/PluginException.php @@ -8,14 +8,28 @@ namespace Piwik\Plugin; +use Piwik\Common; + class PluginException extends \Exception { public function __construct($pluginName, $message) { - parent::__construct("There was a problem installing the plugin " . $pluginName . ": " . $message . " - If this plugin has already been installed, and if you want to hide this message</b>, you must add the following line under the - [PluginsInstalled] - entry in your config/config.ini.php file: - PluginsInstalled[] = $pluginName"); + $pluginName = Common::sanitizeInputValue($pluginName); + $message = Common::sanitizeInputValue($message); + + parent::__construct("There was a problem installing the plugin $pluginName: <br /><br /> + $message + <br /><br /> + If you want to hide this message you must remove the following line under the [Plugins] entry in your + 'config/config.ini.php' file to disable this plugin.<br /> + Plugins[] = $pluginName + <br /><br />If this plugin has already been installed, you must add the following line under the + [PluginsInstalled] entry in your 'config/config.ini.php' file:<br /> + PluginsInstalled[] = $pluginName"); + } + + public function isHtmlMessage() + { + return true; } } |