function upgrade_status_refresh in Upgrade Status 5
Same name and namespace in other branches
- 6 upgrade_status.module \upgrade_status_refresh()
- 7 upgrade_status.module \upgrade_status_refresh()
Fetch project info via XML from a central server.
3 calls to upgrade_status_refresh()
- upgrade_status_core_version_form_submit in ./
upgrade_status.admin.inc - Set the new Drupal core version in a variable; refresh project data.
- upgrade_status_get_available in ./
upgrade_status.admin.inc - Internal helper to try to get the update information from the cache if possible, and to refresh the cache when necessary.
- _upgrade_status_manual_status in ./
upgrade_status.admin.inc - Menu callback to manually check the upgrade status.
File
- ./
upgrade_status.admin.inc, line 572 - Checks to see if your installed modules are available for the next major release of Drupal.
Code
function upgrade_status_refresh() {
global $base_url;
@set_time_limit(240);
// Since we're fetching new available update data, we want to clear
// everything in our cache, to ensure we recompute the status. Note that
// this does not cause update_status_get_projects() to be recomputed twice
// in the same page load (e.g. when manually checking) since that function
// stashes its answer in a static array.
upgrade_status_invalidate_cache();
$available = array();
$data = array();
$version = variable_get('upgrade_status_core_version', UPGRADE_STATUS_CORE_VERSION);
$projects = update_status_get_projects();
foreach ($projects as $key => $project) {
// No site key to avoid hi-jacking module usage statistics.
$url = _upgrade_status_build_fetch_url($project, $version);
$xml = drupal_http_request($url);
if (isset($xml->data)) {
$data[] = $xml->data;
}
}
if ($data) {
$parser = new update_status_xml_parser();
$available = $parser
->parse($data);
cache_set('upgrade_status_info', 'cache', serialize($available));
variable_set('upgrade_status_last', time());
watchdog('upgrade_status', t('Fetched information about all available new releases and updates.'), WATCHDOG_NOTICE, l('view', 'admin/logs/updates'));
}
else {
watchdog('upgrade_status', 'Unable to fetch any information on available new releases and updates.', WATCHDOG_ERROR, l('view', 'admin/logs/updates'));
}
return $available;
}