X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/61343b82c4f0da4c68e4c6373daafff4a81efdd1..88550bc3400cc7c035ff590ecb007c7938041ded:/wp-admin/includes/upgrade.php?ds=sidebyside diff --git a/wp-admin/includes/upgrade.php b/wp-admin/includes/upgrade.php index 0d17d8fc..15a1097f 100644 --- a/wp-admin/includes/upgrade.php +++ b/wp-admin/includes/upgrade.php @@ -30,11 +30,12 @@ if ( !function_exists('wp_install') ) : * @param string $user_name User's username. * @param string $user_email User's email. * @param bool $public Whether blog is public. - * @param null $deprecated Optional. Not used. + * @param string $deprecated Optional. Not used. * @param string $user_password Optional. User's chosen password. Will default to a random password. + * @param string $language Optional. Language chosen. * @return array Array keys 'url', 'user_id', 'password', 'password_message'. */ -function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated = '', $user_password = '' ) { +function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated = '', $user_password = '', $language = '' ) { if ( !empty( $deprecated ) ) _deprecated_argument( __FUNCTION__, '2.6' ); @@ -48,6 +49,10 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated update_option('admin_email', $user_email); update_option('blog_public', $public); + if ( $language ) { + update_option( 'WPLANG', $language ); + } + $guessurl = wp_guess_url(); update_option('siteurl', $guessurl); @@ -56,8 +61,10 @@ 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; @@ -86,6 +93,15 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated wp_cache_flush(); + /** + * Fires after a site is fully installed. + * + * @since 3.9.0 + * + * @param WP_User $user The site owner. + */ + do_action( 'wp_install', $user ); + return array('url' => $guessurl, 'user_id' => $user_id, 'password' => $user_password, 'password_message' => $message); } endif; @@ -100,8 +116,8 @@ if ( !function_exists('wp_install_defaults') ) : * * @param int $user_id User ID. */ -function wp_install_defaults($user_id) { - global $wpdb, $wp_rewrite, $current_site, $table_prefix; +function wp_install_defaults( $user_id ) { + global $wpdb, $wp_rewrite, $table_prefix; // Default category $cat_name = __('Uncategorized'); @@ -135,7 +151,7 @@ function wp_install_defaults($user_id) { $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 ); + $first_post = str_replace( "SITE_NAME", get_current_site()->site_name, $first_post ); } else { $first_post = __('Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!'); } @@ -161,7 +177,7 @@ function wp_install_defaults($user_id) { // Default comment $first_comment_author = __('Mr WordPress'); - $first_comment_url = 'http://wordpress.org/'; + $first_comment_url = 'https://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.'); if ( is_multisite() ) { @@ -218,7 +234,7 @@ As a new WordPress user, you should go to your dashboard to d 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 (), '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 ) ); + 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', ), 'array_version' => 3 ) ); if ( ! is_multisite() ) update_user_meta( $user_id, 'show_welcome_panel', 1 ); @@ -261,7 +277,8 @@ function wp_new_blog_notification($blog_title, $blog_url, $user_id, $password) { $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: + $login_url = wp_login_url(); + $message = sprintf( __( "Your new WordPress site has been successfully set up at: %1\$s @@ -269,12 +286,13 @@ You can log in to the administrator account with the following information: Username: %2\$s Password: %3\$s +Log in here: %4\$s We hope you enjoy your new site. Thanks! --The WordPress Team -http://wordpress.org/ -"), $blog_url, $name, $password); +https://wordpress.org/ +"), $blog_url, $name, $password, $login_url ); @wp_mail($email, __('New WordPress Site'), $message); } @@ -317,6 +335,16 @@ function wp_upgrade() { else $wpdb->query( "INSERT INTO {$wpdb->blog_versions} ( `blog_id` , `db_version` , `last_updated` ) VALUES ( '{$wpdb->blogid}', '{$wp_db_version}', NOW());" ); } + + /** + * Fires after a site is fully upgraded. + * + * @since 3.9.0 + * + * @param int $wp_db_version The new $wp_db_version. + * @param int $wp_current_db_version The old (current) $wp_db_version. + */ + do_action( 'wp_upgrade', $wp_db_version, $wp_current_db_version ); } endif; @@ -402,6 +430,18 @@ function upgrade_all() { if ( $wp_current_db_version < 22422 ) upgrade_350(); + if ( $wp_current_db_version < 25824 ) + upgrade_370(); + + if ( $wp_current_db_version < 26148 ) + upgrade_372(); + + if ( $wp_current_db_version < 26691 ) + upgrade_380(); + + if ( $wp_current_db_version < 29630 ) + upgrade_400(); + maybe_disable_link_manager(); maybe_disable_automattic_widgets(); @@ -437,9 +477,11 @@ function upgrade_100() { } } - $wpdb->query("UPDATE $wpdb->options SET option_value = REPLACE(option_value, 'wp-links/links-images/', 'wp-images/links/') - WHERE option_name LIKE 'links_rating_image%' - AND option_value LIKE 'wp-links/links-images/%'"); + $sql = "UPDATE $wpdb->options + SET option_value = REPLACE(option_value, 'wp-links/links-images/', 'wp-images/links/') + WHERE option_name LIKE %s + AND option_value LIKE %s"; + $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( 'links_rating_image' ) . '%', $wpdb->esc_like( 'wp-links/links-images/' ) . '%' ) ); $done_ids = $wpdb->get_results("SELECT DISTINCT post_id FROM $wpdb->post2cat"); if ($done_ids) : @@ -590,8 +632,10 @@ 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. + /* + * If plugins are not stored in an array, they're stored in the old + * 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); @@ -681,14 +725,16 @@ function upgrade_160() { $wpdb->query("ALTER TABLE $wpdb->users DROP $old"); $wpdb->show_errors(); - // populate comment_count field of posts table + // Populate comment_count field of posts table. $comments = $wpdb->get_results( "SELECT comment_post_ID, COUNT(*) as c FROM $wpdb->comments WHERE comment_approved = '1' GROUP BY comment_post_ID" ); if ( is_array( $comments ) ) foreach ($comments as $comment) $wpdb->update( $wpdb->posts, array('comment_count' => $comment->c), array('ID' => $comment->comment_post_ID) ); - // Some alpha versions used a post status of object instead of attachment and put - // the mime type in post_type instead of post_mime_type. + /* + * Some alpha versions used a post status of object instead of attachment + * and put the mime type in post_type instead of post_mime_type. + */ if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) { $objects = $wpdb->get_results("SELECT ID, post_type FROM $wpdb->posts WHERE post_status = 'object'"); foreach ($objects as $object) { @@ -845,8 +891,10 @@ function upgrade_230() { // < 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 - // to link_category terms. + /* + * 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; $tt_ids = array(); @@ -954,7 +1002,7 @@ function upgrade_230_old_tables() { * @since 2.2.0 */ function upgrade_old_slugs() { - // upgrade people who were using the Redirect Old Slugs plugin + // Upgrade people who were using the Redirect Old Slugs plugin. global $wpdb; $wpdb->query("UPDATE $wpdb->postmeta SET meta_key = '_wp_old_slug' WHERE meta_key = 'old_slug'"); } @@ -1072,9 +1120,28 @@ function upgrade_300() { // 3.0 screen options key name changes. 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'" ); + $sql = "DELETE FROM $wpdb->usermeta + WHERE meta_key LIKE %s + OR meta_key LIKE %s + OR meta_key LIKE %s + OR meta_key LIKE %s + OR meta_key LIKE %s + OR meta_key LIKE %s + 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'"; + $prefix = $wpdb->esc_like( $wpdb->base_prefix ); + $wpdb->query( $wpdb->prepare( $sql, + $prefix . '%' . $wpdb->esc_like( 'meta-box-hidden' ) . '%', + $prefix . '%' . $wpdb->esc_like( 'closedpostboxes' ) . '%', + $prefix . '%' . $wpdb->esc_like( 'manage-' ) . '%' . $wpdb->esc_like( '-columns-hidden' ) . '%', + $prefix . '%' . $wpdb->esc_like( 'meta-box-order' ) . '%', + $prefix . '%' . $wpdb->esc_like( 'metaboxorder' ) . '%', + $prefix . '%' . $wpdb->esc_like( 'screen_layout' ) . '%' + ) ); } } @@ -1208,6 +1275,59 @@ function upgrade_350() { wp_delete_term( $term->term_id, 'post_format' ); } +/** + * Execute changes made in WordPress 3.7. + * + * @since 3.7.0 + */ +function upgrade_370() { + global $wp_current_db_version; + if ( $wp_current_db_version < 25824 ) + wp_clear_scheduled_hook( 'wp_auto_updates_maybe_update' ); +} + +/** + * Execute changes made in WordPress 3.7.2. + * + * @since 3.7.2 + * @since 3.8.0 + */ +function upgrade_372() { + global $wp_current_db_version; + if ( $wp_current_db_version < 26148 ) + wp_clear_scheduled_hook( 'wp_maybe_auto_update' ); +} + +/** + * Execute changes made in WordPress 3.8.0. + * + * @since 3.8.0 + */ +function upgrade_380() { + global $wp_current_db_version; + if ( $wp_current_db_version < 26691 ) { + deactivate_plugins( array( 'mp6/mp6.php' ), true ); + } +} + +/** + * Execute changes made in WordPress 4.0.0. + * + * @since 4.0.0 + */ +function upgrade_400() { + global $wp_current_db_version; + if ( $wp_current_db_version < 29630 ) { + if ( ! is_multisite() && false === get_option( 'WPLANG' ) ) { + if ( defined( 'WPLANG' ) && ( '' !== WPLANG ) && in_array( WPLANG, get_available_languages() ) ) { + update_option( 'WPLANG', WPLANG ); + } else { + update_option( 'WPLANG', '' ); + } + } + } +} + /** * Execute network level changes * @@ -1215,7 +1335,24 @@ function upgrade_350() { */ function upgrade_network() { global $wp_current_db_version, $wpdb; - // 2.8 + + // Always. + if ( is_main_network() ) { + /* + * Deletes all expired transients. The multi-table delete syntax is used + * to delete the transient record from table a, and the corresponding + * transient_timeout record from table b. + */ + $time = time(); + $sql = "DELETE a, b FROM $wpdb->sitemeta a, $wpdb->sitemeta b + WHERE a.meta_key LIKE %s + AND a.meta_key NOT LIKE %s + AND b.meta_key = CONCAT( '_site_transient_timeout_', SUBSTRING( a.meta_key, 17 ) ) + AND b.meta_value < %d"; + $wpdb->query( $wpdb->prepare( $sql, $wpdb->esc_like( '_site_transient_' ) . '%', $wpdb->esc_like ( '_site_transient_timeout_' ) . '%', $time ) ); + } + + // 2.8. if ( $wp_current_db_version < 11549 ) { $wpmu_sitewide_plugins = get_site_option( 'wpmu_sitewide_plugins' ); $active_sitewide_plugins = get_site_option( 'active_sitewide_plugins' ); @@ -1306,13 +1443,20 @@ function upgrade_network() { */ function maybe_create_table($table_name, $create_ddl) { global $wpdb; - if ( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name ) + + $query = $wpdb->prepare( "SHOW TABLES LIKE %s", $wpdb->esc_like( $table_name ) ); + + if ( $wpdb->get_var( $query ) == $table_name ) { return true; - //didn't find it try to create it. - $q = $wpdb->query($create_ddl); - // we cannot directly tell that whether this succeeded! - if ( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name ) + } + + // Didn't find it try to create it.. + $wpdb->query($create_ddl); + + // We cannot directly tell that whether this succeeded! + if ( $wpdb->get_var( $query ) == $table_name ) { return true; + } return false; } @@ -1370,9 +1514,11 @@ function maybe_add_column($table_name, $column_name, $create_ddl) { return true; } } - //didn't find it try to create it. - $q = $wpdb->query($create_ddl); - // we cannot directly tell that whether this succeeded! + + // Didn't find it try to create it. + $wpdb->query($create_ddl); + + // We cannot directly tell that whether this succeeded! foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) { if ($column == $column_name) { return true; @@ -1386,7 +1532,7 @@ function maybe_add_column($table_name, $column_name, $create_ddl) { * * @since 1.2.0 * - * @return array List of options. + * @return stdClass List of options. */ function get_alloptions_110() { global $wpdb; @@ -1443,12 +1589,16 @@ function __get_option($setting) { function deslash($content) { // Note: \\\ inside a regex denotes a single backslash. - // Replace one or more backslashes followed by a single quote with - // a single quote. + /* + * Replace one or more backslashes followed by a single quote with + * a single quote. + */ $content = preg_replace("/\\\+'/", "'", $content); - // Replace one or more backslashes followed by a double quote with - // a double quote. + /* + * Replace one or more backslashes followed by a double quote with + * a double quote. + */ $content = preg_replace('/\\\+"/', '"', $content); // Replace one or more backslashes with one backslash. @@ -1464,9 +1614,9 @@ function deslash($content) { * * @since 1.5.0 * - * @param unknown_type $queries - * @param unknown_type $execute - * @return unknown + * @param string $queries + * @param bool $execute + * @return array */ function dbDelta( $queries = '', $execute = true ) { global $wpdb; @@ -1479,6 +1629,14 @@ function dbDelta( $queries = '', $execute = true ) { $queries = explode( ';', $queries ); $queries = array_filter( $queries ); } + + /** + * Filter the dbDelta SQL queries. + * + * @since 3.3.0 + * + * @param array $queries An array of dbDelta SQL queries. + */ $queries = apply_filters( 'dbdelta_queries', $queries ); $cqueries = array(); // Creation Queries @@ -1500,41 +1658,66 @@ function dbDelta( $queries = '', $execute = true ) { // Unrecognized query type } } + + /** + * Filter the dbDelta SQL queries for creating tables and/or databases. + * + * Queries filterable via this hook contain "CREATE TABLE" or "CREATE DATABASE". + * + * @since 3.3.0 + * + * @param array $cqueries An array of dbDelta create SQL queries. + */ $cqueries = apply_filters( 'dbdelta_create_queries', $cqueries ); + + /** + * Filter the dbDelta SQL queries for inserting or updating. + * + * Queries filterable via this hook contain "INSERT INTO" or "UPDATE". + * + * @since 3.3.0 + * + * @param array $iqueries An array of dbDelta insert or update SQL queries. + */ $iqueries = apply_filters( 'dbdelta_insert_queries', $iqueries ); $global_tables = $wpdb->tables( 'global' ); foreach ( $cqueries as $table => $qry ) { // Upgrade global tables only for the main site. Don't upgrade at all if DO_NOT_UPGRADE_GLOBAL_TABLES is defined. - if ( in_array( $table, $global_tables ) && ( !is_main_site() || defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) ) + if ( in_array( $table, $global_tables ) && ( !is_main_site() || defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) ) { + unset( $cqueries[ $table ], $for_update[ $table ] ); continue; + } // Fetch the table column structure from the database - $wpdb->suppress_errors(); + $suppress = $wpdb->suppress_errors(); $tablefields = $wpdb->get_results("DESCRIBE {$table};"); - $wpdb->suppress_errors( false ); + $wpdb->suppress_errors( $suppress ); if ( ! $tablefields ) continue; - // Clear the field and index arrays + // Clear the field and index arrays. $cfields = $indices = array(); - // Get all of the field names in the query from between the parens + + // Get all of the field names in the query from between the parentheses. preg_match("|\((.*)\)|ms", $qry, $match2); $qryline = trim($match2[1]); - // Separate field lines into an array + // Separate field lines into an array. $flds = explode("\n", $qryline); + // todo: Remove this? //echo "
\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."

