summaryrefslogtreecommitdiffstats
path: root/wp-admin/includes/update.php
diff options
context:
space:
mode:
authordonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2007-10-12 16:21:15 +0000
committerdonncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36>2007-10-12 16:21:15 +0000
commit3a4570b0fc8b3d6339bef71d17d7701554e0bbf7 (patch)
tree2a06e5261263c68d8afd95a6328879dc289cb909 /wp-admin/includes/update.php
parentb83c34a7010faee0223f6037025c350da12e05e6 (diff)
downloadwordpress-mu-3a4570b0fc8b3d6339bef71d17d7701554e0bbf7.tar.gz
wordpress-mu-3a4570b0fc8b3d6339bef71d17d7701554e0bbf7.tar.xz
wordpress-mu-3a4570b0fc8b3d6339bef71d17d7701554e0bbf7.zip
Merge with WP 2.3 - testing use only!
Move pluggable functions out of wpmu-functions and into pluggable.php, fixes #439 git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@1069 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-admin/includes/update.php')
-rw-r--r--wp-admin/includes/update.php122
1 files changed, 122 insertions, 0 deletions
diff --git a/wp-admin/includes/update.php b/wp-admin/includes/update.php
new file mode 100644
index 0000000..cbd0d4a
--- /dev/null
+++ b/wp-admin/includes/update.php
@@ -0,0 +1,122 @@
+<?php
+/*
+// The admin side of our 1.0 update system
+
+function core_update_footer( $msg ) {
+ if ( !current_user_can('manage_options') )
+ return sprintf( '| '.__( 'Version %s' ), $GLOBALS['wp_version'] );
+
+ $cur = get_option( 'update_core' );
+
+ switch ( $cur->response ) {
+ case 'development' :
+ return sprintf( '| '.__( 'You are using a development version (%s). Cool! Please <a href="%s">stay updated</a>.' ), $GLOBALS['wp_version'], 'http://wordpress.org/download/svn/' );
+ break;
+
+ case 'upgrade' :
+ return sprintf( '| <strong>'.__( 'Your WordPress %s is out of date. <a href="%s">Please update</a>.' ).'</strong>', $GLOBALS['wp_version'], $cur->url );
+ break;
+
+ case 'latest' :
+ default :
+ return sprintf( '| '.__( 'Version %s' ), $GLOBALS['wp_version'] );
+ break;
+ }
+}
+add_filter( 'update_footer', 'core_update_footer' );
+
+function update_nag() {
+ $cur = get_option( 'update_core' );
+
+ if ( ! isset( $cur->response ) || $cur->response != 'upgrade' )
+ return false;
+
+ if ( current_user_can('manage_options') )
+ $msg = sprintf( __('A new version of WordPress is available! <a href="%s">Please update now</a>.'), $cur->url );
+ else
+ $msg = __('A new version of WordPress is available! Please notify the site administrator.');
+
+ echo "<div id='update-nag'>$msg</div>";
+}
+add_action( 'admin_notices', 'update_nag', 3 );
+
+function wp_update_plugins() {
+ global $wp_version;
+
+ if ( !function_exists('fsockopen') )
+ return false;
+
+ $plugins = get_plugins();
+ $active = get_option( 'active_plugins' );
+ $current = get_option( 'update_plugins' );
+
+ $new_option = '';
+ $new_option->last_checked = time();
+
+ $plugin_changed = false;
+ foreach ( $plugins as $file => $p ) {
+ $new_option->checked[ $file ] = $p['Version'];
+
+ if ( !isset( $current->checked[ $file ] ) ) {
+ $plugin_changed = true;
+ continue;
+ }
+
+ if ( $current->checked[ $file ] != $p['Version'] )
+ $plugin_changed = true;
+ }
+
+ if (
+ isset( $current->last_checked ) &&
+ 43200 > ( time() - $current->last_checked ) &&
+ !$plugin_changed
+ )
+ return false;
+
+ $to_send->plugins = $plugins;
+ $to_send->active = $active;
+ $send = serialize( $to_send );
+
+ $request = 'plugins=' . urlencode( $send );
+ $http_request = "POST /plugins/update-check/1.0/ HTTP/1.0\r\n";
+ $http_request .= "Host: api.wordpress.org\r\n";
+ $http_request .= "Content-Type: application/x-www-form-urlencoded; charset=" . get_option('blog_charset') . "\r\n";
+ $http_request .= "Content-Length: " . strlen($request) . "\r\n";
+ $http_request .= 'User-Agent: WordPress/' . $wp_version . '; ' . get_bloginfo('url') . "\r\n";
+ $http_request .= "\r\n";
+ $http_request .= $request;
+
+ $response = '';
+ if( false != ( $fs = @fsockopen( 'api.wordpress.org', 80, $errno, $errstr, 3) ) && is_resource($fs) ) {
+ fwrite($fs, $http_request);
+
+ while ( !feof($fs) )
+ $response .= fgets($fs, 1160); // One TCP-IP packet
+ fclose($fs);
+ $response = explode("\r\n\r\n", $response, 2);
+ }
+
+ $response = unserialize( $response[1] );
+
+ if ( $response )
+ $new_option->response = $response;
+
+ update_option( 'update_plugins', $new_option );
+}
+add_action( 'load-plugins.php', 'wp_update_plugins' );
+
+function wp_plugin_update_row( $file ) {
+ global $plugin_data;
+ $current = get_option( 'update_plugins' );
+ if ( !isset( $current->response[ $file ] ) )
+ return false;
+
+ $r = $current->response[ $file ];
+
+ echo "<tr><td colspan='5' class='plugin-update'>";
+ printf( __('There is a new version of %s available. <a href="%s">Download version %s here</a>.'), $plugin_data['Name'], $r->url, $r->new_version );
+ echo "</td></tr>";
+}
+add_action( 'after_plugin_row', 'wp_plugin_update_row' );
+*/
+?>