Esempio n. 1
0
 /**
  * Fetch update information for a list of plugins. This method
  * returns for each plugin: the plugin name, current version and
  * meta data of the plugin update, if available.
  *
  * @param array  $plugins    array of plugin meta data
  */
 public function getUpdateInfo($plugins)
 {
     $default_repository = new PluginRepository();
     $plugin_manager = PluginManager::getInstance();
     $update_info = array();
     foreach ($plugins as $plugin) {
         $repository = $default_repository;
         $plugindir = get_config('PLUGINS_PATH') . '/' . $plugin['path'];
         $manifest = $plugin_manager->getPluginManifest($plugindir);
         if (isset($manifest['updateURL'])) {
             $repository = new PluginRepository($manifest['updateURL']);
         }
         $meta_data = $repository->getPlugin($manifest['pluginname']);
         if (isset($meta_data) && version_compare($meta_data['version'], $manifest['version']) > 0) {
             $manifest['update'] = $meta_data;
         }
         $update_info[$plugin['id']] = $manifest;
     }
     return $update_info;
 }