"; - // For every field line specified in the query + // For every field line specified in the query. foreach ($flds as $fld) { - // Extract the field name + + // Extract the field name. preg_match("|^([^ ]*)|", trim($fld), $fvals); $fieldname = trim( $fvals[1], '`' ); - // Verify the found field name + // Verify the found field name. $validfield = true; switch (strtolower($fieldname)) { case '': @@ -1549,17 +1732,19 @@ function dbDelta( $queries = '', $execute = true ) { } $fld = trim($fld); - // If it's a valid field, add it to the field array + // If it's a valid field, add it to the field array. if ($validfield) { $cfields[strtolower($fieldname)] = trim($fld, ", \n"); } } - // For every field in the table + // For every field in the table. foreach ($tablefields as $tablefield) { - // If the table field exists in the field array... + + // If the table field exists in the field array ... if (array_key_exists(strtolower($tablefield->Field), $cfields)) { - // Get the field type from the query + + // Get the field type from the query. preg_match("|".$tablefield->Field." ([^ ]*( unsigned)?)|i", $cfields[strtolower($tablefield->Field)], $matches); $fieldtype = $matches[1]; @@ -1571,6 +1756,7 @@ function dbDelta( $queries = '', $execute = true ) { } // Get the default value from the array + // todo: Remove this? //echo "{$cfields[strtolower($tablefield->Field)]}
"; if (preg_match("| DEFAULT '(.*?)'|i", $cfields[strtolower($tablefield->Field)], $matches)) { $default_value = $matches[1]; @@ -1581,39 +1767,40 @@ function dbDelta( $queries = '', $execute = true ) { } } - // Remove the field from the array (so it's not added) + // Remove the field from the array (so it's not added). unset($cfields[strtolower($tablefield->Field)]); } else { // This field exists in the table, but not in the creation queries? } } - // For every remaining field specified for the table + // For every remaining field specified for the table. foreach ($cfields as $fieldname => $fielddef) { - // Push a query line into $cqueries that adds the field to that table + // Push a query line into $cqueries that adds the field to that table. $cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef"; $for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname; } - // Index stuff goes here - // Fetch the table index structure from the database + // Index stuff goes here. Fetch the table index structure from the database. $tableindices = $wpdb->get_results("SHOW INDEX FROM {$table};"); if ($tableindices) { - // Clear the index array + // Clear the index array. unset($index_ary); - // For every index in the table + // For every index in the table. foreach ($tableindices as $tableindex) { - // Add the index to the index data array + + // 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 + // 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 + + // Build a create string to compare to the query. $index_string = ''; if ($index_name == 'PRIMARY') { $index_string .= 'PRIMARY '; @@ -1625,39 +1812,44 @@ function dbDelta( $queries = '', $execute = true ) { $index_string .= $index_name; } $index_columns = ''; - // For each column in the index + + // 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 + + // Add the field to the column list string. $index_columns .= $column_data['fieldname']; if ($column_data['subpart'] != '') { $index_columns .= '('.$column_data['subpart'].')'; } } - // Add the column list to the index create string + // Add the column list to the index create string. $index_string .= ' ('.$index_columns.')'; if (!(($aindex = array_search($index_string, $indices)) === false)) { unset($indices[$aindex]); + // todo: Remove this? //echo "
{$table}:
Found index:".$index_string."
\n"; } + // todo: Remove this? //else echo "
{$table}:
Did not find index:".$index_string."
".print_r($indices, true)."
\n"; } } - // For every remaining index specified for the table + // 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 + // 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 + // Remove the original table creation query from processing. unset( $cqueries[ $table ], $for_update[ $table ] ); } $allqueries = array_merge($cqueries, $iqueries); if ($execute) { foreach ($allqueries as $query) { + // todo: Remove this? //echo "
".print_r($query, true)."
\n"; $wpdb->query($query); } @@ -1688,7 +1880,7 @@ function make_db_current( $tables = 'all' ) { * @since 1.5.0 */ function make_db_current_silent( $tables = 'all' ) { - $alterations = dbDelta( $tables ); + dbDelta( $tables ); } /** @@ -1698,9 +1890,9 @@ function make_db_current_silent( $tables = 'all' ) { * * @since 1.5.0 * - * @param unknown_type $theme_name - * @param unknown_type $template - * @return unknown + * @param string $theme_name + * @param string $template + * @return bool */ function make_site_theme_from_oldschool($theme_name, $template) { $home_path = get_home_path(); @@ -1709,9 +1901,10 @@ function make_site_theme_from_oldschool($theme_name, $template) { if (! file_exists("$home_path/index.php")) return false; - // Copy files from the old locations to the site theme. - // TODO: This does not copy arbitrary include dependencies. Only the - // standard WP files are copied. + /* + * Copy files from the old locations to the site theme. + * TODO: This does not copy arbitrary include dependencies. Only the standard WP files are copied. + */ $files = array('index.php' => 'index.php', 'wp-layout.css' => 'style.css', 'wp-comments.php' => 'comments.php', 'wp-comments-popup.php' => 'comments-popup.php'); foreach ($files as $oldfile => $newfile) { @@ -1720,12 +1913,15 @@ function make_site_theme_from_oldschool($theme_name, $template) { else $oldpath = ABSPATH; - if ($oldfile == 'index.php') { // Check to make sure it's not a new index + // Check to make sure it's not a new index. + if ($oldfile == 'index.php') { $index = implode('', file("$oldpath/$oldfile")); if (strpos($index, 'WP_USE_THEMES') !== false) { if (! @copy(WP_CONTENT_DIR . '/themes/' . WP_DEFAULT_THEME . '/index.php', "$site_dir/$newfile")) return false; - continue; // Don't copy anything + + // Don't copy anything. + continue; } } @@ -1777,9 +1973,9 @@ function make_site_theme_from_oldschool($theme_name, $template) { * * @since 1.5.0 * - * @param unknown_type $theme_name - * @param unknown_type $template - * @return unknown + * @param string $theme_name + * @param string $template + * @return null|false */ function make_site_theme_from_default($theme_name, $template) { $site_dir = WP_CONTENT_DIR . "/themes/$template"; @@ -1843,7 +2039,7 @@ function make_site_theme_from_default($theme_name, $template) { * * @since 1.5.0 * - * @return unknown + * @return false|string */ function make_site_theme() { // Name the theme after the blog. @@ -1964,7 +2160,7 @@ function maybe_disable_link_manager() { * @since 2.9.0 */ function pre_schema_upgrade() { - global $wp_current_db_version, $wp_db_version, $wpdb; + global $wp_current_db_version, $wpdb; // Upgrade versions prior to 2.9 if ( $wp_current_db_version < 11557 ) { @@ -1978,6 +2174,27 @@ function pre_schema_upgrade() { $wpdb->query("ALTER TABLE $wpdb->options DROP INDEX option_name"); } + // Multisite schema upgrades. + if ( $wp_current_db_version < 25448 && is_multisite() && ! defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) && is_main_network() ) { + + // Upgrade verions prior to 3.7 + if ( $wp_current_db_version < 25179 ) { + // New primary key for signups. + $wpdb->query( "ALTER TABLE $wpdb->signups ADD signup_id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST" ); + $wpdb->query( "ALTER TABLE $wpdb->signups DROP INDEX domain" ); + } + + if ( $wp_current_db_version < 25448 ) { + // Convert archived from enum to tinyint. + $wpdb->query( "ALTER TABLE $wpdb->blogs CHANGE COLUMN archived archived varchar(1) NOT NULL default '0'" ); + $wpdb->query( "ALTER TABLE $wpdb->blogs CHANGE COLUMN archived archived tinyint(2) NOT NULL default 0" ); + } + } + + if ( $wp_current_db_version < 30133 ) { + // dbDelta() can recreate but can't drop the index. + $wpdb->query( "ALTER TABLE $wpdb->terms DROP INDEX slug" ); + } } /**