Piwik\Plugins\Marketplace\Plugins::getPluginsHavingUpdate PHP Method

getPluginsHavingUpdate() public method

public getPluginsHavingUpdate ( ) : array
return array
    public function getPluginsHavingUpdate()
    {
        $this->pluginManager->loadAllPluginsAndGetTheirInfo();
        $loadedPlugins = $this->pluginManager->getLoadedPlugins();
        try {
            $pluginsHavingUpdate = $this->marketplaceClient->getInfoOfPluginsHavingUpdate($loadedPlugins);
        } 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'] = $this->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;
    }

Usage Example

Exemplo n.º 1
0
 private function createPluginsOrThemesView($template, $themesOnly)
 {
     Piwik::checkUserHasSuperUserAccess();
     $view = $this->configureView('@CorePluginsAdmin/' . $template);
     $view->updateNonce = Nonce::getNonce(MarketplaceController::UPDATE_NONCE);
     $view->activateNonce = Nonce::getNonce(static::ACTIVATE_NONCE);
     $view->uninstallNonce = Nonce::getNonce(static::UNINSTALL_NONCE);
     $view->deactivateNonce = Nonce::getNonce(static::DEACTIVATE_NONCE);
     $view->pluginsInfo = $this->getPluginsInfo($themesOnly);
     $users = Request::processRequest('UsersManager.getUsers');
     $view->otherUsersCount = count($users) - 1;
     $view->themeEnabled = $this->pluginManager->getThemeEnabled()->getPluginName();
     $view->pluginNamesHavingSettings = array_keys($this->settingsProvider->getAllSystemSettings());
     $view->isMarketplaceEnabled = Marketplace::isMarketplaceEnabled();
     $view->isPluginsAdminEnabled = CorePluginsAdmin::isPluginsAdminEnabled();
     $view->pluginsHavingUpdate = array();
     $view->marketplacePluginNames = array();
     if (Marketplace::isMarketplaceEnabled() && $this->marketplacePlugins) {
         try {
             $view->marketplacePluginNames = $this->marketplacePlugins->getAvailablePluginNames($themesOnly);
             $view->pluginsHavingUpdate = $this->marketplacePlugins->getPluginsHavingUpdate();
         } catch (Exception $e) {
             // curl exec connection error (ie. server not connected to internet)
         }
     }
     return $view;
 }