/** * @param bool $themesOnly * @return array */ public function getPluginsHavingUpdate($themesOnly) { $pluginManager = \Piwik\Plugin\Manager::getInstance(); $pluginManager->loadAllPluginsAndGetTheirInfo(); $loadedPlugins = $pluginManager->getLoadedPlugins(); try { $pluginsHavingUpdate = $this->client->getInfoOfPluginsHavingUpdate($loadedPlugins, $themesOnly); } catch (\Exception $e) { $pluginsHavingUpdate = array(); } foreach ($pluginsHavingUpdate as $key => $updatePlugin) { foreach ($loadedPlugins as $loadedPlugin) { if (!empty($updatePlugin['name']) && $loadedPlugin->getPluginName() == $updatePlugin['name']) { $updatePlugin['currentVersion'] = $loadedPlugin->getVersion(); $updatePlugin['isActivated'] = $pluginManager->isPluginActivated($updatePlugin['name']); $pluginsHavingUpdate[$key] = $this->addMissingRequirements($updatePlugin); break; } } } // remove plugins that have updates but for some reason are not loaded foreach ($pluginsHavingUpdate as $key => $updatePlugin) { if (empty($updatePlugin['currentVersion'])) { unset($pluginsHavingUpdate[$key]); } } return $pluginsHavingUpdate; }
/** * @param bool $themesOnly * @return array */ public function getPluginsHavingUpdate($themesOnly) { $pluginManager = \Piwik\Plugin\Manager::getInstance(); $pluginManager->returnLoadedPluginsInfo(); $loadedPlugins = $pluginManager->getLoadedPlugins(); try { $pluginsHavingUpdate = $this->client->getInfoOfPluginsHavingUpdate($loadedPlugins, $themesOnly); } catch (\Exception $e) { $pluginsHavingUpdate = array(); } foreach ($pluginsHavingUpdate as &$updatePlugin) { foreach ($loadedPlugins as $loadedPlugin) { if (!empty($updatePlugin['name']) && $loadedPlugin->getPluginName() == $updatePlugin['name']) { $updatePlugin['currentVersion'] = $loadedPlugin->getVersion(); $updatePlugin['isActivated'] = $pluginManager->isPluginActivated($updatePlugin['name']); $updatePlugin = $this->addMissingRequirements($updatePlugin); break; } } } return $pluginsHavingUpdate; }