From 7740e89de3e1bc0cc636120e3ca8ab9e97e4d3cc Mon Sep 17 00:00:00 2001 From: donncha Date: Fri, 4 Apr 2008 16:44:15 +0000 Subject: Merged with WordPress 2.5, unstable, only for testing git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@1218 7be80a69-a1ef-0310-a953-fb0f7c49ff36 --- wp-admin/update.php | 86 ++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 66 insertions(+), 20 deletions(-) (limited to 'wp-admin/update.php') diff --git a/wp-admin/update.php b/wp-admin/update.php index b047384..34e9380 100644 --- a/wp-admin/update.php +++ b/wp-admin/update.php @@ -6,15 +6,25 @@ if ( !current_user_can('edit_plugins') ) wp_die('

'.__('You do not have sufficient permissions to update plugins for this blog.').'

'); function request_filesystem_credentials($form_post, $type = '', $error = false) { + $req_cred = apply_filters('request_filesystem_credentials', '', $form_post, $type, $error); + if ( '' !== $req_cred ) + return $req_cred; + if ( empty($type) ) $type = get_filesystem_method(); if ( 'direct' == $type ) - return array(); + return true; + + if( ! $credentials = get_option('ftp_credentials') ) + $credentials = array(); + // If defined, set it to that, Else, If POST'd, set it to that, If not, Set it to whatever it previously was(saved details in option) + $credentials['hostname'] = defined('FTP_HOST') ? FTP_HOST : (!empty($_POST['hostname']) ? $_POST['hostname'] : $credentials['hostname']); + $credentials['username'] = defined('FTP_USER') ? FTP_USER : (!empty($_POST['username']) ? $_POST['username'] : $credentials['username']); + $credentials['password'] = defined('FTP_PASS') ? FTP_PASS : (!empty($_POST['password']) ? $_POST['password'] : $credentials['password']); + $credentials['ssl'] = defined('FTP_SSL') ? FTP_SSL : (!empty($_POST['ssl']) ? $_POST['ssl'] : $credentials['ssl']); - if ( ! $error && !empty($_POST['password']) && !empty($_POST['username']) && !empty($_POST['hostname']) ) { - $credentials = array('hostname' => $_POST['hostname'], 'username' => $_POST['username'], - 'password' => $_POST['password'], 'ssl' => $_POST['ssl']); + if ( ! $error && !empty($credentials['password']) && !empty($credentials['username']) && !empty($credentials['hostname']) ) { $stored_credentials = $credentials; unset($stored_credentials['password']); update_option('ftp_credentials', $stored_credentials); @@ -24,11 +34,10 @@ function request_filesystem_credentials($form_post, $type = '', $error = false) $username = ''; $password = ''; $ssl = ''; - if ( $credentials = get_option('ftp_credentials') ) + if ( !empty($credentials) ) extract($credentials, EXTR_OVERWRITE); - if( $error ){ + if( $error ) echo '

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

'; - } ?>
@@ -37,20 +46,20 @@ function request_filesystem_credentials($form_post, $type = '', $error = false) - + - + - +
size="40" />
size="40" />
size="40" />'.__('(Password not shown)').''; ?>
-> __('No'), 1 => __('Yes')) as $key => $value ) : $selected = ($ssl == $value) ? 'selected="selected"' : ''; @@ -77,7 +86,7 @@ function show_message($message) { else $message = $message->get_error_message(); } - echo "

$message

"; + echo "

$message

\n"; } function do_plugin_upgrade($plugin) { @@ -86,12 +95,12 @@ function do_plugin_upgrade($plugin) { $url = wp_nonce_url("update.php?action=upgrade-plugin&plugin=$plugin", "upgrade-plugin_$plugin"); if ( false === ($credentials = request_filesystem_credentials($url)) ) return; - - if( ! WP_Filesystem($credentials) ){ + + if ( ! WP_Filesystem($credentials) ) { request_filesystem_credentials($url, '', true); //Failed to connect, Error and request again return; } - + echo '
'; echo '

' . __('Upgrade Plugin') . '

'; if ( $wp_filesystem->errors->get_error_code() ) { @@ -101,18 +110,25 @@ function do_plugin_upgrade($plugin) { return; } + $was_activated = is_plugin_active($plugin); //Check now, It'll be deactivated by the next line if it is, + $result = wp_update_plugin($plugin, 'show_message'); - if ( is_wp_error($result) ) + if ( is_wp_error($result) ) { show_message($result); - else - echo __('Plugin upgraded successfully'); + } else { + //Result is the new plugin file relative to PLUGINDIR + show_message(__('Plugin upgraded successfully')); + if( $result && $was_activated ){ + show_message(__('Attempting reactivation of the plugin')); + echo ''; + } + } echo '
'; } if ( isset($_GET['action']) ) { - if ( isset($_GET['plugin']) ) - $plugin = trim($_GET['plugin']); + $plugin = isset($_GET['plugin']) ? trim($_GET['plugin']) : ''; if ( 'upgrade-plugin' == $_GET['action'] ) { check_admin_referer('upgrade-plugin_' . $plugin); @@ -121,6 +137,36 @@ if ( isset($_GET['action']) ) { require_once('admin-header.php'); do_plugin_upgrade($plugin); include('admin-footer.php'); + } elseif ('activate-plugin' == $_GET['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'] ); + activate_plugin($plugin); + 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.') . '

'; + + if( isset($_GET['failure']) ){ + echo '

' . __('Plugin failed to reactivate due to a fatal error.') . '

'; + error_reporting( E_ALL ^ E_NOTICE ); + @ini_set('display_errors', true); //Ensure that Fatal errors are displayed. + include(ABSPATH . PLUGINDIR . '/' . $plugin); + } + echo ""; } } -- cgit