diff options
Diffstat (limited to 'plugins/Marketplace/Controller.php')
-rw-r--r-- | plugins/Marketplace/Controller.php | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/plugins/Marketplace/Controller.php b/plugins/Marketplace/Controller.php index 986ee5cf9a..418c39dc42 100644 --- a/plugins/Marketplace/Controller.php +++ b/plugins/Marketplace/Controller.php @@ -271,6 +271,7 @@ class Controller extends \Piwik\Plugin\ControllerAdmin $view->isPluginsAdminEnabled = CorePluginsAdmin::isPluginsAdminEnabled(); $view->isAutoUpdatePossible = SettingsPiwik::isAutoUpdatePossible(); $view->isAutoUpdateEnabled = SettingsPiwik::isAutoUpdateEnabled(); + $view->isPluginUploadEnabled = CorePluginsAdmin::isPluginUploadEnabled(); return $view->render(); } @@ -317,17 +318,27 @@ class Controller extends \Piwik\Plugin\ControllerAdmin for ($i = 0; $i <= 10; $i++) { foreach ($paidPlugins as $index => $paidPlugin) { + if (empty($paidPlugin)) { + continue; + } + $pluginName = $paidPlugin['name']; if ($this->pluginManager->isPluginActivated($pluginName)) { - unset($paidPlugins[$index]); + // we do not use unset since it might skip a plugin afterwards when removing index + $paidPlugins[$index] = null; + continue; + } + + if (!$this->pluginManager->isPluginInFilesystem($pluginName)) { + $paidPlugins[$index] = null; continue; } if (empty($paidPlugin['require']) || !$dependency->hasDependencyToDisabledPlugin($paidPlugin['require'])) { - unset($paidPlugins[$index]); + $paidPlugins[$index] = null; try { $this->pluginManager->activatePlugin($pluginName); @@ -340,6 +351,8 @@ class Controller extends \Piwik\Plugin\ControllerAdmin } } } + + $paidPlugins = array_filter($paidPlugins); } if ($hasErrors) { |