/** * 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; }