diff options
author | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2008-04-04 16:44:15 +0000 |
---|---|---|
committer | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2008-04-04 16:44:15 +0000 |
commit | 7740e89de3e1bc0cc636120e3ca8ab9e97e4d3cc (patch) | |
tree | c6fd23b598f3994eddb18cb1c0f2e8d95ff054fa /wp-admin/update.php | |
parent | f650f48c048bfbbb2ae702b6425d87e39358d748 (diff) | |
download | wordpress-mu-7740e89de3e1bc0cc636120e3ca8ab9e97e4d3cc.tar.gz wordpress-mu-7740e89de3e1bc0cc636120e3ca8ab9e97e4d3cc.tar.xz wordpress-mu-7740e89de3e1bc0cc636120e3ca8ab9e97e4d3cc.zip |
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
Diffstat (limited to 'wp-admin/update.php')
-rw-r--r-- | wp-admin/update.php | 86 |
1 files changed, 66 insertions, 20 deletions
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('<p>'.__('You do not have sufficient permissions to update plugins for this blog.').'</p>'); 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 '<div id="message" class="error"><p>' . __('<strong>Error:</strong> There was an error connecting to the server, Please verify the settings are correct.') . '</p></div>'; - } ?> <form action="<?php echo $form_post ?>" method="post"> <div class="wrap"> @@ -37,20 +46,20 @@ function request_filesystem_credentials($form_post, $type = '', $error = false) <table class="form-table"> <tr valign="top"> <th scope="row"><?php _e('Hostname:') ?></th> -<td><input name="hostname" type="text" id="hostname" value="<?php echo attribute_escape($hostname) ?>" size="40" /></td> +<td><input name="hostname" type="text" id="hostname" value="<?php echo attribute_escape($hostname) ?>"<?php if( defined('FTP_HOST') ) echo ' disabled="disabled"' ?> size="40" /></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Username:') ?></th> -<td><input name="username" type="text" id="username" value="<?php echo attribute_escape($username) ?>" size="40" /></td> +<td><input name="username" type="text" id="username" value="<?php echo attribute_escape($username) ?>"<?php if( defined('FTP_USER') ) echo ' disabled="disabled"' ?> size="40" /></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Password:') ?></th> -<td><input name="password" type="password" id="password" value="<?php echo attribute_escape($password) ?>" size="40" /></td> +<td><input name="password" type="password" id="password" value=""<?php if( defined('FTP_PASS') ) echo ' disabled="disabled"' ?> size="40" /><?php if( defined('FTP_PASS') && !empty($password) ) echo '<em>'.__('(Password not shown)').'</em>'; ?></td> </tr> <tr valign="top"> <th scope="row"><?php _e('Use SSL:') ?></th> <td> -<select name="ssl" id="ssl"> +<select name="ssl" id="ssl"<?php if( defined('FTP_SSL') ) echo ' disabled="disabled"' ?>> <?php foreach ( array(0 => __('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 "<p>$message</p>"; + echo "<p>$message</p>\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 '<div class="wrap">'; echo '<h2>' . __('Upgrade Plugin') . '</h2>'; 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 '<iframe style="border:0" width="100%" height="170px" src="' . wp_nonce_url('update.php?action=activate-plugin&plugin=' . $result, 'activate-plugin_' . $result) .'"></iframe>'; + } + } echo '</div>'; } 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(); + } + ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" <?php do_action('admin_xml_ns'); ?> <?php language_attributes(); ?>> +<head> +<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" /> +<title><?php bloginfo('name') ?> › <?php _e('Plugin Reactivation'); ?> — <?php _e('WordPress'); ?></title> +<?php +wp_admin_css( 'css/global' ); +wp_admin_css( 'css/colors' ); +?> +</head> +<body> +<?php + if( isset($_GET['success']) ) + echo '<p>' . __('Plugin reactivated successfully.') . '</p>'; + + if( isset($_GET['failure']) ){ + echo '<p>' . __('Plugin failed to reactivate due to a fatal error.') . '</p>'; + error_reporting( E_ALL ^ E_NOTICE ); + @ini_set('display_errors', true); //Ensure that Fatal errors are displayed. + include(ABSPATH . PLUGINDIR . '/' . $plugin); + } + echo "</body></html>"; } } |