コード例 #1
0
ファイル: Marketplace.php プロジェクト: JoeHorn/piwik
 /**
  * @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;
 }
コード例 #2
0
 /**
  * @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;
 }
コード例 #3
0
 /**
  * @throws PluginInstallerException
  */
 private function makeSurePluginNameIsValid()
 {
     try {
         $marketplace = new MarketplaceApiClient();
         $pluginDetails = $marketplace->getPluginInfo($this->pluginName);
     } catch (\Exception $e) {
         throw new PluginInstallerException($e->getMessage());
     }
     if (empty($pluginDetails)) {
         throw new PluginInstallerException('This plugin was not found in the Marketplace.');
     }
 }
コード例 #4
0
ファイル: Controller.php プロジェクト: pombredanne/ArcherSys
 /**
  * Forces a check for updates and re-renders the header message.
  *
  * This will check piwik.org at most once per 10s.
  */
 public function checkForUpdates()
 {
     Piwik::checkUserHasSomeAdminAccess();
     $this->checkTokenInUrl();
     // perform check (but only once every 10s)
     UpdateCheck::check($force = false, UpdateCheck::UI_CLICK_CHECK_INTERVAL);
     MarketplaceApiClient::clearAllCacheEntries();
     $view = new View('@CoreHome/checkForUpdates');
     $this->setGeneralVariablesView($view);
     return $view->render();
 }