2008-11-05 22:31:41 -05:00
< ? php
/**
* Update Core administration panel .
*
* @ package WordPress
* @ subpackage Administration
*/
/** WordPress Administration Bootstrap */
require_once ( 'admin.php' );
if ( ! current_user_can ( 'update_plugins' ) )
wp_die ( __ ( 'You do not have sufficient permissions to update plugins for this blog.' ));
function list_core_update ( $update ) {
$version_string = 'en_US' == $update -> locale ?
$update -> current : sprintf ( " %s–<strong>%s</strong> " , $update -> current , $update -> locale );
$current = false ;
if ( ! isset ( $update -> response ) || 'latest' == $update -> response )
$current = true ;
$submit = __ ( 'Upgrade Automatically' );
2008-12-10 02:59:05 -05:00
$form_action = 'update-core.php?action=do-core-upgrade' ;
2008-11-05 22:31:41 -05:00
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' );
2008-12-10 02:59:05 -05:00
$form_action = 'update-core.php?action=do-core-reinstall' ;
2008-11-05 22:31:41 -05:00
} 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 '<p>' ;
echo $message ;
echo '</p>' ;
2008-12-10 02:59:05 -05:00
echo '<form method="post" action="' . $form_action . '" name="upgrade" class="upgrade">' ;
2008-11-05 22:31:41 -05:00
wp_nonce_field ( 'upgrade-core' );
echo '<p>' ;
echo '<input id="upgrade" class="button" type="submit" value="' . $submit . '" name="upgrade" /> ' ;
echo '<input name="version" value="' . $update -> current . '" type="hidden"/>' ;
echo '<input name="locale" value="' . $update -> locale . '" type="hidden"/>' ;
echo '<a href="' . $update -> package . '" class="button">' . $download . '</a> ' ;
if ( 'en_US' != $update -> locale )
if ( ! isset ( $update -> dismissed ) || ! $update -> dismissed )
2009-04-28 01:58:45 -04:00
echo '<input id="dismiss" class="button" type="submit" value="' . attr ( __ ( 'Hide this update' )) . '" name="dismiss" />' ;
2008-11-05 22:31:41 -05:00
else
2009-04-28 01:58:45 -04:00
echo '<input id="undismiss" class="button" type="submit" value="' . attr ( __ ( 'Bring back this update' )) . '" name="undismiss" />' ;
2008-11-05 22:31:41 -05:00
echo '</p>' ;
echo '</form>' ;
2008-12-09 13:03:31 -05:00
2008-11-05 22:31:41 -05:00
}
function dismissed_updates () {
$dismissed = get_core_updates ( array ( 'dismissed' => true , 'available' => false ) );
if ( $dismissed ) {
2008-12-09 13:03:31 -05:00
2008-11-05 22:31:41 -05:00
$show_text = js_escape ( __ ( 'Show hidden updates' ));
$hide_text = js_escape ( __ ( 'Hide hidden updates' ));
?>
< script type = " text/javascript " >
2008-12-09 13:03:31 -05:00
2008-11-05 22:31:41 -05:00
jQuery ( function ( $ ) {
$ ( 'dismissed-updates' ) . show ();
$ ( '#show-dismissed' ) . toggle ( function (){ $ ( this ) . text ( '<?php echo $hide_text; ?>' );}, function () { $ ( this ) . text ( '<?php echo $show_text; ?>' )});
$ ( '#show-dismissed' ) . click ( function () { $ ( '#dismissed-updates' ) . toggle ( 'slow' );});
});
</ script >
< ? php
echo '<p class="hide-if-no-js"><a id="show-dismissed" href="#">' . __ ( 'Show hidden updates' ) . '</a></p>' ;
echo '<ul id="dismissed-updates" class="core-updates dismissed">' ;
2008-11-14 17:50:46 -05:00
foreach ( ( array ) $dismissed as $update ) {
2008-11-05 22:31:41 -05:00
echo '<li>' ;
list_core_update ( $update );
echo '</li>' ;
}
echo '</ul>' ;
2008-12-09 13:03:31 -05:00
}
2008-11-05 22:31:41 -05:00
}
/**
* Display upgrade WordPress for downloading latest or upgrading automatically form .
*
* @ since 2.7
*
* @ return null
*/
function core_upgrade_preamble () {
$updates = get_core_updates ();
2008-11-26 08:51:25 -05:00
?>
< div class = " wrap " >
< ? php screen_icon (); ?>
< h2 >< ? php _e ( 'Upgrade WordPress' ); ?> </h2>
< ? php
2008-11-05 22:31:41 -05:00
if ( ! isset ( $updates [ 0 ] -> response ) || 'latest' == $updates [ 0 ] -> response ) {
echo '<h3>' ;
_e ( 'You have the latest version of WordPress. You do not need to upgrade' );
echo '</h3>' ;
} else {
echo '<div class="updated fade"><p>' ;
2008-12-09 13:03:31 -05:00
_e ( '<strong>Important:</strong> before upgrading, please <a href="http://codex.wordpress.org/WordPress_Backups">backup your database and files</a>.' );
2008-11-05 22:31:41 -05:00
echo '</p></div>' ;
2008-12-09 13:03:31 -05:00
2008-11-05 22:31:41 -05:00
echo '<h3 class="response">' ;
_e ( 'There is a new version of WordPress available for upgrade' );
echo '</h3>' ;
}
echo '<ul class="core-updates">' ;
$alternate = true ;
2008-11-14 17:50:46 -05:00
foreach ( ( array ) $updates as $update ) {
2008-11-05 22:31:41 -05:00
$class = $alternate ? ' class="alternate"' : '' ;
$alternate = ! $alternate ;
echo " <li $class > " ;
list_core_update ( $update );
echo '</li>' ;
}
echo '</ul>' ;
dismissed_updates ();
echo '</div>' ;
}
/**
* Upgrade WordPress core display .
*
* @ since 2.7
*
* @ return null
*/
2008-12-10 02:59:05 -05:00
function do_core_upgrade ( $reinstall = false ) {
2008-11-05 22:31:41 -05:00
global $wp_filesystem ;
2008-12-09 13:03:31 -05:00
2009-01-11 16:48:40 -05:00
if ( $reinstall )
$url = 'update-core.php?action=do-core-reinstall' ;
else
$url = 'update-core.php?action=do-core-upgrade' ;
$url = wp_nonce_url ( $url , 'upgrade-core' );
2008-11-05 22:31:41 -05:00
if ( false === ( $credentials = request_filesystem_credentials ( $url )) )
return ;
2008-12-09 13:03:31 -05:00
2008-11-05 22:31:41 -05:00
$version = isset ( $_POST [ 'version' ] ) ? $_POST [ 'version' ] : false ;
$locale = isset ( $_POST [ 'locale' ] ) ? $_POST [ 'locale' ] : 'en_US' ;
$update = find_core_update ( $version , $locale );
if ( ! $update )
return ;
2008-12-09 13:03:31 -05:00
2008-11-05 22:31:41 -05:00
if ( ! WP_Filesystem ( $credentials ) ) {
request_filesystem_credentials ( $url , '' , true ); //Failed to connect, Error and request again
return ;
}
2008-11-26 08:51:25 -05:00
?>
< div class = " wrap " >
< ? php screen_icon (); ?>
< h2 >< ? php _e ( 'Upgrade WordPress' ); ?> </h2>
< ? php
2008-11-05 22:31:41 -05:00
if ( $wp_filesystem -> errors -> get_error_code () ) {
foreach ( $wp_filesystem -> errors -> get_error_messages () as $message )
show_message ( $message );
echo '</div>' ;
return ;
}
2008-12-10 02:59:05 -05:00
if ( $reinstall )
$update -> response = 'reinstall' ;
2008-11-05 22:31:41 -05:00
$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 '</div>' ;
}
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' ;
2008-12-09 13:03:31 -05:00
2008-11-05 22:31:41 -05:00
if ( 'upgrade-core' == $action ) {
2009-02-16 19:13:25 -05:00
wp_version_check ();
2008-11-05 22:31:41 -05:00
$title = __ ( 'Upgrade WordPress' );
2008-11-29 13:09:09 -05:00
$parent_file = 'tools.php' ;
2008-11-05 22:31:41 -05:00
require_once ( 'admin-header.php' );
core_upgrade_preamble ();
include ( 'admin-footer.php' );
2008-12-10 02:59:05 -05:00
} elseif ( 'do-core-upgrade' == $action || 'do-core-reinstall' == $action ) {
2008-11-05 22:31:41 -05:00
check_admin_referer ( 'upgrade-core' );
$title = __ ( 'Upgrade WordPress' );
2008-11-29 13:09:09 -05:00
$parent_file = 'tools.php' ;
2008-11-05 22:31:41 -05:00
// 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' );
2008-12-10 02:59:05 -05:00
if ( 'do-core-reinstall' == $action )
$reinstall = true ;
else
$reinstall = false ;
2008-11-05 22:31:41 -05:00
if ( isset ( $_POST [ 'upgrade' ] ) )
2008-12-10 02:59:05 -05:00
do_core_upgrade ( $reinstall );
2008-11-05 22:31:41 -05:00
include ( 'admin-footer.php' );
2008-12-10 02:59:05 -05:00
2008-11-29 13:09:09 -05:00
} ?>