X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/00dbffaf1593b0ac719d98f00839221a9ca52133..refs/tags/wordpress-3.7:/wp-admin/update-core.php diff --git a/wp-admin/update-core.php b/wp-admin/update-core.php index a45b9be9..99887d36 100644 --- a/wp-admin/update-core.php +++ b/wp-admin/update-core.php @@ -7,7 +7,7 @@ */ /** WordPress Administration Bootstrap */ -require_once('./admin.php'); +require_once( dirname( __FILE__ ) . '/admin.php' ); wp_enqueue_style( 'plugin-install' ); wp_enqueue_script( 'plugin-install' ); @@ -22,11 +22,17 @@ if ( ! current_user_can( 'update_core' ) && ! current_user_can( 'update_themes' wp_die( __( 'You do not have sufficient permissions to update this site.' ) ); function list_core_update( $update ) { - global $wp_local_package, $wpdb; - static $first_pass = true; + global $wp_local_package, $wpdb, $wp_version; + static $first_pass = true; + + if ( 'en_US' == $update->locale && 'en_US' == get_locale() ) + $version_string = $update->current; + // If the only available update is a partial builds, it doesn't need a language-specific version string. + elseif ( 'en_US' == $update->locale && $update->packages->partial && $wp_version == $update->partial_version && ( $updates = get_core_updates() ) && 1 == count( $updates ) ) + $version_string = $update->current; + else + $version_string = sprintf( "%s–%s", $update->current, $update->locale ); - $version_string = ('en_US' == $update->locale && 'en_US' == get_locale() ) ? - $update->current : sprintf("%s–%s", $update->current, $update->locale); $current = false; if ( !isset($update->response) || 'latest' == $update->response ) $current = true; @@ -40,7 +46,7 @@ function list_core_update( $update ) { $download = __('Download nightly build'); } else { if ( $current ) { - $message = sprintf(__('You have the latest version of WordPress. You do not need to update. However, if you want to re-install version %s, you can do so automatically or download the package and re-install manually:'), $version_string); + $message = sprintf( __( 'If you need to re-install version %s, you can do so here or download the package and re-install manually:' ), $version_string ); $submit = __('Re-install Now'); $form_action = 'update-core.php?action=do-core-reinstall'; } else { @@ -89,7 +95,8 @@ function list_core_update( $update ) { echo '

'; if ( 'en_US' != $update->locale && ( !isset($wp_local_package) || $wp_local_package != $update->locale ) ) echo '

'.__('This localized version contains both the translation and various other localization fixes. You can skip upgrading if you want to keep your current translation.').'

'; - else if ( 'en_US' == $update->locale && get_locale() != 'en_US' ) { + // Partial builds don't need language-specific warnings. + elseif ( 'en_US' == $update->locale && get_locale() != 'en_US' && ( ! $update->packages->partial && $wp_version == $update->partial_version ) ) { echo '

'.sprintf( __('You are about to install WordPress %s in English (US). There is a chance this update will break your translation. You may prefer to wait for the localized version to be released.'), $update->response != 'development' ? $update->current : '' ).'

'; } echo ''; @@ -131,13 +138,27 @@ function dismissed_updates() { * @return null */ function core_upgrade_preamble() { - global $wp_version; + global $wp_version, $required_php_version, $required_mysql_version; $updates = get_core_updates(); if ( !isset($updates[0]->response) || 'latest' == $updates[0]->response ) { echo '

'; _e('You have the latest version of WordPress.'); + + if ( wp_http_supports( 'ssl' ) ) { + require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; + $upgrader = new WP_Automatic_Updater; + $future_minor_update = (object) array( + 'current' => $wp_version . '.1.next.minor', + 'version' => $wp_version . '.1.next.minor', + 'php_version' => $required_php_version, + 'mysql_version' => $required_mysql_version, + ); + $should_auto_update = $upgrader->should_update( 'core', $future_minor_update, ABSPATH ); + if ( $should_auto_update ) + echo ' ' . __( 'Future security updates will be applied automatically.' ); + } echo '

'; } else { echo '

'; @@ -149,6 +170,13 @@ function core_upgrade_preamble() { echo ''; } + if ( isset( $updates[0] ) && $updates[0]->response == 'development' ) { + require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; + $upgrader = new WP_Automatic_Updater; + if ( wp_http_supports( 'ssl' ) && $upgrader->should_update( 'core', $updates[0], ABSPATH ) ) + echo '

BETA TESTERS: This site is set up to install updates of future beta versions automatically.

'; + } + echo ''; - if ( $updates ) { + // Don't show the maintenance mode notice when we are only showing a single re-install option. + if ( $updates && ( count( $updates ) > 1 || $updates[0]->response != 'latest' ) ) { echo '

' . __( 'While your site is being updated, it will be in maintenance mode. As soon as your updates are complete, your site will return to normal.' ) . '

'; - } else { + } elseif ( ! $updates ) { list( $normalized_version ) = explode( '-', $wp_version ); echo '

' . sprintf( __( 'Learn more about WordPress %s.' ), esc_url( self_admin_url( 'about.php' ) ), $normalized_version ) . '

'; } @@ -188,7 +217,7 @@ function list_plugin_updates() { ?>

-
+

@@ -265,8 +294,8 @@ function list_theme_updates() { ?>

-

Please Note: Any customizations you have made to theme files will be lost. Please consider using child themes for modifications.'), _x('http://codex.wordpress.org/Child_Themes', 'Link used in suggestion to use child themes in GUU') ); ?>

- +

Please Note: Any customizations you have made to theme files will be lost. Please consider using child themes for modifications.' ), __( 'http://codex.wordpress.org/Child_Themes' ) ); ?>

+

@@ -289,7 +318,7 @@ function list_theme_updates() { echo " - + "; } ?> @@ -300,6 +329,27 @@ function list_theme_updates() { ' . __( 'Translations' ) . ''; + echo '

' . __( 'Your translations are all up to date.' ) . '

'; + } + return; + } + + $form_action = 'update-core.php?action=do-translation-upgrade'; + ?> +

+ +

+ +

+ +

'; + return; + } + + if ( ! WP_Filesystem( $credentials, ABSPATH ) ) { + // Failed to connect, Error and request again + request_filesystem_credentials( $url, '', true, ABSPATH ); + echo '
'; + return; + } + if ( $wp_filesystem->errors->get_error_code() ) { foreach ( $wp_filesystem->errors->get_error_messages() as $message ) show_message($message); @@ -343,7 +402,10 @@ function do_core_upgrade( $reinstall = false ) { if ( $reinstall ) $update->response = 'reinstall'; - $result = wp_update_core($update, 'show_message'); + add_filter( 'update_feedback', 'show_message' ); + + $upgrader = new Core_Upgrader(); + $result = $upgrader->upgrade( $update ); if ( is_wp_error($result) ) { show_message($result); @@ -448,12 +510,15 @@ if ( 'upgrade-core' == $action ) { echo '   ' . __( 'Check Again' ) . ''; echo '

'; - if ( current_user_can( 'update_core' ) ) + if ( $core = current_user_can( 'update_core' ) ) core_upgrade_preamble(); - if ( current_user_can( 'update_plugins' ) ) + if ( $plugins = current_user_can( 'update_plugins' ) ) list_plugin_updates(); - if ( current_user_can( 'update_themes' ) ) + if ( $themes = current_user_can( 'update_themes' ) ) list_theme_updates(); + if ( $core || $plugins || $themes ) + list_translation_updates(); + unset( $core, $plugins, $themes ); do_action('core_upgrade_preamble'); echo ''; include(ABSPATH . 'wp-admin/admin-footer.php'); @@ -541,6 +606,26 @@ if ( 'upgrade-core' == $action ) { echo ''; include(ABSPATH . 'wp-admin/admin-footer.php'); +} elseif ( 'do-translation-upgrade' == $action ) { + + if ( ! current_user_can( 'update_core' ) && ! current_user_can( 'update_plugins' ) && ! current_user_can( 'update_themes' ) ) + wp_die( __( 'You do not have sufficient permissions to update this site.' ) ); + + check_admin_referer( 'upgrade-translations' ); + + require_once( ABSPATH . 'wp-admin/admin-header.php' ); + include_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' ); + + $url = 'update-core.php?action=do-translation-upgrade'; + $nonce = 'upgrade-translations'; + $title = __( 'Update Translations' ); + $context = WP_LANG_DIR; + + $upgrader = new Language_Pack_Upgrader( new Language_Pack_Upgrader_Skin( compact( 'url', 'nonce', 'title', 'context' ) ) ); + $result = $upgrader->bulk_upgrade(); + + require_once( ABSPATH . 'wp-admin/admin-footer.php' ); + } else { do_action('update-core-custom_' . $action); -} \ No newline at end of file +}
" . $theme->display('Name') . ' ' . sprintf( __( 'You have version %1$s installed. Update to %2$s.' ), $theme->display('Version'), $theme->update['new_version'] ) . "" . $theme->display('Name') . ' ' . sprintf( __( 'You have version %1$s installed. Update to %2$s.' ), $theme->display('Version'), $theme->update['new_version'] ) . "