* @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' );
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;
$message = '<em>'.__('Your chosen password.').'</em>';
$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);
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.') ) );
// Now drop in some default links
$default_links = array();
- $default_links[] = array( 'link_url' => 'http://codex.wordpress.org/',
- 'link_name' => 'Documentation',
+ $default_links[] = array( 'link_url' => __( 'http://codex.wordpress.org/' ),
+ 'link_name' => __( 'Documentation' ),
'link_rss' => '',
'link_notes' => '');
- $default_links[] = array( 'link_url' => 'http://wordpress.org/news/',
- 'link_name' => 'WordPress Blog',
- 'link_rss' => 'http://wordpress.org/news/feed/',
+ $default_links[] = array( 'link_url' => __( 'http://wordpress.org/news/' ),
+ 'link_name' => __( 'WordPress Blog' ),
+ 'link_rss' => __( 'http://wordpress.org/news/feed/' ),
'link_notes' => '');
- $default_links[] = array( 'link_url' => 'http://wordpress.org/extend/ideas/',
- 'link_name' => 'Suggest Ideas',
+ $default_links[] = array( 'link_url' => __( 'http://wordpress.org/support/' ),
+ 'link_name' => _x( 'Support Forums', 'default link' ),
'link_rss' => '',
'link_notes' =>'');
- $default_links[] = array( 'link_url' => 'http://wordpress.org/support/',
- 'link_name' => 'Support Forum',
+ $default_links[] = array( 'link_url' => 'http://wordpress.org/extend/plugins/',
+ 'link_name' => _x( 'Plugins', 'Default link to wordpress.org/extend/plugins/' ),
'link_rss' => '',
'link_notes' =>'');
- $default_links[] = array( 'link_url' => 'http://wordpress.org/extend/plugins/',
- 'link_name' => 'Plugins',
+ $default_links[] = array( 'link_url' => 'http://wordpress.org/extend/themes/',
+ 'link_name' => _x( 'Themes', 'Default link to wordpress.org/extend/themes/' ),
'link_rss' => '',
'link_notes' =>'');
- $default_links[] = array( 'link_url' => 'http://wordpress.org/extend/themes/',
- 'link_name' => 'Themes',
+ $default_links[] = array( 'link_url' => __( 'http://wordpress.org/support/forum/requests-and-feedback' ),
+ 'link_name' => __( 'Feedback' ),
'link_rss' => '',
'link_notes' =>'');
- $default_links[] = array( 'link_url' => 'http://planet.wordpress.org/',
- 'link_name' => 'WordPress Planet',
+ $default_links[] = array( 'link_url' => __( 'http://planet.wordpress.org/' ),
+ 'link_name' => __( 'WordPress Planet' ),
'link_rss' => '',
'link_notes' =>'');
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.
// 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;
$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;
* @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;
if ( $wp_current_db_version < 15260 )
upgrade_300();
+ if ( $wp_current_db_version < 19389 )
+ upgrade_330();
+
+ if ( $wp_current_db_version < 20080 )
+ upgrade_340();
+
maybe_disable_automattic_widgets();
update_option( 'db_version', $wp_db_version );
$time_difference = $all_options->time_difference;
- $server_time = time()+date('Z');
+ $server_time = time()+date('Z');
$weblogger_time = $server_time + $time_difference*3600;
$gmt_time = time();
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)");
$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);
$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;
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);
}
+/**
+ * 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 network level changes
*
$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' );
+ }
+ }
}
// The functions we use to actually do stuff
** 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<br />");
if ($column == $column_name) {
return true;
}
*/
function get_alloptions_110() {
global $wpdb;
- if ($options = $wpdb->get_results("SELECT option_name, option_value FROM $wpdb->options")) {
- foreach ($options as $option) {
- // "When trying to design a foolproof system,
- // never underestimate the ingenuity of the fools :)" -- Dougal
- if ('siteurl' == $option->option_name) $option->option_value = preg_replace('|/+$|', '', $option->option_value);
- if ('home' == $option->option_name) $option->option_value = preg_replace('|/+$|', '', $option->option_value);
- if ('category_base' == $option->option_name) $option->option_value = preg_replace('|/+$|', '', $option->option_value);
- $all_options->{$option->option_name} = stripslashes($option->option_value);
+ $all_options = new stdClass;
+ if ( $options = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options" ) ) {
+ foreach ( $options as $option ) {
+ if ( 'siteurl' == $option->option_name || 'home' == $option->option_name || 'category_base' == $option->option_name )
+ $option->option_value = untrailingslashit( $option->option_value );
+ $all_options->{$option->option_name} = stripslashes( $option->option_value );
}
}
return $all_options;
function __get_option($setting) {
global $wpdb;
- if ( $setting == 'home' && defined( 'WP_HOME' ) ) {
- return preg_replace( '|/+$|', '', WP_HOME );
- }
+ if ( $setting == 'home' && defined( 'WP_HOME' ) )
+ return untrailingslashit( WP_HOME );
- if ( $setting == 'siteurl' && defined( 'WP_SITEURL' ) ) {
- return preg_replace( '|/+$|', '', WP_SITEURL );
- }
+ if ( $setting == 'siteurl' && defined( 'WP_SITEURL' ) )
+ return untrailingslashit( WP_SITEURL );
- $option = $wpdb->get_var( $wpdb->prepare("SELECT option_value FROM $wpdb->options WHERE option_name = %s", $setting) );
+ $option = $wpdb->get_var( $wpdb->prepare("SELECT option_value FROM $wpdb->options WHERE option_name = %s", $setting ) );
if ( 'home' == $setting && '' == $option )
- return __get_option('siteurl');
+ return __get_option( 'siteurl' );
- if ( 'siteurl' == $setting || 'home' == $setting || 'category_base' == $setting )
- $option = preg_replace('|/+$|', '', $option);
+ if ( 'siteurl' == $setting || 'home' == $setting || 'category_base' == $setting || 'tag_base' == $setting )
+ $option = untrailingslashit( $option );
- @ $kellogs = unserialize($option);
- if ($kellogs !== FALSE)
+ @ $kellogs = unserialize( $option );
+ if ( $kellogs !== false )
return $kellogs;
else
return $option;
* @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 = array_filter( $queries );
}
+ $queries = apply_filters( 'dbdelta_queries', $queries );
$cqueries = array(); // Creation Queries
$iqueries = array(); // Insertion Queries
// Create a tablename index for an array ($cqueries) of queries
foreach($queries as $qry) {
if (preg_match("|CREATE TABLE ([^ ]*)|", $qry, $matches)) {
- $cqueries[trim( strtolower($matches[1]), '`' )] = $qry;
+ $cqueries[ trim( $matches[1], '`' ) ] = $qry;
$for_update[$matches[1]] = 'Created table '.$matches[1];
} else if (preg_match("|CREATE DATABASE ([^ ]*)|", $qry, $matches)) {
array_unshift($cqueries, $qry);
// 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 "<hr/><pre>\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."</pre><hr/>";
-
- // For every field line specified in the query
- foreach ($flds as $fld) {
- // Extract the field name
- preg_match("|^([^ ]*)|", trim($fld), $fvals);
- $fieldname = trim( $fvals[1], '`' );
-
- // Verify the found field name
- $validfield = true;
- switch (strtolower($fieldname)) {
- case '':
- case 'primary':
- case 'index':
- case 'fulltext':
- case 'unique':
- case 'key':
- $validfield = false;
- $indices[] = trim(trim($fld), ", \n");
- break;
- }
- $fld = trim($fld);
+ // Fetch the table column structure from the database
+ $wpdb->suppress_errors();
+ $tablefields = $wpdb->get_results("DESCRIBE {$table};");
+ $wpdb->suppress_errors( false );
- // If it's a valid field, add it to the field array
- if ($validfield) {
- $cfields[strtolower($fieldname)] = trim($fld, ", \n");
- }
+ if ( ! $tablefields )
+ continue;
+
+ // 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", $qry, $match2);
+ $qryline = trim($match2[1]);
+
+ // Separate field lines into an array
+ $flds = explode("\n", $qryline);
+
+ //echo "<hr/><pre>\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."</pre><hr/>";
+
+ // For every field line specified in the query
+ foreach ($flds as $fld) {
+ // Extract the field name
+ preg_match("|^([^ ]*)|", trim($fld), $fvals);
+ $fieldname = trim( $fvals[1], '`' );
+
+ // Verify the found field name
+ $validfield = true;
+ switch (strtolower($fieldname)) {
+ case '':
+ case 'primary':
+ case 'index':
+ case 'fulltext':
+ case 'unique':
+ case 'key':
+ $validfield = false;
+ $indices[] = trim(trim($fld), ", \n");
+ break;
+ }
+ $fld = trim($fld);
+
+ // 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
+ foreach ($tablefields as $tablefield) {
+ // If the table field exists in the field array...
+ if (array_key_exists(strtolower($tablefield->Field), $cfields)) {
+ // Get the field type from the query
+ preg_match("|".$tablefield->Field." ([^ ]*( unsigned)?)|i", $cfields[strtolower($tablefield->Field)], $matches);
+ $fieldtype = $matches[1];
+
+ // Is actual field type different from the field type in query?
+ if ($tablefield->Type != $fieldtype) {
+ // Add a query to change the column type
+ $cqueries[] = "ALTER TABLE {$table} CHANGE COLUMN {$tablefield->Field} " . $cfields[strtolower($tablefield->Field)];
+ $for_update[$table.'.'.$tablefield->Field] = "Changed type of {$table}.{$tablefield->Field} from {$tablefield->Type} to {$fieldtype}";
}
- // Fetch the table column structure from the database
- $tablefields = $wpdb->get_results("DESCRIBE {$table};");
-
- // For every field in the table
- foreach ($tablefields as $tablefield) {
- // If the table field exists in the field array...
- if (array_key_exists(strtolower($tablefield->Field), $cfields)) {
- // Get the field type from the query
- preg_match("|".$tablefield->Field." ([^ ]*( unsigned)?)|i", $cfields[strtolower($tablefield->Field)], $matches);
- $fieldtype = $matches[1];
-
- // Is actual field type different from the field type in query?
- if ($tablefield->Type != $fieldtype) {
- // Add a query to change the column type
- $cqueries[] = "ALTER TABLE {$table} CHANGE COLUMN {$tablefield->Field} " . $cfields[strtolower($tablefield->Field)];
- $for_update[$table.'.'.$tablefield->Field] = "Changed type of {$table}.{$tablefield->Field} from {$tablefield->Type} to {$fieldtype}";
- }
-
- // Get the default value from the array
- //echo "{$cfields[strtolower($tablefield->Field)]}<br>";
- if (preg_match("| DEFAULT '(.*)'|i", $cfields[strtolower($tablefield->Field)], $matches)) {
- $default_value = $matches[1];
- if ($tablefield->Default != $default_value) {
- // Add a query to change the column's default value
- $cqueries[] = "ALTER TABLE {$table} ALTER COLUMN {$tablefield->Field} SET DEFAULT '{$default_value}'";
- $for_update[$table.'.'.$tablefield->Field] = "Changed default value of {$table}.{$tablefield->Field} from {$tablefield->Default} to {$default_value}";
- }
- }
-
- // 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?
+ // Get the default value from the array
+ //echo "{$cfields[strtolower($tablefield->Field)]}<br>";
+ if (preg_match("| DEFAULT '(.*)'|i", $cfields[strtolower($tablefield->Field)], $matches)) {
+ $default_value = $matches[1];
+ if ($tablefield->Default != $default_value) {
+ // Add a query to change the column's default value
+ $cqueries[] = "ALTER TABLE {$table} ALTER COLUMN {$tablefield->Field} SET DEFAULT '{$default_value}'";
+ $for_update[$table.'.'.$tablefield->Field] = "Changed default value of {$table}.{$tablefield->Field} from {$tablefield->Default} to {$default_value}";
}
}
- // 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
- $cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef";
- $for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname;
- }
+ // 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?
+ }
+ }
- // Index stuff goes here
- // Fetch the table index structure from the database
- $tableindices = $wpdb->get_results("SHOW INDEX FROM {$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
+ $cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef";
+ $for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname;
+ }
- if ($tableindices) {
- // Clear the index array
- unset($index_ary);
+ // Index stuff goes here
+ // Fetch the table index structure from the database
+ $tableindices = $wpdb->get_results("SHOW INDEX FROM {$table};");
- // 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;
- }
+ if ($tableindices) {
+ // Clear the index array
+ unset($index_ary);
+
+ // 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'].')';
- }
- }
- // 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 "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br />Found index:".$index_string."</pre>\n";
- }
- //else echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br /><b>Did not find index:</b>".$index_string."<br />".print_r($indices, true)."</pre>\n";
+ // 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 "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br />Found index:".$index_string."</pre>\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 "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br /><b>Did not find index:</b>".$index_string."<br />".print_r($indices, true)."</pre>\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);
*
* @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 "<ol>\n";
foreach($alterations as $alteration) echo "<li>$alteration</li>\n";
echo "</ol>\n";
*
* @since 1.5.0
*/
-function make_db_current_silent() {
- global $wp_queries;
-
- $alterations = dbDelta($wp_queries);
+function make_db_current_silent( $tables = 'all' ) {
+ $alterations = dbDelta( $tables );
}
/**
return false;
// Copy files from the old locations to the site theme.
- // TODO: This does not copy arbitarary include dependencies. Only the
+ // 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');
if (file_exists(ABSPATH . 'wp-layout.css')) {
if (! make_site_theme_from_oldschool($theme_name, $template)) {
- // TODO: rm -rf the site theme directory.
+ // TODO: rm -rf the site theme directory.
return false;
}
} else {
if (! make_site_theme_from_default($theme_name, $template))
- // TODO: rm -rf the site theme directory.
+ // TODO: rm -rf the site theme directory.
return false;
}
// Upgrade versions prior to 2.9
if ( $wp_current_db_version < 11557 ) {
- // Delete duplicate options. Keep the option with the highest option_id.
+ // Delete duplicate options. Keep the option with the highest option_id.
$wpdb->query("DELETE o1 FROM $wpdb->options AS o1 JOIN $wpdb->options AS o2 USING (`option_name`) WHERE o2.option_id > o1.option_id");
// Drop the old primary key and add the new.
}
-/**
- * Install Network.
- *
- * @since 3.0.0
- *
- */
-if ( !function_exists( 'install_network' ) ) :
-function install_network() {
- global $wpdb, $charset_collate;
- $ms_queries = "
-CREATE TABLE $wpdb->users (
- ID bigint(20) unsigned NOT NULL auto_increment,
- user_login varchar(60) NOT NULL default '',
- user_pass varchar(64) NOT NULL default '',
- user_nicename varchar(50) NOT NULL default '',
- user_email varchar(100) NOT NULL default '',
- user_url varchar(100) NOT NULL default '',
- user_registered datetime NOT NULL default '0000-00-00 00:00:00',
- user_activation_key varchar(60) NOT NULL default '',
- user_status int(11) NOT NULL default '0',
- display_name varchar(250) NOT NULL default '',
- spam tinyint(2) NOT NULL default '0',
- deleted tinyint(2) NOT NULL default '0',
- PRIMARY KEY (ID),
- KEY user_login_key (user_login),
- KEY user_nicename (user_nicename)
-) $charset_collate;
-CREATE TABLE $wpdb->blogs (
- blog_id bigint(20) NOT NULL auto_increment,
- site_id bigint(20) NOT NULL default '0',
- domain varchar(200) NOT NULL default '',
- path varchar(100) NOT NULL default '',
- registered datetime NOT NULL default '0000-00-00 00:00:00',
- last_updated datetime NOT NULL default '0000-00-00 00:00:00',
- public tinyint(2) NOT NULL default '1',
- archived enum('0','1') NOT NULL default '0',
- mature tinyint(2) NOT NULL default '0',
- spam tinyint(2) NOT NULL default '0',
- deleted tinyint(2) NOT NULL default '0',
- lang_id int(11) NOT NULL default '0',
- PRIMARY KEY (blog_id),
- KEY domain (domain(50),path(5)),
- KEY lang_id (lang_id)
-) $charset_collate;
-CREATE TABLE $wpdb->blog_versions (
- blog_id bigint(20) NOT NULL default '0',
- db_version varchar(20) NOT NULL default '',
- last_updated datetime NOT NULL default '0000-00-00 00:00:00',
- PRIMARY KEY (blog_id),
- KEY db_version (db_version)
-) $charset_collate;
-CREATE TABLE $wpdb->registration_log (
- ID bigint(20) NOT NULL auto_increment,
- email varchar(255) NOT NULL default '',
- IP varchar(30) NOT NULL default '',
- blog_id bigint(20) NOT NULL default '0',
- date_registered datetime NOT NULL default '0000-00-00 00:00:00',
- PRIMARY KEY (ID),
- KEY IP (IP)
-) $charset_collate;
-CREATE TABLE $wpdb->site (
- id bigint(20) NOT NULL auto_increment,
- domain varchar(200) NOT NULL default '',
- path varchar(100) NOT NULL default '',
- PRIMARY KEY (id),
- KEY domain (domain,path)
-) $charset_collate;
-CREATE TABLE $wpdb->sitemeta (
- meta_id bigint(20) NOT NULL auto_increment,
- site_id bigint(20) NOT NULL default '0',
- meta_key varchar(255) default NULL,
- meta_value longtext,
- PRIMARY KEY (meta_id),
- KEY meta_key (meta_key),
- KEY site_id (site_id)
-) $charset_collate;
-CREATE TABLE $wpdb->signups (
- domain varchar(200) NOT NULL default '',
- path varchar(100) NOT NULL default '',
- title longtext NOT NULL,
- user_login varchar(60) NOT NULL default '',
- user_email varchar(100) NOT NULL default '',
- registered datetime NOT NULL default '0000-00-00 00:00:00',
- activated datetime NOT NULL default '0000-00-00 00:00:00',
- active tinyint(1) NOT NULL default '0',
- activation_key varchar(50) NOT NULL default '',
- meta longtext,
- KEY activation_key (activation_key),
- KEY domain (domain)
-) $charset_collate;
-";
-// now create tables
- dbDelta( $ms_queries );
-}
-endif;
-
/**
* Install global terms.
*
dbDelta( $ms_queries );
}
endif;
-?>