From f597bae65238afc89f1504abb0e7c85c4ab0eafd Mon Sep 17 00:00:00 2001 From: ryan Date: Thu, 6 Nov 2008 03:31:41 +0000 Subject: [PATCH] More core update to update-core.php. Allow re-installing current version (requires api.wp.org changes) git-svn-id: http://svn.automattic.com/wordpress/trunk@9543 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/update.php | 10 +- wp-admin/menu.php | 2 +- wp-admin/update-core.php | 215 +++++++++++++++++++++++++++++++++++ wp-admin/update.php | 191 +------------------------------ 4 files changed, 222 insertions(+), 196 deletions(-) create mode 100644 wp-admin/update-core.php diff --git a/wp-admin/includes/update.php b/wp-admin/includes/update.php index f9daafb11..a036542d8 100644 --- a/wp-admin/includes/update.php +++ b/wp-admin/includes/update.php @@ -94,12 +94,12 @@ function core_update_footer( $msg = '' ) { switch ( $cur->response ) { case 'development' : - return sprintf( __( 'You are using a development version (%1$s). Cool! Please stay updated.' ), $GLOBALS['wp_version'], 'update.php?action=upgrade-core'); + return sprintf( __( 'You are using a development version (%1$s). Cool! Please stay updated.' ), $GLOBALS['wp_version'], 'update-core.php'); break; case 'upgrade' : if ( current_user_can('manage_options') ) { - return sprintf( ''.__( 'Get Version %2$s' ).'', wp_nonce_url('update.php?action=upgrade-core', 'upgrade-core'), $cur->current); + return sprintf( ''.__( 'Get Version %2$s' ).'', 'update-core.php', $cur->current); break; } @@ -118,7 +118,7 @@ function update_nag() { return false; if ( current_user_can('manage_options') ) - $msg = sprintf( __('WordPress %1$s is available! Please update now.'), $cur->current, 'update.php?action=upgrade-core' ); + $msg = sprintf( __('WordPress %1$s is available! Please update now.'), $cur->current, 'update-core.php' ); else $msg = sprintf( __('WordPress %1$s is available! Please notify the site administrator.'), $cur->current ); @@ -132,7 +132,7 @@ function update_right_now_message() { $msg = sprintf( __('You are using WordPress %s.'), $GLOBALS['wp_version'] ); if ( isset( $cur->response ) && $cur->response == 'upgrade' && current_user_can('manage_options') ) - $msg .= " " . sprintf( __('Update to %s'), $cur->current ? $cur->current : __( 'Latest' ) ) . ''; + $msg .= " " . sprintf( __('Update to %s'), $cur->current ? $cur->current : __( 'Latest' ) ) . ''; echo "$msg"; } @@ -479,7 +479,7 @@ function maintenance_nag() { return false; if ( current_user_can('manage_options') ) - $msg = sprintf( __('An automated WordPress update has failed to complete - please attempt the update again now.'), 'update.php?action=upgrade-core' ); + $msg = sprintf( __('An automated WordPress update has failed to complete - please attempt the update again now.'), 'update-core.php' ); else $msg = __('An automated WordPress update has failed to complete! Please notify the site administrator.'); diff --git a/wp-admin/menu.php b/wp-admin/menu.php index a398358b9..b7e4c6fff 100644 --- a/wp-admin/menu.php +++ b/wp-admin/menu.php @@ -91,7 +91,7 @@ $menu[45] = array( __('Tools'), 'manage_options', 'import.php', '', '', 'menu-to $submenu['import.php'][10] = array( __('Export'), 'import', 'export.php' ); if ( ! $is_opera ) $submenu['import.php'][20] = array( __('Turbo'), 'read', 'turbo.php' ); - $submenu['import.php'][30] = array( __('Update'), 'read', wp_nonce_url('update.php?action=upgrade-core', 'upgrade-core')); + $submenu['import.php'][30] = array( __('Update'), 'read', 'update-core.php'); $menu[50] = array( __('Settings'), 'manage_options', 'options-general.php', '', 'menu-top-last', 'menu-settings', 'images/menu/settings.png' ); $submenu['options-general.php'][10] = array(__('General'), 'manage_options', 'options-general.php'); diff --git a/wp-admin/update-core.php b/wp-admin/update-core.php new file mode 100644 index 000000000..007046c97 --- /dev/null +++ b/wp-admin/update-core.php @@ -0,0 +1,215 @@ +locale ? + $update->current : sprintf("%s–%s", $update->current, $update->locale); + $current = false; + if ( !isset($update->response) || 'latest' == $update->response ) + $current = true; + $submit = __('Upgrade Automatically'); + if ( 'development' == $update->response ) { + $message = __('You are using a development version of WordPress. You can upgrade to the latest nightly build automatically or download the nightly build and install it manually:'); + $download = __('Download nightly build'); + } else { + if ( $current ) { + $message = sprintf(__('You have the latest version of WordPress. You do not need to upgrade. However, if you want to re-install version %s, you can do so automatically or download the package and re-install manually:'), $version_string); + $submit = __('Re-install Automatically'); + } else { + $message = sprintf(__('You can upgrade to version %s automatically or download the package and install it manually:'), $version_string); + } + $download = sprintf(__('Download %s'), $version_string); + } + + echo '

