Revert update changes that snuck in with [19311]. see #19255, see #18876.

git-svn-id: http://svn.automattic.com/wordpress/trunk@19312 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
nacin 2011-11-16 07:23:15 +00:00
parent cd33a2118d
commit 8085f7d529
1 changed files with 38 additions and 50 deletions

View File

@ -143,37 +143,31 @@ function wp_update_plugins() {
$new_option = new stdClass; $new_option = new stdClass;
$new_option->last_checked = time(); $new_option->last_checked = time();
// Check for updated every 60 minutes if hitting update pages; else, check every 12 hours.
$timeout = in_array( current_filter(), array( 'load-plugins.php', 'load-update.php', 'load-update-core.php' ) ) ? 3600 : 43200;
$time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );
// Check for updated every 12 hours, 60 minutes, or immediately, depending on the page. $plugin_changed = false;
$filter = current_filter(); foreach ( $plugins as $file => $p ) {
if ( 'load-update-core.php' != $filter ) { $new_option->checked[ $file ] = $p['Version'];
$timeout = 'load-plugins.php' == $filter || 'load-update.php' == $filter ? 3600 : 43200;
$time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );
if ( $time_not_changed ) { if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) )
$plugin_changed = false; $plugin_changed = true;
foreach ( $plugins as $file => $p ) { }
$new_option->checked[ $file ] = $p['Version'];
if ( isset ( $current->response ) && is_array( $current->response ) ) {
if ( !isset( $current->checked[ $file ] ) || strval($current->checked[ $file ]) !== strval($p['Version']) ) foreach ( $current->response as $plugin_file => $update_details ) {
$plugin_changed = true; if ( ! isset($plugins[ $plugin_file ]) ) {
$plugin_changed = true;
break;
} }
if ( isset ( $current->response ) && is_array( $current->response ) ) {
foreach ( $current->response as $plugin_file => $update_details ) {
if ( ! isset($plugins[ $plugin_file ]) ) {
$plugin_changed = true;
break;
}
}
}
// Bail if we've checked recently and if nothing has changed
if ( ! $plugin_changed )
return false;
} }
} }
// Bail if we've checked in the last 12 hours and if nothing has changed
if ( $time_not_changed && !$plugin_changed )
return false;
// Update last_checked for current to prevent multiple blocking requests if request hangs // Update last_checked for current to prevent multiple blocking requests if request hangs
$current->last_checked = time(); $current->last_checked = time();
set_site_transient( 'update_plugins', $current ); set_site_transient( 'update_plugins', $current );
@ -228,6 +222,10 @@ function wp_update_themes() {
if ( ! is_object($last_update) ) if ( ! is_object($last_update) )
$last_update = new stdClass; $last_update = new stdClass;
// Check for updated every 60 minutes if hitting update pages; else, check every 12 hours.
$timeout = in_array( current_filter(), array( 'load-themes.php', 'load-update.php', 'load-update-core.php' ) ) ? 3600 : 43200;
$time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time( ) - $last_update->last_checked );
$themes = array(); $themes = array();
$checked = array(); $checked = array();
$exclude_fields = array('Template Files', 'Stylesheet Files', 'Status', 'Theme Root', 'Theme Root URI', 'Template Dir', 'Stylesheet Dir', 'Description', 'Tags', 'Screenshot'); $exclude_fields = array('Template Files', 'Stylesheet Files', 'Status', 'Theme Root', 'Theme Root URI', 'Template Dir', 'Stylesheet Dir', 'Description', 'Tags', 'Screenshot');
@ -248,36 +246,26 @@ function wp_update_themes() {
} }
} }
// Check for updated every 12 hours, 60 minutes, or immediately, depending on the page. $theme_changed = false;
$filter = current_filter(); foreach ( $checked as $slug => $v ) {
if ( 'load-update-core.php' != $filter ) { $update_request->checked[ $slug ] = $v;
$timeout = 'load-themes.php' == $filter || 'load-update.php' == $filter ? 3600 : 43200;
$time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time( ) - $last_update->last_checked );
if ( $time_not_changed ) { if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) )
$theme_changed = false; $theme_changed = true;
foreach ( $checked as $slug => $v ) { }
$update_request->checked[ $slug ] = $v;
if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) {
if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) ) foreach ( $last_update->response as $slug => $update_details ) {
$theme_changed = true; if ( ! isset($checked[ $slug ]) ) {
$theme_changed = true;
break;
} }
if ( isset ( $last_update->response ) && is_array( $last_update->response ) ) {
foreach ( $last_update->response as $slug => $update_details ) {
if ( ! isset($checked[ $slug ]) ) {
$theme_changed = true;
break;
}
}
}
// Bail if we've checked recently and if nothing has changed
if ( ! $theme_changed )
return false;
} }
} }
if ( $time_not_changed && !$theme_changed )
return false;
// Update last_checked for current to prevent multiple blocking requests if request hangs // Update last_checked for current to prevent multiple blocking requests if request hangs
$last_update->last_checked = time(); $last_update->last_checked = time();
set_site_transient( 'update_themes', $last_update ); set_site_transient( 'update_themes', $last_update );