X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/8a06f4f9392d1ac373442f82ee40428a3cb81395..449d082fcc4873c1f7d363a0d9f7409be7f6e77d:/wp-admin/update.php diff --git a/wp-admin/update.php b/wp-admin/update.php index c3cd2892..803f50e2 100644 --- a/wp-admin/update.php +++ b/wp-admin/update.php @@ -1,94 +1,24 @@

' . __('Error: There was an error connecting to the server, Please verify the settings are correct.') . '

'; -?> -
-
-

-

- - - - - - - - - - - - - - - - - -
size="40" />
size="40" />
size="40" />'.__('(Password not shown)').''; ?>
- -
-

- -

-
-
-get_error_data() ) - $message = $message->get_error_message() . ': ' . $message->get_error_data(); - else - $message = $message->get_error_message(); - } - echo "

$message

\n"; -} - +/** + * Plugin upgrade display. + * + * @since 2.5 + * + * @param string $plugin Plugin + */ function do_plugin_upgrade($plugin) { global $wp_filesystem; @@ -97,7 +27,10 @@ function do_plugin_upgrade($plugin) { return; if ( ! WP_Filesystem($credentials) ) { - request_filesystem_credentials($url, '', true); //Failed to connect, Error and request again + $error = true; + if ( is_object($wp_filesystem) && $wp_filesystem->errors->get_error_code() ) + $error = $wp_filesystem->errors; + request_filesystem_credentials($url, '', $error); //Failed to connect, Error and request again return; } @@ -116,13 +49,74 @@ function do_plugin_upgrade($plugin) { if ( is_wp_error($result) ) { show_message($result); - show_message( __('Installation Failed') ); + show_message( __('Plugin upgrade Failed') ); } else { - //Result is the new plugin file relative to WP_PLUGIN_DIR - show_message( __('Plugin upgraded successfully') ); + $plugin_file = $result; + show_message( __('Plugin upgraded successfully') ); if( $result && $was_activated ){ show_message(__('Attempting reactivation of the plugin')); - echo ''; + echo ''; + } + $update_actions = array( + 'activate_plugin' => '' . __('Activate Plugin') . '', + 'plugins_page' => '' . __('Return to Plugins page') . '' + ); + if ( $was_activated ) + unset( $update_actions['activate_plugin'] ); + + $update_actions = apply_filters('update_plugin_complete_actions', $update_actions, $plugin_file); + if ( ! empty($update_actions) ) + show_message('' . __('Actions:') . ' ' . implode(' | ', (array)$update_actions)); + } + echo ''; +} + +/** + * Theme upgrade display. + * + * @since 2.5 + * + * @param string $plugin Plugin + */ +function do_theme_upgrade($theme) { + global $wp_filesystem; + + $url = wp_nonce_url('update.php?action=upgrade-theme&theme=' . urlencode($theme), 'upgrade-plugin_' . urlencode($theme)); + if ( false === ($credentials = request_filesystem_credentials($url)) ) + return; + + if ( ! WP_Filesystem($credentials) ) { + $error = true; + if ( is_object($wp_filesystem) && $wp_filesystem->errors->get_error_code() ) + $error = $wp_filesystem->errors; + request_filesystem_credentials($url, '', $error); //Failed to connect, Error and request again + return; + } + + echo '
'; + echo '

' . __('Upgrade Theme') . '

'; + if ( $wp_filesystem->errors->get_error_code() ) { + foreach ( $wp_filesystem->errors->get_error_messages() as $message ) + show_message($message); + echo '
'; + return; + } + + //TODO: Is theme currently active? + $was_current = false; //is_plugin_active($plugin); //Check now, It'll be deactivated by the next line if it is + + $result = wp_update_theme($theme, 'show_message'); + + if ( is_wp_error($result) ) { + show_message($result); + show_message( __('Installation Failed') ); + } else { + //Result is the new plugin file relative to WP_PLUGIN_DIR + show_message( __('Theme upgraded successfully') ); + if( $result && $was_current ){ + show_message(__('Setting theme as Current')); + //TODO: Actually set it as active again. + //echo ''; } } echo ''; @@ -130,34 +124,25 @@ function do_plugin_upgrade($plugin) { if ( isset($_GET['action']) ) { $plugin = isset($_GET['plugin']) ? trim($_GET['plugin']) : ''; + $theme = isset($_REQUEST['theme']) ? urldecode($_REQUEST['theme']) : ''; + $action = isset($_GET['action']) ? $_GET['action'] : ''; - if ( 'upgrade-plugin' == $_GET['action'] ) { + if ( 'upgrade-plugin' == $action ) { check_admin_referer('upgrade-plugin_' . $plugin); $title = __('Upgrade Plugin'); $parent_file = 'plugins.php'; require_once('admin-header.php'); do_plugin_upgrade($plugin); include('admin-footer.php'); - } elseif ('activate-plugin' == $_GET['action'] ) { + } elseif ('activate-plugin' == $action ) { check_admin_referer('activate-plugin_' . $plugin); if( ! isset($_GET['failure']) && ! isset($_GET['success']) ) { - wp_redirect( 'update.php?action=activate-plugin&failure=true&plugin=' . $plugin . '&_wpnonce=' . $_GET['_wpnonce'] ); + wp_redirect( 'update.php?action=activate-plugin&failure=true&plugin=' . $plugin . '&_wpnonce=' . $_GET['_wpnonce'] ); activate_plugin($plugin); - wp_redirect( 'update.php?action=activate-plugin&success=true&plugin=' . $plugin . '&_wpnonce=' . $_GET['_wpnonce'] ); + wp_redirect( 'update.php?action=activate-plugin&success=true&plugin=' . $plugin . '&_wpnonce=' . $_GET['_wpnonce'] ); die(); } - ?> - > - - -<?php bloginfo('name') ?> › <?php _e('Plugin Reactivation'); ?> — <?php _e('WordPress'); ?> - - - -' . __('Plugin reactivated successfully.') . '

'; @@ -167,7 +152,14 @@ wp_admin_css( 'colors', true ); @ini_set('display_errors', true); //Ensure that Fatal errors are displayed. include(WP_PLUGIN_DIR . '/' . $plugin); } - echo ""; + iframe_footer(); + } elseif ( 'upgrade-theme' == $action ) { + check_admin_referer('upgrade-theme_' . $theme); + $title = __('Upgrade Theme'); + $parent_file = 'themes.php'; + require_once('admin-header.php'); + do_theme_upgrade($theme); + include('admin-footer.php'); } }