'; + echo $message; + echo '

'; + echo '
'; + wp_nonce_field('upgrade-core'); + echo '

'; + echo ' '; + echo ''; + echo ''; + echo '' . $download . ' '; + if ( 'en_US' != $update->locale ) + if ( !isset( $update->dismissed ) || !$update->dismissed ) + echo ''; + else + echo ''; + echo '

'; + echo '
'; + +} + +function dismissed_updates() { + $dismissed = get_core_updates( array( 'dismissed' => true, 'available' => false ) ); + if ( $dismissed ) { + + $show_text = js_escape(__('Show hidden updates')); + $hide_text = js_escape(__('Hide hidden updates')); + ?> + + '.__('Show hidden updates').'

'; + echo ''; + } +} + +/** + * Display upgrade WordPress for downloading latest or upgrading automatically form. + * + * @since 2.7 + * + * @return null + */ +function core_upgrade_preamble() { + $updates = get_core_updates(); + + echo '
'; + echo '

' . __('Upgrade WordPress') . '

'; + + if ( !isset($updates[0]->response) || 'latest' == $updates[0]->response ) { + echo '

'; + _e('You have the latest version of WordPress. You do not need to upgrade'); + echo '

'; + dismissed_updates(); + echo '
'; + } else { + echo '

'; + _e('Important: before upgrading, please backup your database and files.'); + echo '

'; + + echo '

'; + _e( 'There is a new version of WordPress available for upgrade' ); + echo '

'; + } + + echo ''; + dismissed_updates(); + echo ''; +} + + +/** + * Upgrade WordPress core display. + * + * @since 2.7 + * + * @return null + */ +function do_core_upgrade() { + global $wp_filesystem; + + $url = wp_nonce_url('update-core.php?action=do-core-upgrade', 'upgrade-core'); + if ( false === ($credentials = request_filesystem_credentials($url)) ) + return; + + $version = isset( $_POST['version'] )? $_POST['version'] : false; + $locale = isset( $_POST['locale'] )? $_POST['locale'] : 'en_US'; + $update = find_core_update( $version, $locale ); + if ( !$update ) + return; + + + if ( ! WP_Filesystem($credentials) ) { + request_filesystem_credentials($url, '', true); //Failed to connect, Error and request again + return; + } + + echo '
'; + echo '

' . __('Upgrade WordPress') . '

