X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/699231ae09f7057a4d0000cdf32e50a3df6a04ca..61343b82c4f0da4c68e4c6373daafff4a81efdd1:/wp-admin/includes/upgrade.php
diff --git a/wp-admin/includes/upgrade.php b/wp-admin/includes/upgrade.php
index 1560f2c8..0d17d8fc 100644
--- a/wp-admin/includes/upgrade.php
+++ b/wp-admin/includes/upgrade.php
@@ -24,7 +24,7 @@ if ( !function_exists('wp_install') ) :
*
* {@internal Missing Long Description}}
*
- * @since unknown
+ * @since 2.1.0
*
* @param string $blog_title Blog title.
* @param string $user_name User's username.
@@ -35,8 +35,6 @@ if ( !function_exists('wp_install') ) :
* @return array Array keys 'url', 'user_id', 'password', 'password_message'.
*/
function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated = '', $user_password = '' ) {
- global $wp_rewrite;
-
if ( !empty( $deprecated ) )
_deprecated_argument( __FUNCTION__, '2.6' );
@@ -58,13 +56,13 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated
if ( ! $public )
update_option('default_pingback_flag', 0);
- // Create default user. If the user already exists, the user tables are
- // being shared among blogs. Just set the role in that case.
+ // Create default user. If the user already exists, the user tables are
+ // being shared among blogs. Just set the role in that case.
$user_id = username_exists($user_name);
$user_password = trim($user_password);
$email_password = false;
if ( !$user_id && empty($user_password) ) {
- $user_password = wp_generate_password();
+ $user_password = wp_generate_password( 12, false );
$message = __('Note that password carefully! It is a random password that was generated just for you.');
$user_id = wp_create_user($user_name, $user_password, $user_email);
update_user_option($user_id, 'default_password_nag', true, true);
@@ -74,7 +72,7 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated
$message = ''.__('Your chosen password.').'';
$user_id = wp_create_user($user_name, $user_password, $user_email);
} else {
- $message = __('User already exists. Password inherited.');
+ $message = __('User already exists. Password inherited.');
}
$user = new WP_User($user_id);
@@ -82,7 +80,7 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated
wp_install_defaults($user_id);
- $wp_rewrite->flush_rules();
+ flush_rewrite_rules();
wp_new_blog_notification($blog_title, $guessurl, $user_id, ($email_password ? $user_password : __('The password you chose during the install.') ) );
@@ -98,7 +96,7 @@ if ( !function_exists('wp_install_defaults') ) :
*
* {@internal Missing Long Description}}
*
- * @since unknown
+ * @since 2.1.0
*
* @param int $user_id User ID.
*/
@@ -125,68 +123,6 @@ function wp_install_defaults($user_id) {
$wpdb->insert( $wpdb->term_taxonomy, array('term_id' => $cat_id, 'taxonomy' => 'category', 'description' => '', 'parent' => 0, 'count' => 1));
$cat_tt_id = $wpdb->insert_id;
- // Default link category
- $cat_name = __('Blogroll');
- /* translators: Default link category slug */
- $cat_slug = sanitize_title(_x('Blogroll', 'Default link category slug'));
-
- if ( global_terms_enabled() ) {
- $blogroll_id = $wpdb->get_var( $wpdb->prepare( "SELECT cat_ID FROM {$wpdb->sitecategories} WHERE category_nicename = %s", $cat_slug ) );
- if ( $blogroll_id == null ) {
- $wpdb->insert( $wpdb->sitecategories, array('cat_ID' => 0, 'cat_name' => $cat_name, 'category_nicename' => $cat_slug, 'last_updated' => current_time('mysql', true)) );
- $blogroll_id = $wpdb->insert_id;
- }
- update_option('default_link_category', $blogroll_id);
- } else {
- $blogroll_id = 2;
- }
-
- $wpdb->insert( $wpdb->terms, array('term_id' => $blogroll_id, 'name' => $cat_name, 'slug' => $cat_slug, 'term_group' => 0) );
- $wpdb->insert( $wpdb->term_taxonomy, array('term_id' => $blogroll_id, 'taxonomy' => 'link_category', 'description' => '', 'parent' => 0, 'count' => 7));
- $blogroll_tt_id = $wpdb->insert_id;
-
- // Now drop in some default links
- $default_links = array();
- $default_links[] = array( 'link_url' => 'http://codex.wordpress.org/',
- 'link_name' => 'Documentation',
- 'link_rss' => '',
- 'link_notes' => '');
-
- $default_links[] = array( 'link_url' => 'http://wordpress.org/development/',
- 'link_name' => 'WordPress Blog',
- 'link_rss' => 'http://wordpress.org/development/feed/',
- 'link_notes' => '');
-
- $default_links[] = array( 'link_url' => 'http://wordpress.org/extend/ideas/',
- 'link_name' => 'Suggest Ideas',
- 'link_rss' => '',
- 'link_notes' =>'');
-
- $default_links[] = array( 'link_url' => 'http://wordpress.org/support/',
- 'link_name' => 'Support Forum',
- 'link_rss' => '',
- 'link_notes' =>'');
-
- $default_links[] = array( 'link_url' => 'http://wordpress.org/extend/plugins/',
- 'link_name' => 'Plugins',
- 'link_rss' => '',
- 'link_notes' =>'');
-
- $default_links[] = array( 'link_url' => 'http://wordpress.org/extend/themes/',
- 'link_name' => 'Themes',
- 'link_rss' => '',
- 'link_notes' =>'');
-
- $default_links[] = array( 'link_url' => 'http://planet.wordpress.org/',
- 'link_name' => 'WordPress Planet',
- 'link_rss' => '',
- 'link_notes' =>'');
-
- foreach ( $default_links as $link ) {
- $wpdb->insert( $wpdb->links, $link);
- $wpdb->insert( $wpdb->term_relationships, array('term_taxonomy_id' => $blogroll_tt_id, 'object_id' => $wpdb->insert_id) );
- }
-
// First post
$now = date('Y-m-d H:i:s');
$now_gmt = gmdate('Y-m-d H:i:s');
@@ -196,7 +132,7 @@ function wp_install_defaults($user_id) {
$first_post = get_site_option( 'first_post' );
if ( empty($first_post) )
- $first_post = stripslashes( __( 'Welcome to SITE_NAME. This is your first post. Edit or delete it, then start blogging!' ) );
+ $first_post = __( 'Welcome to SITE_NAME. This is your first post. Edit or delete it, then start blogging!' );
$first_post = str_replace( "SITE_URL", esc_url( network_home_url() ), $first_post );
$first_post = str_replace( "SITE_NAME", $current_site->site_name, $first_post );
@@ -226,7 +162,8 @@ function wp_install_defaults($user_id) {
// Default comment
$first_comment_author = __('Mr WordPress');
$first_comment_url = 'http://wordpress.org/';
- $first_comment = __('Hi, this is a comment.
To delete a comment, just log in and view the post's comments. There you will have the option to edit or delete them.');
+ $first_comment = __('Hi, this is a comment.
+To delete a comment, just log in and view the post's comments. There you will have the option to edit or delete them.');
if ( is_multisite() ) {
$first_comment_author = get_site_option( 'first_comment_author', $first_comment_author );
$first_comment_url = get_site_option( 'first_comment_url', network_home_url() );
@@ -243,7 +180,15 @@ function wp_install_defaults($user_id) {
));
// First Page
- $first_page = __('This is an example of a WordPress page, you could edit this to put information about yourself or your site so readers know where you are coming from. You can create as many pages like this one or sub-pages as you like and manage all of your content inside of WordPress.');
+ $first_page = sprintf( __( "This is an example page. It's different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:
+
+
Hi there! I'm a bike messenger by day, aspiring actor by night, and this is my blog. I live in Los Angeles, have a great dog named Jack, and I like piña coladas. (And gettin' caught in the rain.)+ +...or something like this: + +
The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.+ +As a new WordPress user, you should go to your dashboard to delete this page and create new pages for your content. Have fun!" ), admin_url() ); if ( is_multisite() ) $first_page = get_site_option( 'first_page', $first_page ); $first_post_guid = get_option('home') . '/?page_id=2'; @@ -253,9 +198,9 @@ function wp_install_defaults($user_id) { 'post_date_gmt' => $now_gmt, 'post_content' => $first_page, 'post_excerpt' => '', - 'post_title' => __('About'), + 'post_title' => __( 'Sample Page' ), /* translators: Default page slug */ - 'post_name' => _x('about', 'Default page slug'), + 'post_name' => __( 'sample-page' ), 'post_modified' => $now, 'post_modified_gmt' => $now_gmt, 'guid' => $first_post_guid, @@ -266,14 +211,19 @@ function wp_install_defaults($user_id) { )); $wpdb->insert( $wpdb->postmeta, array( 'post_id' => 2, 'meta_key' => '_wp_page_template', 'meta_value' => 'default' ) ); - // Setup default widgets for default theme. + // Set up default widgets for default theme. update_option( 'widget_search', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) ); update_option( 'widget_recent-posts', array ( 2 => array ( 'title' => '', 'number' => 5 ), '_multiwidget' => 1 ) ); update_option( 'widget_recent-comments', array ( 2 => array ( 'title' => '', 'number' => 5 ), '_multiwidget' => 1 ) ); update_option( 'widget_archives', array ( 2 => array ( 'title' => '', 'count' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) ); update_option( 'widget_categories', array ( 2 => array ( 'title' => '', 'count' => 0, 'hierarchical' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) ); update_option( 'widget_meta', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) ); - update_option( 'sidebars_widgets', array ( 'wp_inactive_widgets' => array ( ), 'primary-widget-area' => array ( 0 => 'search-2', 1 => 'recent-posts-2', 2 => 'recent-comments-2', 3 => 'archives-2', 4 => 'categories-2', 5 => 'meta-2', ), 'secondary-widget-area' => array ( ), 'first-footer-widget-area' => array ( ), 'second-footer-widget-area' => array ( ), 'third-footer-widget-area' => array ( ), 'fourth-footer-widget-area' => array ( ), 'array_version' => 3 ) ); + update_option( 'sidebars_widgets', array ( 'wp_inactive_widgets' => array (), 'sidebar-1' => array ( 0 => 'search-2', 1 => 'recent-posts-2', 2 => 'recent-comments-2', 3 => 'archives-2', 4 => 'categories-2', 5 => 'meta-2', ), 'sidebar-2' => array (),'array_version' => 3 ) ); + + if ( ! is_multisite() ) + update_user_meta( $user_id, 'show_welcome_panel', 1 ); + elseif ( ! is_super_admin( $user_id ) && ! metadata_exists( 'user', $user_id, 'show_welcome_panel' ) ) + update_user_meta( $user_id, 'show_welcome_panel', 2 ); if ( is_multisite() ) { // Flush rules to pick up the new page. @@ -289,7 +239,7 @@ function wp_install_defaults($user_id) { // Delete any caps that snuck into the previously active blog. (Hardcoded to blog 1 for now.) TODO: Get previous_blog_id. if ( !is_super_admin( $user_id ) && $user_id != 1 ) - $wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $wpdb->base_prefix.'1_capabilities') ); + $wpdb->delete( $wpdb->usermeta, array( 'user_id' => $user_id , 'meta_key' => $wpdb->base_prefix.'1_capabilities' ) ); } } endif; @@ -300,7 +250,7 @@ if ( !function_exists('wp_new_blog_notification') ) : * * {@internal Missing Long Description}} * - * @since unknown + * @since 2.1.0 * * @param string $blog_title Blog title. * @param string $blog_url Blog url. @@ -308,7 +258,7 @@ if ( !function_exists('wp_new_blog_notification') ) : * @param string $password User's Password. */ function wp_new_blog_notification($blog_title, $blog_url, $user_id, $password) { - $user = new WP_User($user_id); + $user = new WP_User( $user_id ); $email = $user->user_email; $name = $user->user_login; $message = sprintf(__("Your new WordPress site has been successfully set up at: @@ -336,7 +286,7 @@ if ( !function_exists('wp_upgrade') ) : * * {@internal Missing Long Description}} * - * @since unknown + * @since 2.1.0 * * @return null */ @@ -345,7 +295,7 @@ function wp_upgrade() { $wp_current_db_version = __get_option('db_version'); - // We are up-to-date. Nothing to do. + // We are up-to-date. Nothing to do. if ( $wp_db_version == $wp_current_db_version ) return; @@ -375,13 +325,13 @@ endif; * * {@internal Missing Long Description}} * - * @since unknown + * @since 1.0.1 */ function upgrade_all() { - global $wp_current_db_version, $wp_db_version, $wp_rewrite; + global $wp_current_db_version, $wp_db_version; $wp_current_db_version = __get_option('db_version'); - // We are up-to-date. Nothing to do. + // We are up-to-date. Nothing to do. if ( $wp_db_version == $wp_current_db_version ) return; @@ -443,6 +393,17 @@ function upgrade_all() { if ( $wp_current_db_version < 15260 ) upgrade_300(); + if ( $wp_current_db_version < 19389 ) + upgrade_330(); + + if ( $wp_current_db_version < 20080 ) + upgrade_340(); + + if ( $wp_current_db_version < 22422 ) + upgrade_350(); + + maybe_disable_link_manager(); + maybe_disable_automattic_widgets(); update_option( 'db_version', $wp_db_version ); @@ -472,7 +433,7 @@ function upgrade_100() { foreach ($categories as $category) { if ('' == $category->category_nicename) { $newtitle = sanitize_title($category->cat_name); - $wpdb>update( $wpdb->categories, array('category_nicename' => $newtitle), array('cat_ID' => $category->cat_ID) ); + $wpdb->update( $wpdb->categories, array('category_nicename' => $newtitle), array('cat_ID' => $category->cat_ID) ); } } @@ -549,12 +510,12 @@ function upgrade_110() { $time_difference = $all_options->time_difference; - $server_time = time()+date('Z'); - $weblogger_time = $server_time + $time_difference*3600; + $server_time = time()+date('Z'); + $weblogger_time = $server_time + $time_difference * HOUR_IN_SECONDS; $gmt_time = time(); - $diff_gmt_server = ($gmt_time - $server_time) / 3600; - $diff_weblogger_server = ($weblogger_time - $server_time) / 3600; + $diff_gmt_server = ($gmt_time - $server_time) / HOUR_IN_SECONDS; + $diff_weblogger_server = ($weblogger_time - $server_time) / HOUR_IN_SECONDS; $diff_gmt_weblogger = $diff_gmt_server - $diff_weblogger_server; $gmt_offset = -$diff_gmt_weblogger; @@ -568,7 +529,7 @@ function upgrade_110() { if (!$got_gmt_fields) { - // Add or substract time to all dates, to get GMT dates + // Add or subtract time to all dates, to get GMT dates $add_hours = intval($diff_gmt_weblogger); $add_minutes = intval(60 * ($diff_gmt_weblogger - $add_hours)); $wpdb->query("UPDATE $wpdb->posts SET post_date_gmt = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)"); @@ -630,7 +591,7 @@ function upgrade_130() { $active_plugins = __get_option('active_plugins'); // If plugins are not stored in an array, they're stored in the old - // newline separated format. Convert to new format. + // newline separated format. Convert to new format. if ( !is_array( $active_plugins ) ) { $active_plugins = explode("\n", trim($active_plugins)); update_option('active_plugins', $active_plugins); @@ -675,23 +636,23 @@ function upgrade_160() { $users = $wpdb->get_results("SELECT * FROM $wpdb->users"); foreach ( $users as $user ) : if ( !empty( $user->user_firstname ) ) - update_user_meta( $user->ID, 'first_name', $wpdb->escape($user->user_firstname) ); + update_user_meta( $user->ID, 'first_name', wp_slash($user->user_firstname) ); if ( !empty( $user->user_lastname ) ) - update_user_meta( $user->ID, 'last_name', $wpdb->escape($user->user_lastname) ); + update_user_meta( $user->ID, 'last_name', wp_slash($user->user_lastname) ); if ( !empty( $user->user_nickname ) ) - update_user_meta( $user->ID, 'nickname', $wpdb->escape($user->user_nickname) ); + update_user_meta( $user->ID, 'nickname', wp_slash($user->user_nickname) ); if ( !empty( $user->user_level ) ) update_user_meta( $user->ID, $wpdb->prefix . 'user_level', $user->user_level ); if ( !empty( $user->user_icq ) ) - update_user_meta( $user->ID, 'icq', $wpdb->escape($user->user_icq) ); + update_user_meta( $user->ID, 'icq', wp_slash($user->user_icq) ); if ( !empty( $user->user_aim ) ) - update_user_meta( $user->ID, 'aim', $wpdb->escape($user->user_aim) ); + update_user_meta( $user->ID, 'aim', wp_slash($user->user_aim) ); if ( !empty( $user->user_msn ) ) - update_user_meta( $user->ID, 'msn', $wpdb->escape($user->user_msn) ); + update_user_meta( $user->ID, 'msn', wp_slash($user->user_msn) ); if ( !empty( $user->user_yim ) ) - update_user_meta( $user->ID, 'yim', $wpdb->escape($user->user_icq) ); + update_user_meta( $user->ID, 'yim', wp_slash($user->user_icq) ); if ( !empty( $user->user_description ) ) - update_user_meta( $user->ID, 'description', $wpdb->escape($user->user_description) ); + update_user_meta( $user->ID, 'description', wp_slash($user->user_description) ); if ( isset( $user->user_idmode ) ): $idmode = $user->user_idmode; @@ -882,9 +843,9 @@ function upgrade_230() { $wpdb->insert( $wpdb->term_relationships, array('object_id' => $post_id, 'term_taxonomy_id' => $tt_id) ); } - // < 3570 we used linkcategories. >= 3570 we used categories and link2cat. + // < 3570 we used linkcategories. >= 3570 we used categories and link2cat. if ( $wp_current_db_version < 3570 ) { - // Create link_category terms for link categories. Create a map of link cat IDs + // Create link_category terms for link categories. Create a map of link cat IDs // to link_category terms. $link_cat_id_map = array(); $default_link_cat = 0; @@ -893,7 +854,7 @@ function upgrade_230() { foreach ( $link_cats as $category) { $cat_id = (int) $category->cat_id; $term_id = 0; - $name = $wpdb->escape($category->cat_name); + $name = wp_slash($category->cat_name); $slug = sanitize_title($name); $term_group = 0; @@ -1033,11 +994,6 @@ function upgrade_260() { if ( $wp_current_db_version < 8000 ) populate_roles_260(); - - if ( $wp_current_db_version < 8201 ) { - update_option('enable_app', 1); - update_option('enable_xmlrpc', 1); - } } /** @@ -1114,23 +1070,8 @@ function upgrade_300() { if ( $wp_current_db_version < 14139 && is_multisite() && is_main_site() && ! defined( 'MULTISITE' ) && get_site_option( 'siteurl' ) === false ) add_site_option( 'siteurl', '' ); - // 3.0-alpha nav menu postmeta changes. can be removed before release. // r13802 - if ( $wp_current_db_version >= 13226 && $wp_current_db_version < 13974 ) - $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key IN( 'menu_type', 'object_id', 'menu_new_window', 'menu_link', '_menu_item_append', 'menu_item_append', 'menu_item_type', 'menu_item_object_id', 'menu_item_target', 'menu_item_classes', 'menu_item_xfn', 'menu_item_url' )" ); - - // 3.0-beta1 remove_user primitive->meta cap. can be removed before release. r13956 - if ( $wp_current_db_version >= 12751 && $wp_current_db_version < 13974 ) { - $role =& get_role( 'administrator' ); - if ( ! empty( $role ) ) - $role->remove_cap( 'remove_user' ); - } - - // 3.0-beta1 nav menu postmeta changes. can be removed before release. r13974 - if ( $wp_current_db_version >= 13802 && $wp_current_db_version < 13974 ) - $wpdb->update( $wpdb->postmeta, array( 'meta_value' => '' ), array( 'meta_key' => '_menu_item_target', 'meta_value' => '_self' ) ); - // 3.0 screen options key name changes. - if ( !is_multisite() || is_main_site() ) { + if ( is_main_site() && !defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) { $prefix = like_escape($wpdb->base_prefix); $wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key LIKE '{$prefix}%meta-box-hidden%' OR meta_key LIKE '{$prefix}%closedpostboxes%' OR meta_key LIKE '{$prefix}%manage-%-columns-hidden%' OR meta_key LIKE '{$prefix}%meta-box-order%' OR meta_key LIKE '{$prefix}%metaboxorder%' OR meta_key LIKE '{$prefix}%screen_layout%' OR meta_key = 'manageedittagscolumnshidden' OR meta_key='managecategoriescolumnshidden' OR meta_key = 'manageedit-tagscolumnshidden' OR meta_key = 'manageeditcolumnshidden' OR meta_key = 'categories_per_page' OR meta_key = 'edit_tags_per_page'" ); @@ -1138,6 +1079,135 @@ function upgrade_300() { } +/** + * Execute changes made in WordPress 3.3. + * + * @since 3.3.0 + */ +function upgrade_330() { + global $wp_current_db_version, $wpdb, $wp_registered_widgets, $sidebars_widgets; + + if ( $wp_current_db_version < 19061 && is_main_site() && ! defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) { + $wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key IN ('show_admin_bar_admin', 'plugins_last_view')" ); + } + + if ( $wp_current_db_version >= 11548 ) + return; + + $sidebars_widgets = get_option( 'sidebars_widgets', array() ); + $_sidebars_widgets = array(); + + if ( isset($sidebars_widgets['wp_inactive_widgets']) || empty($sidebars_widgets) ) + $sidebars_widgets['array_version'] = 3; + elseif ( !isset($sidebars_widgets['array_version']) ) + $sidebars_widgets['array_version'] = 1; + + switch ( $sidebars_widgets['array_version'] ) { + case 1 : + foreach ( (array) $sidebars_widgets as $index => $sidebar ) + if ( is_array($sidebar) ) + foreach ( (array) $sidebar as $i => $name ) { + $id = strtolower($name); + if ( isset($wp_registered_widgets[$id]) ) { + $_sidebars_widgets[$index][$i] = $id; + continue; + } + $id = sanitize_title($name); + if ( isset($wp_registered_widgets[$id]) ) { + $_sidebars_widgets[$index][$i] = $id; + continue; + } + + $found = false; + + foreach ( $wp_registered_widgets as $widget_id => $widget ) { + if ( strtolower($widget['name']) == strtolower($name) ) { + $_sidebars_widgets[$index][$i] = $widget['id']; + $found = true; + break; + } elseif ( sanitize_title($widget['name']) == sanitize_title($name) ) { + $_sidebars_widgets[$index][$i] = $widget['id']; + $found = true; + break; + } + } + + if ( $found ) + continue; + + unset($_sidebars_widgets[$index][$i]); + } + $_sidebars_widgets['array_version'] = 2; + $sidebars_widgets = $_sidebars_widgets; + unset($_sidebars_widgets); + + case 2 : + $sidebars_widgets = retrieve_widgets(); + $sidebars_widgets['array_version'] = 3; + update_option( 'sidebars_widgets', $sidebars_widgets ); + } +} + +/** + * Execute changes made in WordPress 3.4. + * + * @since 3.4.0 + */ +function upgrade_340() { + global $wp_current_db_version, $wpdb; + + if ( $wp_current_db_version < 19798 ) { + $wpdb->hide_errors(); + $wpdb->query( "ALTER TABLE $wpdb->options DROP COLUMN blog_id" ); + $wpdb->show_errors(); + } + + if ( $wp_current_db_version < 19799 ) { + $wpdb->hide_errors(); + $wpdb->query("ALTER TABLE $wpdb->comments DROP INDEX comment_approved"); + $wpdb->show_errors(); + } + + if ( $wp_current_db_version < 20022 && is_main_site() && ! defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) { + $wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key = 'themes_last_view'" ); + } + + if ( $wp_current_db_version < 20080 ) { + if ( 'yes' == $wpdb->get_var( "SELECT autoload FROM $wpdb->options WHERE option_name = 'uninstall_plugins'" ) ) { + $uninstall_plugins = get_option( 'uninstall_plugins' ); + delete_option( 'uninstall_plugins' ); + add_option( 'uninstall_plugins', $uninstall_plugins, null, 'no' ); + } + } +} + +/** + * Execute changes made in WordPress 3.5. + * + * @since 3.5.0 + */ +function upgrade_350() { + global $wp_current_db_version, $wpdb; + + if ( $wp_current_db_version < 22006 && $wpdb->get_var( "SELECT link_id FROM $wpdb->links LIMIT 1" ) ) + update_option( 'link_manager_enabled', 1 ); // Previously set to 0 by populate_options() + + if ( $wp_current_db_version < 21811 && is_main_site() && ! defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) { + $meta_keys = array(); + foreach ( array_merge( get_post_types(), get_taxonomies() ) as $name ) { + if ( false !== strpos( $name, '-' ) ) + $meta_keys[] = 'edit_' . str_replace( '-', '_', $name ) . '_per_page'; + } + if ( $meta_keys ) { + $meta_keys = implode( "', '", $meta_keys ); + $wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key IN ('$meta_keys')" ); + } + } + + if ( $wp_current_db_version < 22422 && $term = get_term_by( 'slug', 'post-format-standard', 'post_format' ) ) + wp_delete_term( $term->term_id, 'post_format' ); +} + /** * Execute network level changes * @@ -1173,9 +1243,50 @@ function upgrade_network() { $start += 20; } } + // 3.0 if ( $wp_current_db_version < 13576 ) update_site_option( 'global_terms_enabled', '1' ); + + // 3.3 + if ( $wp_current_db_version < 19390 ) + update_site_option( 'initial_db_version', $wp_current_db_version ); + + if ( $wp_current_db_version < 19470 ) { + if ( false === get_site_option( 'active_sitewide_plugins' ) ) + update_site_option( 'active_sitewide_plugins', array() ); + } + + // 3.4 + if ( $wp_current_db_version < 20148 ) { + // 'allowedthemes' keys things by stylesheet. 'allowed_themes' keyed things by name. + $allowedthemes = get_site_option( 'allowedthemes' ); + $allowed_themes = get_site_option( 'allowed_themes' ); + if ( false === $allowedthemes && is_array( $allowed_themes ) && $allowed_themes ) { + $converted = array(); + $themes = wp_get_themes(); + foreach ( $themes as $stylesheet => $theme_data ) { + if ( isset( $allowed_themes[ $theme_data->get('Name') ] ) ) + $converted[ $stylesheet ] = true; + } + update_site_option( 'allowedthemes', $converted ); + delete_site_option( 'allowed_themes' ); + } + } + + // 3.5 + if ( $wp_current_db_version < 21823 ) + update_site_option( 'ms_files_rewriting', '1' ); + + // 3.5.2 + if ( $wp_current_db_version < 24448 ) { + $illegal_names = get_site_option( 'illegal_names' ); + if ( is_array( $illegal_names ) && count( $illegal_names ) === 1 ) { + $illegal_name = reset( $illegal_names ); + $illegal_names = explode( ' ', $illegal_name ); + update_site_option( 'illegal_names', $illegal_names ); + } + } } // The functions we use to actually do stuff @@ -1187,7 +1298,7 @@ function upgrade_network() { * * {@internal Missing Long Description}} * - * @since unknown + * @since 1.0.0 * * @param string $table_name Database table name to create. * @param string $create_ddl SQL statement to create table. @@ -1210,7 +1321,7 @@ function maybe_create_table($table_name, $create_ddl) { * * {@internal Missing Long Description}} * - * @since unknown + * @since 1.0.1 * * @param string $table Database table name. * @param string $index Index name to drop. @@ -1233,7 +1344,7 @@ function drop_index($table, $index) { * * {@internal Missing Long Description}} * - * @since unknown + * @since 1.0.1 * * @param string $table Database table name. * @param string $index Database table index column. @@ -1253,9 +1364,8 @@ function add_clean_index($table, $index) { ** false on error */ function maybe_add_column($table_name, $column_name, $create_ddl) { - global $wpdb, $debug; + global $wpdb; foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) { - if ($debug) echo("checking $column == $column_name
\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."
\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."
{$table}:\n"; - } - //else echo "
Found index:".$index_string."
{$table}:\n"; + // For every index in the table + foreach ($tableindices as $tableindex) { + // Add the index to the index data array + $keyname = $tableindex->Key_name; + $index_ary[$keyname]['columns'][] = array('fieldname' => $tableindex->Column_name, 'subpart' => $tableindex->Sub_part); + $index_ary[$keyname]['unique'] = ($tableindex->Non_unique == 0)?true:false; + } + + // For each actual index in the index array + foreach ($index_ary as $index_name => $index_data) { + // Build a create string to compare to the query + $index_string = ''; + if ($index_name == 'PRIMARY') { + $index_string .= 'PRIMARY '; + } else if($index_data['unique']) { + $index_string .= 'UNIQUE '; + } + $index_string .= 'KEY '; + if ($index_name != 'PRIMARY') { + $index_string .= $index_name; + } + $index_columns = ''; + // For each column in the index + foreach ($index_data['columns'] as $column_data) { + if ($index_columns != '') $index_columns .= ','; + // Add the field to the column list string + $index_columns .= $column_data['fieldname']; + if ($column_data['subpart'] != '') { + $index_columns .= '('.$column_data['subpart'].')'; } } - - // For every remaining index specified for the table - foreach ( (array) $indices as $index ) { - // Push a query line into $cqueries that adds the index to that table - $cqueries[] = "ALTER TABLE {$table} ADD $index"; - $for_update[$table.'.'.$fieldname] = 'Added index '.$table.' '.$index; + // Add the column list to the index create string + $index_string .= ' ('.$index_columns.')'; + if (!(($aindex = array_search($index_string, $indices)) === false)) { + unset($indices[$aindex]); + //echo "
Did not find index:".$index_string."
".print_r($indices, true)."
{$table}:\n"; } - - // Remove the original table creation query from processing - unset($cqueries[strtolower($table)]); - unset($for_update[strtolower($table)]); - } else { - // This table exists in the database, but not in the creation queries? + //else echo "
Found index:".$index_string."
{$table}:\n"; } } + + // For every remaining index specified for the table + foreach ( (array) $indices as $index ) { + // Push a query line into $cqueries that adds the index to that table + $cqueries[] = "ALTER TABLE {$table} ADD $index"; + $for_update[] = 'Added index ' . $table . ' ' . $index; + } + + // Remove the original table creation query from processing + unset( $cqueries[ $table ], $for_update[ $table ] ); } $allqueries = array_merge($cqueries, $iqueries); @@ -1563,12 +1671,10 @@ function dbDelta($queries, $execute = true) { * * {@internal Missing Long Description}} * - * @since unknown + * @since 1.5.0 */ -function make_db_current() { - global $wp_queries; - - $alterations = dbDelta($wp_queries); +function make_db_current( $tables = 'all' ) { + $alterations = dbDelta( $tables ); echo "
Did not find index:".$index_string."
".print_r($indices, true)."