X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/58f607a1de715c9bca69340a4d6fb9e1b9c2bed2..341dfbb66f24f5145174c373267f889c31615cc5:/wp-admin/includes/upgrade.php diff --git a/wp-admin/includes/upgrade.php b/wp-admin/includes/upgrade.php index 7ae2384e..646e1ccb 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. @@ -64,7 +64,7 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated $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); @@ -98,7 +98,7 @@ if ( !function_exists('wp_install_defaults') ) : * * {@internal Missing Long Description}} * - * @since unknown + * @since 2.1.0 * * @param int $user_id User ID. */ @@ -243,7 +243,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 doohickies 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 +261,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 +274,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 ( ), 'sidebar-3' => array ( ), 'sidebar-4' => array ( ), 'sidebar-5' => 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. @@ -300,7 +313,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. @@ -336,7 +349,7 @@ if ( !function_exists('wp_upgrade') ) : * * {@internal Missing Long Description}} * - * @since unknown + * @since 2.1.0 * * @return null */ @@ -375,7 +388,7 @@ endif; * * {@internal Missing Long Description}} * - * @since unknown + * @since 1.0.1 */ function upgrade_all() { global $wp_current_db_version, $wp_db_version, $wp_rewrite; @@ -443,6 +456,9 @@ function upgrade_all() { if ( $wp_current_db_version < 15260 ) upgrade_300(); + if ( $wp_current_db_version < 19389 ) + upgrade_330(); + maybe_disable_automattic_widgets(); update_option( 'db_version', $wp_db_version ); @@ -568,7 +584,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)"); @@ -1114,21 +1130,6 @@ 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_main_site() && !defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) { $prefix = like_escape($wpdb->base_prefix); @@ -1138,6 +1139,80 @@ 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')" ); + } + + // 3.3-beta. Can remove before release. + if ( $wp_current_db_version > 18715 && $wp_current_db_version < 19389 + && is_main_site() && ! defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) + delete_metadata( 'user', 0, 'dismissed_wp_pointers', '', true ); + + 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 network level changes * @@ -1176,6 +1251,13 @@ function upgrade_network() { // 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() ); + } } // The functions we use to actually do stuff @@ -1187,7 +1269,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 +1292,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 +1315,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. @@ -1296,7 +1378,7 @@ function get_alloptions_110() { /** * Version of get_option that is private to install/upgrade. * - * @since unknown + * @since 1.5.1 * @access private * * @param string $setting Option name. @@ -1333,7 +1415,7 @@ function __get_option($setting) { * * {@internal Missing Long Description}} * - * @since unknown + * @since 1.5.0 * * @param string $content * @return string @@ -1360,20 +1442,24 @@ function deslash($content) { * * {@internal Missing Long Description}} * - * @since unknown + * @since 1.5.0 * * @param unknown_type $queries * @param unknown_type $execute * @return unknown */ -function dbDelta($queries, $execute = true) { +function dbDelta( $queries = '', $execute = true ) { global $wpdb; + if ( in_array( $queries, array( '', 'all', 'blog', 'global', 'ms_global' ), true ) ) + $queries = wp_get_db_schema( $queries ); + // Separate individual queries into an array if ( !is_array($queries) ) { $queries = explode( ';', $queries ); if ('' == $queries[count($queries) - 1]) array_pop($queries); } + $queries = apply_filters( 'dbdelta_queries', $queries ); $cqueries = array(); // Creation Queries $iqueries = array(); // Insertion Queries @@ -1394,161 +1480,159 @@ function dbDelta($queries, $execute = true) { // Unrecognized query type } } + $cqueries = apply_filters( 'dbdelta_create_queries', $cqueries ); + $iqueries = apply_filters( 'dbdelta_insert_queries', $iqueries ); - // Check to see which tables and fields exist - if ($tables = $wpdb->get_col('SHOW TABLES;')) { - // For every table in the database - foreach ($tables as $table) { - // 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, $wpdb->tables('global')) && ( !is_main_site() || defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) ) - continue; + $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' ) ) ) + continue; - // If a table query exists for the database table... - if ( array_key_exists(strtolower($table), $cqueries) ) { - // Clear the field and index arrays - $cfields = $indices = array(); - // Get all of the field names in the query from between the parens - preg_match("|\((.*)\)|ms", $cqueries[strtolower($table)], $match2); - $qryline = trim($match2[1]); - - // Separate field lines into an array - $flds = explode("\n", $qryline); - - //echo "
\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[$table.'.'.$fieldname] = 'Added index '.$table.' '.$index; + } + + // Remove the original table creation query from processing + unset( $cqueries[ $table ], $for_update[ $table ] ); } $allqueries = array_merge($cqueries, $iqueries); @@ -1567,12 +1651,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)."