'; + if ( $wp_filesystem->errors->get_error_code() ) { + foreach ( $wp_filesystem->errors->get_error_messages() as $message ) + show_message($message); + echo '
'; + return; + } + + $result = wp_update_core($update, 'show_message'); + + if ( is_wp_error($result) ) { + show_message($result); + if ('up_to_date' != $result->get_error_code() ) + show_message( __('Installation Failed') ); + } else { + show_message( __('WordPress upgraded successfully') ); + } + echo ''; +} + +function do_dismiss_core_update() { + $version = isset( $_POST['version'] )? $_POST['version'] : false; + $locale = isset( $_POST['locale'] )? $_POST['locale'] : 'en_US'; + $update = find_core_update( $version, $locale ); + if ( !$update ) + return; + dismiss_core_update( $update ); + wp_redirect( wp_nonce_url('update-core.php?action=upgrade-core', 'upgrade-core') ); +} + +function do_undismiss_core_update() { + $version = isset( $_POST['version'] )? $_POST['version'] : false; + $locale = isset( $_POST['locale'] )? $_POST['locale'] : 'en_US'; + $update = find_core_update( $version, $locale ); + if ( !$update ) + return; + undismiss_core_update( $version, $locale ); + wp_redirect( wp_nonce_url('update-core.php?action=upgrade-core', 'upgrade-core') ); +} + +$action = isset($_GET['action']) ? $_GET['action'] : 'upgrade-core'; + +if ( 'upgrade-core' == $action ) { + $title = __('Upgrade WordPress'); + $parent_file = 'index.php'; + require_once('admin-header.php'); + core_upgrade_preamble(); + include('admin-footer.php'); +} elseif ( 'do-core-upgrade' == $action ) { + check_admin_referer('upgrade-core'); + $title = __('Upgrade WordPress'); + $parent_file = 'index.php'; + // do the (un)dismiss actions before headers, + // so that they can redirect + if ( isset( $_POST['dismiss'] ) ) + do_dismiss_core_update(); + elseif ( isset( $_POST['undismiss'] ) ) + do_undismiss_core_update(); + require_once('admin-header.php'); + if ( isset( $_POST['upgrade'] ) ) + do_core_upgrade(); + include('admin-footer.php'); +}?> \ No newline at end of file diff --git a/wp-admin/update.php b/wp-admin/update.php index 4ecb83717..7ed10489c 100644 --- a/wp-admin/update.php +++ b/wp-admin/update.php @@ -1,6 +1,6 @@ '; } -function list_core_update( $update ) { - $version_string = 'en_US' == $update->locale? - $update->current : sprintf("%s–%s", $update->current, $update->locale); - if ( 'development' == $update->response ) { - $message = __('You are using a development version of WordPress. You can upgrade to the latest nightly build automatically or download the nightly build and install it manually:'); - $submit = __('Download nightly build'); - } else { - $message = sprintf(__('You can upgrade to version %s automatically or download the package and install it manually:'), $version_string); - $submit = sprintf(__('Download %s'), $version_string); - } - - echo '

'; - echo $message; - echo '

'; - echo '
'; - wp_nonce_field('upgrade-core'); - echo '

'; - echo ' '; - echo ''; - echo ''; - echo '' . $submit . ' '; - if ( 'en_US' != $update->locale ) - if ( !isset( $update->dismissed ) || !$update->dismissed ) - echo ''; - else - echo ''; - echo '

'; - echo '
'; - -} - -function dismissed_updates() { - $dismissed = get_core_updates( array( 'dismissed' => true, 'available' => false ) ); - if ( $dismissed ) { - - $show_text = js_escape(__('Show hidden updates')); - $hide_text = js_escape(__('Hide hidden updates')); - ?> - - '.__('Show hidden updates').'

'; - echo ''; - } -} - -/** - * Display upgrade WordPress for downloading latest or upgrading automatically form. - * - * @since 2.7 - * - * @return null - */ -function core_upgrade_preamble() { - $updates = get_core_updates(); - - echo '
'; - echo '

' . __('Upgrade WordPress') . '

'; - - if ( !isset($updates[0]->response) || 'latest' == $updates[0]->response ) { - echo '

'; - _e('You have the latest version of WordPress. You do not need to upgrade'); - echo '

'; - dismissed_updates(); - echo '
'; - return; - } - - echo '

'; - _e('Important: before upgrading, please backup your database and files.'); - echo '

'; - - echo '

'; - _e( 'There is a new version of WordPress available for upgrade' ); - echo '

'; - echo ''; - dismissed_updates(); - echo ''; -} - - -/** - * Upgrade WordPress core display. - * - * @since 2.7 - * - * @return null - */ -function do_core_upgrade() { - global $wp_filesystem; - - $url = wp_nonce_url('update.php?action=do-core-upgrade', 'upgrade-core'); - if ( false === ($credentials = request_filesystem_credentials($url)) ) - return; - - $version = isset( $_POST['version'] )? $_POST['version'] : false; - $locale = isset( $_POST['locale'] )? $_POST['locale'] : 'en_US'; - $update = find_core_update( $version, $locale ); - if ( !$update ) - return; - - - if ( ! WP_Filesystem($credentials) ) { - request_filesystem_credentials($url, '', true); //Failed to connect, Error and request again - return; - } - - echo '
'; - echo '

' . __('Upgrade WordPress') . '

'; - if ( $wp_filesystem->errors->get_error_code() ) { - foreach ( $wp_filesystem->errors->get_error_messages() as $message ) - show_message($message); - echo '
'; - return; - } - - $result = wp_update_core($update, 'show_message'); - - if ( is_wp_error($result) ) { - show_message($result); - if ('up_to_date' != $result->get_error_code() ) - show_message( __('Installation Failed') ); - } else { - show_message( __('WordPress upgraded successfully') ); - } - echo ''; -} - -function do_dismiss_core_update() { - $version = isset( $_POST['version'] )? $_POST['version'] : false; - $locale = isset( $_POST['locale'] )? $_POST['locale'] : 'en_US'; - $update = find_core_update( $version, $locale ); - if ( !$update ) - return; - dismiss_core_update( $update ); - wp_redirect( wp_nonce_url('update.php?action=upgrade-core', 'upgrade-core') ); -} - -function do_undismiss_core_update() { - $version = isset( $_POST['version'] )? $_POST['version'] : false; - $locale = isset( $_POST['locale'] )? $_POST['locale'] : 'en_US'; - $update = find_core_update( $version, $locale ); - if ( !$update ) - return; - undismiss_core_update( $version, $locale ); - wp_redirect( wp_nonce_url('update.php?action=upgrade-core', 'upgrade-core') ); -} - if ( isset($_GET['action']) ) { $plugin = isset($_GET['plugin']) ? trim($_GET['plugin']) : ''; $theme = isset($_REQUEST['theme']) ? urldecode($_REQUEST['theme']) : ''; @@ -322,26 +153,6 @@ if ( isset($_GET['action']) ) { include(WP_PLUGIN_DIR . '/' . $plugin); } iframe_footer(); - } elseif ( 'upgrade-core' == $action ) { - $title = __('Upgrade WordPress'); - $parent_file = 'index.php'; - require_once('admin-header.php'); - core_upgrade_preamble(); - include('admin-footer.php'); - } elseif ( 'do-core-upgrade' == $action ) { - check_admin_referer('upgrade-core'); - $title = __('Upgrade WordPress'); - $parent_file = 'index.php'; - // do the (un)dismiss actions before headers, - // so that they can redirect - if ( isset( $_POST['dismiss'] ) ) - do_dismiss_core_update(); - elseif ( isset( $_POST['undismiss'] ) ) - do_undismiss_core_update(); - require_once('admin-header.php'); - if ( isset( $_POST['upgrade'] ) ) - do_core_upgrade(); - include('admin-footer.php'); } elseif ( 'upgrade-theme' == $action ) { check_admin_referer('upgrade-theme_' . $theme); $title = __('Upgrade Theme');