web/wp-admin/includes/upgrade.php
author ymh <ymh.work@gmail.com>
Mon, 22 Mar 2010 16:36:28 +0100
changeset 5 ac511f1ccc8e
parent 1 0d28b7c10758
permissions -rw-r--r--
add hgignore
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
0d28b7c10758 First commit
ymh
parents:
diff changeset
     1
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
     2
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
     3
 * WordPress Upgrade API
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
 * Most of the functions are pluggable and can be overwritten
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
 * @package WordPress
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
 * @subpackage Administration
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
/** Include user install customize script. */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
if ( file_exists(WP_CONTENT_DIR . '/install.php') )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
	require (WP_CONTENT_DIR . '/install.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
/** WordPress Administration API */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
require_once(ABSPATH . 'wp-admin/includes/admin.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
/** WordPress Schema API */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
require_once(ABSPATH . 'wp-admin/includes/schema.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
if ( !function_exists('wp_install') ) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
 * Installs the blog
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
 * @param string $blog_title Blog title.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
 * @param string $user_name User's username.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
 * @param string $user_email User's email.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
 * @param bool $public Whether blog is public.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
 * @param null $deprecated Optional. Not used.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
 * @return array Array keys 'url', 'user_id', 'password', 'password_message'.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
function wp_install($blog_title, $user_name, $user_email, $public, $deprecated='') {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
	global $wp_rewrite;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
	wp_check_mysql_version();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
	wp_cache_flush();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
	make_db_current_silent();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
	populate_options();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
	populate_roles();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
	update_option('blogname', $blog_title);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
	update_option('admin_email', $user_email);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
	update_option('blog_public', $public);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
	$guessurl = wp_guess_url();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
	update_option('siteurl', $guessurl);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
	// If not a public blog, don't ping.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
	if ( ! $public )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
		update_option('default_pingback_flag', 0);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
	// Create default user.  If the user already exists, the user tables are
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
	// being shared among blogs.  Just set the role in that case.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
	$user_id = username_exists($user_name);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
	if ( !$user_id ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
		$random_password = wp_generate_password();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
		$message = __('<strong><em>Note that password</em></strong> carefully! It is a <em>random</em> password that was generated just for you.');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
		$user_id = wp_create_user($user_name, $random_password, $user_email);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
		update_usermeta($user_id, 'default_password_nag', true);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
	} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
		$random_password = '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
		$message =  __('User already exists.  Password inherited.');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
	$user = new WP_User($user_id);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
	$user->set_role('administrator');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
	wp_install_defaults($user_id);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
	$wp_rewrite->flush_rules();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
	wp_new_blog_notification($blog_title, $guessurl, $user_id, $random_password);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
	wp_cache_flush();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
	return array('url' => $guessurl, 'user_id' => $user_id, 'password' => $random_password, 'password_message' => $message);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
if ( !function_exists('wp_install_defaults') ) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
 * @param int $user_id User ID.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
function wp_install_defaults($user_id) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
	// Default category
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
	$cat_name = __('Uncategorized');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
	/* translators: Default category slug */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   101
	$cat_slug = sanitize_title(_x('Uncategorized', 'Default category slug'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   102
0d28b7c10758 First commit
ymh
parents:
diff changeset
   103
	$wpdb->insert( $wpdb->terms, array('name' => $cat_name, 'slug' => $cat_slug, 'term_group' => 0) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   104
	$wpdb->insert( $wpdb->term_taxonomy, array('term_id' => '1', 'taxonomy' => 'category', 'description' => '', 'parent' => 0, 'count' => 1));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   105
0d28b7c10758 First commit
ymh
parents:
diff changeset
   106
	// Default link category
0d28b7c10758 First commit
ymh
parents:
diff changeset
   107
	$cat_name = __('Blogroll');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   108
	/* translators: Default link category slug */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   109
	$cat_slug = sanitize_title(_x('Blogroll', 'Default link category slug'));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   110
0d28b7c10758 First commit
ymh
parents:
diff changeset
   111
	$wpdb->insert( $wpdb->terms, array('name' => $cat_name, 'slug' => $cat_slug, 'term_group' => 0) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   112
	$wpdb->insert( $wpdb->term_taxonomy, array('term_id' => '2', 'taxonomy' => 'link_category', 'description' => '', 'parent' => 0, 'count' => 7));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   113
0d28b7c10758 First commit
ymh
parents:
diff changeset
   114
	// Now drop in some default links
0d28b7c10758 First commit
ymh
parents:
diff changeset
   115
	$default_links = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   116
	$default_links[] = array(	'link_url' => 'http://codex.wordpress.org/',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   117
								'link_name' => 'Documentation',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   118
								'link_rss' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   119
								'link_notes' => '');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   120
0d28b7c10758 First commit
ymh
parents:
diff changeset
   121
	$default_links[] = array(	'link_url' => 'http://wordpress.org/development/',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   122
								'link_name' => 'Development Blog',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   123
								'link_rss' => 'http://wordpress.org/development/feed/',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   124
								'link_notes' => '');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   125
0d28b7c10758 First commit
ymh
parents:
diff changeset
   126
	$default_links[] = array(	'link_url' => 'http://wordpress.org/extend/ideas/',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   127
								'link_name' => 'Suggest Ideas',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   128
								'link_rss' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   129
								'link_notes' =>'');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   130
0d28b7c10758 First commit
ymh
parents:
diff changeset
   131
	$default_links[] = array(	'link_url' => 'http://wordpress.org/support/',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   132
								'link_name' => 'Support Forum',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   133
								'link_rss' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   134
								'link_notes' =>'');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   135
0d28b7c10758 First commit
ymh
parents:
diff changeset
   136
	$default_links[] = array(	'link_url' => 'http://wordpress.org/extend/plugins/',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   137
								'link_name' => 'Plugins',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   138
								'link_rss' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   139
								'link_notes' =>'');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   140
0d28b7c10758 First commit
ymh
parents:
diff changeset
   141
	$default_links[] = array(	'link_url' => 'http://wordpress.org/extend/themes/',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   142
								'link_name' => 'Themes',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   143
								'link_rss' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   144
								'link_notes' =>'');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   145
0d28b7c10758 First commit
ymh
parents:
diff changeset
   146
	$default_links[] = array(	'link_url' => 'http://planet.wordpress.org/',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   147
								'link_name' => 'WordPress Planet',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   148
								'link_rss' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   149
								'link_notes' =>'');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   150
0d28b7c10758 First commit
ymh
parents:
diff changeset
   151
	foreach ( $default_links as $link ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   152
		$wpdb->insert( $wpdb->links, $link);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   153
		$wpdb->insert( $wpdb->term_relationships, array('term_taxonomy_id' => 2, 'object_id' => $wpdb->insert_id) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   154
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   155
0d28b7c10758 First commit
ymh
parents:
diff changeset
   156
	// First post
0d28b7c10758 First commit
ymh
parents:
diff changeset
   157
	$now = date('Y-m-d H:i:s');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   158
	$now_gmt = gmdate('Y-m-d H:i:s');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   159
	$first_post_guid = get_option('home') . '/?p=1';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   160
0d28b7c10758 First commit
ymh
parents:
diff changeset
   161
	$wpdb->insert( $wpdb->posts, array(
0d28b7c10758 First commit
ymh
parents:
diff changeset
   162
								'post_author' => $user_id,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   163
								'post_date' => $now,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   164
								'post_date_gmt' => $now_gmt,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   165
								'post_content' => __('Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
   166
								'post_excerpt' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   167
								'post_title' => __('Hello world!'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
   168
								/* translators: Default post slug */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   169
								'post_name' => _x('hello-world', 'Default post slug'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
   170
								'post_modified' => $now,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   171
								'post_modified_gmt' => $now_gmt,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   172
								'guid' => $first_post_guid,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   173
								'comment_count' => 1,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   174
								'to_ping' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   175
								'pinged' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   176
								'post_content_filtered' => ''
0d28b7c10758 First commit
ymh
parents:
diff changeset
   177
								));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   178
	$wpdb->insert( $wpdb->term_relationships, array('term_taxonomy_id' => 1, 'object_id' => 1) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   179
0d28b7c10758 First commit
ymh
parents:
diff changeset
   180
	// Default comment
0d28b7c10758 First commit
ymh
parents:
diff changeset
   181
	$wpdb->insert( $wpdb->comments, array(
0d28b7c10758 First commit
ymh
parents:
diff changeset
   182
								'comment_post_ID' => 1,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   183
								'comment_author' => __('Mr WordPress'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
   184
								'comment_author_email' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   185
								'comment_author_url' => 'http://wordpress.org/',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   186
								'comment_date' => $now,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   187
								'comment_date_gmt' => $now_gmt,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   188
								'comment_content' => __('Hi, this is a comment.<br />To delete a comment, just log in and view the post&#039;s comments. There you will have the option to edit or delete them.')
0d28b7c10758 First commit
ymh
parents:
diff changeset
   189
								));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   190
	// First Page
0d28b7c10758 First commit
ymh
parents:
diff changeset
   191
	$first_post_guid = get_option('home') . '/?page_id=2';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   192
	$wpdb->insert( $wpdb->posts, array(
0d28b7c10758 First commit
ymh
parents:
diff changeset
   193
								'post_author' => $user_id,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   194
								'post_date' => $now,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   195
								'post_date_gmt' => $now_gmt,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   196
								'post_content' => __('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.'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
   197
								'post_excerpt' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   198
								'post_title' => __('About'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
   199
								/* translators: Default page slug */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   200
								'post_name' => _x('about', 'Default page slug'),
0d28b7c10758 First commit
ymh
parents:
diff changeset
   201
								'post_modified' => $now,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   202
								'post_modified_gmt' => $now_gmt,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   203
								'guid' => $first_post_guid,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   204
								'post_type' => 'page',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   205
								'to_ping' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   206
								'pinged' => '',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   207
								'post_content_filtered' => ''
0d28b7c10758 First commit
ymh
parents:
diff changeset
   208
								));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   209
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   210
endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   211
0d28b7c10758 First commit
ymh
parents:
diff changeset
   212
if ( !function_exists('wp_new_blog_notification') ) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   213
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   214
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   215
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   216
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   217
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   218
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
   219
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   220
 * @param string $blog_title Blog title.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   221
 * @param string $blog_url Blog url.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   222
 * @param int $user_id User ID.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   223
 * @param string $password User's Password.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   224
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   225
function wp_new_blog_notification($blog_title, $blog_url, $user_id, $password) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   226
	$user = new WP_User($user_id);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   227
	$email = $user->user_email;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   228
	$name = $user->user_login;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   229
	$message = sprintf(__("Your new WordPress blog has been successfully set up at:
0d28b7c10758 First commit
ymh
parents:
diff changeset
   230
0d28b7c10758 First commit
ymh
parents:
diff changeset
   231
%1\$s
0d28b7c10758 First commit
ymh
parents:
diff changeset
   232
0d28b7c10758 First commit
ymh
parents:
diff changeset
   233
You can log in to the administrator account with the following information:
0d28b7c10758 First commit
ymh
parents:
diff changeset
   234
0d28b7c10758 First commit
ymh
parents:
diff changeset
   235
Username: %2\$s
0d28b7c10758 First commit
ymh
parents:
diff changeset
   236
Password: %3\$s
0d28b7c10758 First commit
ymh
parents:
diff changeset
   237
0d28b7c10758 First commit
ymh
parents:
diff changeset
   238
We hope you enjoy your new blog. Thanks!
0d28b7c10758 First commit
ymh
parents:
diff changeset
   239
0d28b7c10758 First commit
ymh
parents:
diff changeset
   240
--The WordPress Team
0d28b7c10758 First commit
ymh
parents:
diff changeset
   241
http://wordpress.org/
0d28b7c10758 First commit
ymh
parents:
diff changeset
   242
"), $blog_url, $name, $password);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   243
0d28b7c10758 First commit
ymh
parents:
diff changeset
   244
	@wp_mail($email, __('New WordPress Blog'), $message);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   245
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   246
endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   247
0d28b7c10758 First commit
ymh
parents:
diff changeset
   248
if ( !function_exists('wp_upgrade') ) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   249
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   250
 * Run WordPress Upgrade functions.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   251
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   252
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   253
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   254
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
   255
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   256
 * @return null
0d28b7c10758 First commit
ymh
parents:
diff changeset
   257
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   258
function wp_upgrade() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   259
	global $wp_current_db_version, $wp_db_version;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   260
0d28b7c10758 First commit
ymh
parents:
diff changeset
   261
	$wp_current_db_version = __get_option('db_version');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   262
0d28b7c10758 First commit
ymh
parents:
diff changeset
   263
	// We are up-to-date.  Nothing to do.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   264
	if ( $wp_db_version == $wp_current_db_version )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   265
		return;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   266
0d28b7c10758 First commit
ymh
parents:
diff changeset
   267
	if( ! is_blog_installed() )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   268
		return;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   269
0d28b7c10758 First commit
ymh
parents:
diff changeset
   270
	wp_check_mysql_version();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   271
	wp_cache_flush();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   272
	pre_schema_upgrade();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   273
	make_db_current_silent();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   274
	upgrade_all();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   275
	wp_cache_flush();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   276
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   277
endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   278
0d28b7c10758 First commit
ymh
parents:
diff changeset
   279
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   280
 * Functions to be called in install and upgrade scripts.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   281
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   282
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   283
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   284
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
   285
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   286
function upgrade_all() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   287
	global $wp_current_db_version, $wp_db_version, $wp_rewrite;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   288
	$wp_current_db_version = __get_option('db_version');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   289
0d28b7c10758 First commit
ymh
parents:
diff changeset
   290
	// We are up-to-date.  Nothing to do.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   291
	if ( $wp_db_version == $wp_current_db_version )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   292
		return;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   293
0d28b7c10758 First commit
ymh
parents:
diff changeset
   294
	// If the version is not set in the DB, try to guess the version.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   295
	if ( empty($wp_current_db_version) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   296
		$wp_current_db_version = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   297
0d28b7c10758 First commit
ymh
parents:
diff changeset
   298
		// If the template option exists, we have 1.5.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   299
		$template = __get_option('template');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   300
		if ( !empty($template) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   301
			$wp_current_db_version = 2541;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   302
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   303
0d28b7c10758 First commit
ymh
parents:
diff changeset
   304
	if ( $wp_current_db_version < 6039 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   305
		upgrade_230_options_table();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   306
0d28b7c10758 First commit
ymh
parents:
diff changeset
   307
	populate_options();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   308
0d28b7c10758 First commit
ymh
parents:
diff changeset
   309
	if ( $wp_current_db_version < 2541 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   310
		upgrade_100();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   311
		upgrade_101();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   312
		upgrade_110();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   313
		upgrade_130();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   314
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   315
0d28b7c10758 First commit
ymh
parents:
diff changeset
   316
	if ( $wp_current_db_version < 3308 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   317
		upgrade_160();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   318
0d28b7c10758 First commit
ymh
parents:
diff changeset
   319
	if ( $wp_current_db_version < 4772 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   320
		upgrade_210();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   321
0d28b7c10758 First commit
ymh
parents:
diff changeset
   322
	if ( $wp_current_db_version < 4351 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   323
		upgrade_old_slugs();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   324
0d28b7c10758 First commit
ymh
parents:
diff changeset
   325
	if ( $wp_current_db_version < 5539 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   326
		upgrade_230();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   327
0d28b7c10758 First commit
ymh
parents:
diff changeset
   328
	if ( $wp_current_db_version < 6124 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   329
		upgrade_230_old_tables();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   330
0d28b7c10758 First commit
ymh
parents:
diff changeset
   331
	if ( $wp_current_db_version < 7499 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   332
		upgrade_250();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   333
0d28b7c10758 First commit
ymh
parents:
diff changeset
   334
	if ( $wp_current_db_version < 7796 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   335
		upgrade_251();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   336
0d28b7c10758 First commit
ymh
parents:
diff changeset
   337
	if ( $wp_current_db_version < 7935 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   338
		upgrade_252();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   339
0d28b7c10758 First commit
ymh
parents:
diff changeset
   340
	if ( $wp_current_db_version < 8201 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   341
		upgrade_260();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   342
0d28b7c10758 First commit
ymh
parents:
diff changeset
   343
	if ( $wp_current_db_version < 8989 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   344
		upgrade_270();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   345
0d28b7c10758 First commit
ymh
parents:
diff changeset
   346
	if ( $wp_current_db_version < 10360 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   347
		upgrade_280();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   348
0d28b7c10758 First commit
ymh
parents:
diff changeset
   349
	if ( $wp_current_db_version < 11958 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   350
		upgrade_290();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   351
0d28b7c10758 First commit
ymh
parents:
diff changeset
   352
	maybe_disable_automattic_widgets();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   353
0d28b7c10758 First commit
ymh
parents:
diff changeset
   354
	update_option( 'db_version', $wp_db_version );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   355
	update_option( 'db_upgraded', true );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   356
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   357
0d28b7c10758 First commit
ymh
parents:
diff changeset
   358
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   359
 * Execute changes made in WordPress 1.0.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   360
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   361
 * @since 1.0.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   362
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   363
function upgrade_100() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   364
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   365
0d28b7c10758 First commit
ymh
parents:
diff changeset
   366
	// Get the title and ID of every post, post_name to check if it already has a value
0d28b7c10758 First commit
ymh
parents:
diff changeset
   367
	$posts = $wpdb->get_results("SELECT ID, post_title, post_name FROM $wpdb->posts WHERE post_name = ''");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   368
	if ($posts) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   369
		foreach($posts as $post) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   370
			if ('' == $post->post_name) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   371
				$newtitle = sanitize_title($post->post_title);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   372
				$wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_name = %s WHERE ID = %d", $newtitle, $post->ID) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   373
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   374
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   375
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   376
0d28b7c10758 First commit
ymh
parents:
diff changeset
   377
	$categories = $wpdb->get_results("SELECT cat_ID, cat_name, category_nicename FROM $wpdb->categories");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   378
	foreach ($categories as $category) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   379
		if ('' == $category->category_nicename) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   380
			$newtitle = sanitize_title($category->cat_name);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   381
			$wpdb>update( $wpdb->categories, array('category_nicename' => $newtitle), array('cat_ID' => $category->cat_ID) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   382
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   383
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   384
0d28b7c10758 First commit
ymh
parents:
diff changeset
   385
	$wpdb->query("UPDATE $wpdb->options SET option_value = REPLACE(option_value, 'wp-links/links-images/', 'wp-images/links/')
0d28b7c10758 First commit
ymh
parents:
diff changeset
   386
	WHERE option_name LIKE 'links_rating_image%'
0d28b7c10758 First commit
ymh
parents:
diff changeset
   387
	AND option_value LIKE 'wp-links/links-images/%'");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   388
0d28b7c10758 First commit
ymh
parents:
diff changeset
   389
	$done_ids = $wpdb->get_results("SELECT DISTINCT post_id FROM $wpdb->post2cat");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   390
	if ($done_ids) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   391
		foreach ($done_ids as $done_id) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   392
			$done_posts[] = $done_id->post_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   393
		endforeach;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   394
		$catwhere = ' AND ID NOT IN (' . implode(',', $done_posts) . ')';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   395
	else:
0d28b7c10758 First commit
ymh
parents:
diff changeset
   396
		$catwhere = '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   397
	endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   398
0d28b7c10758 First commit
ymh
parents:
diff changeset
   399
	$allposts = $wpdb->get_results("SELECT ID, post_category FROM $wpdb->posts WHERE post_category != '0' $catwhere");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   400
	if ($allposts) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   401
		foreach ($allposts as $post) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   402
			// Check to see if it's already been imported
0d28b7c10758 First commit
ymh
parents:
diff changeset
   403
			$cat = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->post2cat WHERE post_id = %d AND category_id = %d", $post->ID, $post->post_category) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   404
			if (!$cat && 0 != $post->post_category) { // If there's no result
0d28b7c10758 First commit
ymh
parents:
diff changeset
   405
				$wpdb->insert( $wpdb->post2cat, array('post_id' => $post->ID, 'category_id' => $post->post_category) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   406
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   407
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   408
	endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   409
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   410
0d28b7c10758 First commit
ymh
parents:
diff changeset
   411
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   412
 * Execute changes made in WordPress 1.0.1.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   413
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   414
 * @since 1.0.1
0d28b7c10758 First commit
ymh
parents:
diff changeset
   415
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   416
function upgrade_101() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   417
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   418
0d28b7c10758 First commit
ymh
parents:
diff changeset
   419
	// Clean up indices, add a few
0d28b7c10758 First commit
ymh
parents:
diff changeset
   420
	add_clean_index($wpdb->posts, 'post_name');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   421
	add_clean_index($wpdb->posts, 'post_status');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   422
	add_clean_index($wpdb->categories, 'category_nicename');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   423
	add_clean_index($wpdb->comments, 'comment_approved');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   424
	add_clean_index($wpdb->comments, 'comment_post_ID');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   425
	add_clean_index($wpdb->links , 'link_category');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   426
	add_clean_index($wpdb->links , 'link_visible');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   427
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   428
0d28b7c10758 First commit
ymh
parents:
diff changeset
   429
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   430
 * Execute changes made in WordPress 1.2.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   431
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   432
 * @since 1.2.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   433
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   434
function upgrade_110() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   435
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   436
0d28b7c10758 First commit
ymh
parents:
diff changeset
   437
	// Set user_nicename.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   438
	$users = $wpdb->get_results("SELECT ID, user_nickname, user_nicename FROM $wpdb->users");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   439
	foreach ($users as $user) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   440
		if ('' == $user->user_nicename) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   441
			$newname = sanitize_title($user->user_nickname);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   442
			$wpdb->update( $wpdb->users, array('user_nicename' => $newname), array('ID' => $user->ID) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   443
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   444
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   445
0d28b7c10758 First commit
ymh
parents:
diff changeset
   446
	$users = $wpdb->get_results("SELECT ID, user_pass from $wpdb->users");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   447
	foreach ($users as $row) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   448
		if (!preg_match('/^[A-Fa-f0-9]{32}$/', $row->user_pass)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   449
			$wpdb->update( $wpdb->users, array('user_pass' => md5($row->user_pass)), array('ID' => $row->ID) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   450
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   451
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   452
0d28b7c10758 First commit
ymh
parents:
diff changeset
   453
	// Get the GMT offset, we'll use that later on
0d28b7c10758 First commit
ymh
parents:
diff changeset
   454
	$all_options = get_alloptions_110();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   455
0d28b7c10758 First commit
ymh
parents:
diff changeset
   456
	$time_difference = $all_options->time_difference;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   457
0d28b7c10758 First commit
ymh
parents:
diff changeset
   458
	$server_time = time()+date('Z');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   459
	$weblogger_time = $server_time + $time_difference*3600;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   460
	$gmt_time = time();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   461
0d28b7c10758 First commit
ymh
parents:
diff changeset
   462
	$diff_gmt_server = ($gmt_time - $server_time) / 3600;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   463
	$diff_weblogger_server = ($weblogger_time - $server_time) / 3600;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   464
	$diff_gmt_weblogger = $diff_gmt_server - $diff_weblogger_server;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   465
	$gmt_offset = -$diff_gmt_weblogger;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   466
0d28b7c10758 First commit
ymh
parents:
diff changeset
   467
	// Add a gmt_offset option, with value $gmt_offset
0d28b7c10758 First commit
ymh
parents:
diff changeset
   468
	add_option('gmt_offset', $gmt_offset);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   469
0d28b7c10758 First commit
ymh
parents:
diff changeset
   470
	// Check if we already set the GMT fields (if we did, then
0d28b7c10758 First commit
ymh
parents:
diff changeset
   471
	// MAX(post_date_gmt) can't be '0000-00-00 00:00:00'
0d28b7c10758 First commit
ymh
parents:
diff changeset
   472
	// <michel_v> I just slapped myself silly for not thinking about it earlier
0d28b7c10758 First commit
ymh
parents:
diff changeset
   473
	$got_gmt_fields = ($wpdb->get_var("SELECT MAX(post_date_gmt) FROM $wpdb->posts") == '0000-00-00 00:00:00') ? false : true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   474
0d28b7c10758 First commit
ymh
parents:
diff changeset
   475
	if (!$got_gmt_fields) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   476
0d28b7c10758 First commit
ymh
parents:
diff changeset
   477
		// Add or substract time to all dates, to get GMT dates
0d28b7c10758 First commit
ymh
parents:
diff changeset
   478
		$add_hours = intval($diff_gmt_weblogger);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   479
		$add_minutes = intval(60 * ($diff_gmt_weblogger - $add_hours));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   480
		$wpdb->query("UPDATE $wpdb->posts SET post_date_gmt = DATE_ADD(post_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   481
		$wpdb->query("UPDATE $wpdb->posts SET post_modified = post_date");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   482
		$wpdb->query("UPDATE $wpdb->posts SET post_modified_gmt = DATE_ADD(post_modified, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE) WHERE post_modified != '0000-00-00 00:00:00'");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   483
		$wpdb->query("UPDATE $wpdb->comments SET comment_date_gmt = DATE_ADD(comment_date, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   484
		$wpdb->query("UPDATE $wpdb->users SET user_registered = DATE_ADD(user_registered, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   485
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   486
0d28b7c10758 First commit
ymh
parents:
diff changeset
   487
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   488
0d28b7c10758 First commit
ymh
parents:
diff changeset
   489
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   490
 * Execute changes made in WordPress 1.5.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   491
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   492
 * @since 1.5.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   493
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   494
function upgrade_130() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   495
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   496
0d28b7c10758 First commit
ymh
parents:
diff changeset
   497
	// Remove extraneous backslashes.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   498
	$posts = $wpdb->get_results("SELECT ID, post_title, post_content, post_excerpt, guid, post_date, post_name, post_status, post_author FROM $wpdb->posts");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   499
	if ($posts) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   500
		foreach($posts as $post) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   501
			$post_content = addslashes(deslash($post->post_content));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   502
			$post_title = addslashes(deslash($post->post_title));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   503
			$post_excerpt = addslashes(deslash($post->post_excerpt));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   504
			if ( empty($post->guid) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   505
				$guid = get_permalink($post->ID);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   506
			else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   507
				$guid = $post->guid;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   508
0d28b7c10758 First commit
ymh
parents:
diff changeset
   509
			$wpdb->update( $wpdb->posts, compact('post_title', 'post_content', 'post_excerpt', 'guid'), array('ID' => $post->ID) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   510
0d28b7c10758 First commit
ymh
parents:
diff changeset
   511
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   512
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   513
0d28b7c10758 First commit
ymh
parents:
diff changeset
   514
	// Remove extraneous backslashes.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   515
	$comments = $wpdb->get_results("SELECT comment_ID, comment_author, comment_content FROM $wpdb->comments");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   516
	if ($comments) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   517
		foreach($comments as $comment) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   518
			$comment_content = deslash($comment->comment_content);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   519
			$comment_author = deslash($comment->comment_author);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   520
0d28b7c10758 First commit
ymh
parents:
diff changeset
   521
			$wpdb->update($wpdb->comments, compact('comment_content', 'comment_author'), array('comment_ID' => $comment->comment_ID) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   522
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   523
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   524
0d28b7c10758 First commit
ymh
parents:
diff changeset
   525
	// Remove extraneous backslashes.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   526
	$links = $wpdb->get_results("SELECT link_id, link_name, link_description FROM $wpdb->links");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   527
	if ($links) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   528
		foreach($links as $link) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   529
			$link_name = deslash($link->link_name);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   530
			$link_description = deslash($link->link_description);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   531
0d28b7c10758 First commit
ymh
parents:
diff changeset
   532
			$wpdb->update( $wpdb->links, compact('link_name', 'link_description'), array('link_id' => $link->link_id) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   533
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   534
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   535
0d28b7c10758 First commit
ymh
parents:
diff changeset
   536
	$active_plugins = __get_option('active_plugins');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   537
0d28b7c10758 First commit
ymh
parents:
diff changeset
   538
	// If plugins are not stored in an array, they're stored in the old
0d28b7c10758 First commit
ymh
parents:
diff changeset
   539
	// newline separated format.  Convert to new format.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   540
	if ( !is_array( $active_plugins ) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   541
		$active_plugins = explode("\n", trim($active_plugins));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   542
		update_option('active_plugins', $active_plugins);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   543
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   544
0d28b7c10758 First commit
ymh
parents:
diff changeset
   545
	// Obsolete tables
0d28b7c10758 First commit
ymh
parents:
diff changeset
   546
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optionvalues');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   547
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optiontypes');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   548
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optiongroups');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   549
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'optiongroup_options');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   550
0d28b7c10758 First commit
ymh
parents:
diff changeset
   551
	// Update comments table to use comment_type
0d28b7c10758 First commit
ymh
parents:
diff changeset
   552
	$wpdb->query("UPDATE $wpdb->comments SET comment_type='trackback', comment_content = REPLACE(comment_content, '<trackback />', '') WHERE comment_content LIKE '<trackback />%'");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   553
	$wpdb->query("UPDATE $wpdb->comments SET comment_type='pingback', comment_content = REPLACE(comment_content, '<pingback />', '') WHERE comment_content LIKE '<pingback />%'");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   554
0d28b7c10758 First commit
ymh
parents:
diff changeset
   555
	// Some versions have multiple duplicate option_name rows with the same values
0d28b7c10758 First commit
ymh
parents:
diff changeset
   556
	$options = $wpdb->get_results("SELECT option_name, COUNT(option_name) AS dupes FROM `$wpdb->options` GROUP BY option_name");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   557
	foreach ( $options as $option ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   558
		if ( 1 != $option->dupes ) { // Could this be done in the query?
0d28b7c10758 First commit
ymh
parents:
diff changeset
   559
			$limit = $option->dupes - 1;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   560
			$dupe_ids = $wpdb->get_col( $wpdb->prepare("SELECT option_id FROM $wpdb->options WHERE option_name = %s LIMIT %d", $option->option_name, $limit) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   561
			if ( $dupe_ids ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   562
				$dupe_ids = join($dupe_ids, ',');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   563
				$wpdb->query("DELETE FROM $wpdb->options WHERE option_id IN ($dupe_ids)");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   564
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   565
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   566
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   567
0d28b7c10758 First commit
ymh
parents:
diff changeset
   568
	make_site_theme();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   569
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   570
0d28b7c10758 First commit
ymh
parents:
diff changeset
   571
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   572
 * Execute changes made in WordPress 2.0.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   573
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   574
 * @since 2.0.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   575
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   576
function upgrade_160() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   577
	global $wpdb, $wp_current_db_version;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   578
0d28b7c10758 First commit
ymh
parents:
diff changeset
   579
	populate_roles_160();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   580
0d28b7c10758 First commit
ymh
parents:
diff changeset
   581
	$users = $wpdb->get_results("SELECT * FROM $wpdb->users");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   582
	foreach ( $users as $user ) :
0d28b7c10758 First commit
ymh
parents:
diff changeset
   583
		if ( !empty( $user->user_firstname ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   584
			update_usermeta( $user->ID, 'first_name', $wpdb->escape($user->user_firstname) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   585
		if ( !empty( $user->user_lastname ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   586
			update_usermeta( $user->ID, 'last_name', $wpdb->escape($user->user_lastname) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   587
		if ( !empty( $user->user_nickname ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   588
			update_usermeta( $user->ID, 'nickname', $wpdb->escape($user->user_nickname) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   589
		if ( !empty( $user->user_level ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   590
			update_usermeta( $user->ID, $wpdb->prefix . 'user_level', $user->user_level );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   591
		if ( !empty( $user->user_icq ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   592
			update_usermeta( $user->ID, 'icq', $wpdb->escape($user->user_icq) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   593
		if ( !empty( $user->user_aim ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   594
			update_usermeta( $user->ID, 'aim', $wpdb->escape($user->user_aim) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   595
		if ( !empty( $user->user_msn ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   596
			update_usermeta( $user->ID, 'msn', $wpdb->escape($user->user_msn) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   597
		if ( !empty( $user->user_yim ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   598
			update_usermeta( $user->ID, 'yim', $wpdb->escape($user->user_icq) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   599
		if ( !empty( $user->user_description ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   600
			update_usermeta( $user->ID, 'description', $wpdb->escape($user->user_description) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   601
0d28b7c10758 First commit
ymh
parents:
diff changeset
   602
		if ( isset( $user->user_idmode ) ):
0d28b7c10758 First commit
ymh
parents:
diff changeset
   603
			$idmode = $user->user_idmode;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   604
			if ($idmode == 'nickname') $id = $user->user_nickname;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   605
			if ($idmode == 'login') $id = $user->user_login;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   606
			if ($idmode == 'firstname') $id = $user->user_firstname;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   607
			if ($idmode == 'lastname') $id = $user->user_lastname;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   608
			if ($idmode == 'namefl') $id = $user->user_firstname.' '.$user->user_lastname;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   609
			if ($idmode == 'namelf') $id = $user->user_lastname.' '.$user->user_firstname;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   610
			if (!$idmode) $id = $user->user_nickname;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   611
			$wpdb->update( $wpdb->users, array('display_name' => $id), array('ID' => $user->ID) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   612
		endif;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   613
0d28b7c10758 First commit
ymh
parents:
diff changeset
   614
		// FIXME: RESET_CAPS is temporary code to reset roles and caps if flag is set.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   615
		$caps = get_usermeta( $user->ID, $wpdb->prefix . 'capabilities');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   616
		if ( empty($caps) || defined('RESET_CAPS') ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   617
			$level = get_usermeta($user->ID, $wpdb->prefix . 'user_level');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   618
			$role = translate_level_to_role($level);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   619
			update_usermeta( $user->ID, $wpdb->prefix . 'capabilities', array($role => true) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   620
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   621
0d28b7c10758 First commit
ymh
parents:
diff changeset
   622
	endforeach;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   623
	$old_user_fields = array( 'user_firstname', 'user_lastname', 'user_icq', 'user_aim', 'user_msn', 'user_yim', 'user_idmode', 'user_ip', 'user_domain', 'user_browser', 'user_description', 'user_nickname', 'user_level' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   624
	$wpdb->hide_errors();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   625
	foreach ( $old_user_fields as $old )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   626
		$wpdb->query("ALTER TABLE $wpdb->users DROP $old");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   627
	$wpdb->show_errors();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   628
0d28b7c10758 First commit
ymh
parents:
diff changeset
   629
	// populate comment_count field of posts table
0d28b7c10758 First commit
ymh
parents:
diff changeset
   630
	$comments = $wpdb->get_results( "SELECT comment_post_ID, COUNT(*) as c FROM $wpdb->comments WHERE comment_approved = '1' GROUP BY comment_post_ID" );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   631
	if( is_array( $comments ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   632
		foreach ($comments as $comment)
0d28b7c10758 First commit
ymh
parents:
diff changeset
   633
			$wpdb->update( $wpdb->posts, array('comment_count' => $comment->c), array('ID' => $comment->comment_post_ID) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   634
0d28b7c10758 First commit
ymh
parents:
diff changeset
   635
	// Some alpha versions used a post status of object instead of attachment and put
0d28b7c10758 First commit
ymh
parents:
diff changeset
   636
	// the mime type in post_type instead of post_mime_type.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   637
	if ( $wp_current_db_version > 2541 && $wp_current_db_version <= 3091 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   638
		$objects = $wpdb->get_results("SELECT ID, post_type FROM $wpdb->posts WHERE post_status = 'object'");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   639
		foreach ($objects as $object) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   640
			$wpdb->update( $wpdb->posts, array(	'post_status' => 'attachment',
0d28b7c10758 First commit
ymh
parents:
diff changeset
   641
												'post_mime_type' => $object->post_type,
0d28b7c10758 First commit
ymh
parents:
diff changeset
   642
												'post_type' => ''),
0d28b7c10758 First commit
ymh
parents:
diff changeset
   643
										 array( 'ID' => $object->ID ) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   644
0d28b7c10758 First commit
ymh
parents:
diff changeset
   645
			$meta = get_post_meta($object->ID, 'imagedata', true);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   646
			if ( ! empty($meta['file']) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   647
				update_attached_file( $object->ID, $meta['file'] );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   648
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   649
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   650
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   651
0d28b7c10758 First commit
ymh
parents:
diff changeset
   652
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   653
 * Execute changes made in WordPress 2.1.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   654
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   655
 * @since 2.1.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   656
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   657
function upgrade_210() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   658
	global $wpdb, $wp_current_db_version;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   659
0d28b7c10758 First commit
ymh
parents:
diff changeset
   660
	if ( $wp_current_db_version < 3506 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   661
		// Update status and type.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   662
		$posts = $wpdb->get_results("SELECT ID, post_status FROM $wpdb->posts");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   663
0d28b7c10758 First commit
ymh
parents:
diff changeset
   664
		if ( ! empty($posts) ) foreach ($posts as $post) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   665
			$status = $post->post_status;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   666
			$type = 'post';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   667
0d28b7c10758 First commit
ymh
parents:
diff changeset
   668
			if ( 'static' == $status ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   669
				$status = 'publish';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   670
				$type = 'page';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   671
			} else if ( 'attachment' == $status ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   672
				$status = 'inherit';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   673
				$type = 'attachment';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   674
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   675
0d28b7c10758 First commit
ymh
parents:
diff changeset
   676
			$wpdb->query( $wpdb->prepare("UPDATE $wpdb->posts SET post_status = %s, post_type = %s WHERE ID = %d", $status, $type, $post->ID) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   677
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   678
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   679
0d28b7c10758 First commit
ymh
parents:
diff changeset
   680
	if ( $wp_current_db_version < 3845 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   681
		populate_roles_210();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   682
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   683
0d28b7c10758 First commit
ymh
parents:
diff changeset
   684
	if ( $wp_current_db_version < 3531 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   685
		// Give future posts a post_status of future.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   686
		$now = gmdate('Y-m-d H:i:59');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   687
		$wpdb->query ("UPDATE $wpdb->posts SET post_status = 'future' WHERE post_status = 'publish' AND post_date_gmt > '$now'");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   688
0d28b7c10758 First commit
ymh
parents:
diff changeset
   689
		$posts = $wpdb->get_results("SELECT ID, post_date FROM $wpdb->posts WHERE post_status ='future'");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   690
		if ( !empty($posts) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   691
			foreach ( $posts as $post )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   692
				wp_schedule_single_event(mysql2date('U', $post->post_date, false), 'publish_future_post', array($post->ID));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   693
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   694
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   695
0d28b7c10758 First commit
ymh
parents:
diff changeset
   696
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   697
 * Execute changes made in WordPress 2.3.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   698
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   699
 * @since 2.3.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   700
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   701
function upgrade_230() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   702
	global $wp_current_db_version, $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   703
0d28b7c10758 First commit
ymh
parents:
diff changeset
   704
	if ( $wp_current_db_version < 5200 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   705
		populate_roles_230();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   706
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   707
0d28b7c10758 First commit
ymh
parents:
diff changeset
   708
	// Convert categories to terms.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   709
	$tt_ids = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   710
	$have_tags = false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   711
	$categories = $wpdb->get_results("SELECT * FROM $wpdb->categories ORDER BY cat_ID");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   712
	foreach ($categories as $category) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   713
		$term_id = (int) $category->cat_ID;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   714
		$name = $category->cat_name;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   715
		$description = $category->category_description;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   716
		$slug = $category->category_nicename;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   717
		$parent = $category->category_parent;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   718
		$term_group = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   719
0d28b7c10758 First commit
ymh
parents:
diff changeset
   720
		// Associate terms with the same slug in a term group and make slugs unique.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   721
		if ( $exists = $wpdb->get_results( $wpdb->prepare("SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $slug) ) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   722
			$term_group = $exists[0]->term_group;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   723
			$id = $exists[0]->term_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   724
			$num = 2;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   725
			do {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   726
				$alt_slug = $slug . "-$num";
0d28b7c10758 First commit
ymh
parents:
diff changeset
   727
				$num++;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   728
				$slug_check = $wpdb->get_var( $wpdb->prepare("SELECT slug FROM $wpdb->terms WHERE slug = %s", $alt_slug) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   729
			} while ( $slug_check );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   730
0d28b7c10758 First commit
ymh
parents:
diff changeset
   731
			$slug = $alt_slug;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   732
0d28b7c10758 First commit
ymh
parents:
diff changeset
   733
			if ( empty( $term_group ) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   734
				$term_group = $wpdb->get_var("SELECT MAX(term_group) FROM $wpdb->terms GROUP BY term_group") + 1;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   735
				$wpdb->query( $wpdb->prepare("UPDATE $wpdb->terms SET term_group = %d WHERE term_id = %d", $term_group, $id) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   736
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   737
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   738
0d28b7c10758 First commit
ymh
parents:
diff changeset
   739
		$wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->terms (term_id, name, slug, term_group) VALUES
0d28b7c10758 First commit
ymh
parents:
diff changeset
   740
		(%d, %s, %s, %d)", $term_id, $name, $slug, $term_group) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   741
0d28b7c10758 First commit
ymh
parents:
diff changeset
   742
		$count = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   743
		if ( !empty($category->category_count) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   744
			$count = (int) $category->category_count;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   745
			$taxonomy = 'category';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   746
			$wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->term_taxonomy (term_id, taxonomy, description, parent, count) VALUES ( %d, %s, %s, %d, %d)", $term_id, $taxonomy, $description, $parent, $count) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   747
			$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   748
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   749
0d28b7c10758 First commit
ymh
parents:
diff changeset
   750
		if ( !empty($category->link_count) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   751
			$count = (int) $category->link_count;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   752
			$taxonomy = 'link_category';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   753
			$wpdb->query( $wpdb->prepare("INSERT INTO $wpdb->term_taxonomy (term_id, taxonomy, description, parent, count) VALUES ( %d, %s, %s, %d, %d)", $term_id, $taxonomy, $description, $parent, $count) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   754
			$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   755
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   756
0d28b7c10758 First commit
ymh
parents:
diff changeset
   757
		if ( !empty($category->tag_count) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   758
			$have_tags = true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   759
			$count = (int) $category->tag_count;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   760
			$taxonomy = 'post_tag';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   761
			$wpdb->insert( $wpdb->term_taxonomy, compact('term_id', 'taxonomy', 'description', 'parent', 'count') );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   762
			$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   763
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   764
0d28b7c10758 First commit
ymh
parents:
diff changeset
   765
		if ( empty($count) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   766
			$count = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   767
			$taxonomy = 'category';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   768
			$wpdb->insert( $wpdb->term_taxonomy, compact('term_id', 'taxonomy', 'description', 'parent', 'count') );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   769
			$tt_ids[$term_id][$taxonomy] = (int) $wpdb->insert_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   770
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   771
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   772
0d28b7c10758 First commit
ymh
parents:
diff changeset
   773
	$select = 'post_id, category_id';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   774
	if ( $have_tags )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   775
		$select .= ', rel_type';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   776
0d28b7c10758 First commit
ymh
parents:
diff changeset
   777
	$posts = $wpdb->get_results("SELECT $select FROM $wpdb->post2cat GROUP BY post_id, category_id");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   778
	foreach ( $posts as $post ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   779
		$post_id = (int) $post->post_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   780
		$term_id = (int) $post->category_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   781
		$taxonomy = 'category';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   782
		if ( !empty($post->rel_type) && 'tag' == $post->rel_type)
0d28b7c10758 First commit
ymh
parents:
diff changeset
   783
			$taxonomy = 'tag';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   784
		$tt_id = $tt_ids[$term_id][$taxonomy];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   785
		if ( empty($tt_id) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   786
			continue;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   787
0d28b7c10758 First commit
ymh
parents:
diff changeset
   788
		$wpdb->insert( $wpdb->term_relationships, array('object_id' => $post_id, 'term_taxonomy_id' => $tt_id) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   789
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   790
0d28b7c10758 First commit
ymh
parents:
diff changeset
   791
	// < 3570 we used linkcategories.  >= 3570 we used categories and link2cat.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   792
	if ( $wp_current_db_version < 3570 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   793
		// Create link_category terms for link categories.  Create a map of link cat IDs
0d28b7c10758 First commit
ymh
parents:
diff changeset
   794
		// to link_category terms.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   795
		$link_cat_id_map = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   796
		$default_link_cat = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   797
		$tt_ids = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   798
		$link_cats = $wpdb->get_results("SELECT cat_id, cat_name FROM " . $wpdb->prefix . 'linkcategories');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   799
		foreach ( $link_cats as $category) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   800
			$cat_id = (int) $category->cat_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   801
			$term_id = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   802
			$name = $wpdb->escape($category->cat_name);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   803
			$slug = sanitize_title($name);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   804
			$term_group = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   805
0d28b7c10758 First commit
ymh
parents:
diff changeset
   806
			// Associate terms with the same slug in a term group and make slugs unique.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   807
			if ( $exists = $wpdb->get_results( $wpdb->prepare("SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $slug) ) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   808
				$term_group = $exists[0]->term_group;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   809
				$term_id = $exists[0]->term_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   810
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   811
0d28b7c10758 First commit
ymh
parents:
diff changeset
   812
			if ( empty($term_id) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   813
				$wpdb->insert( $wpdb->terms, compact('name', 'slug', 'term_group') );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   814
				$term_id = (int) $wpdb->insert_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   815
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   816
0d28b7c10758 First commit
ymh
parents:
diff changeset
   817
			$link_cat_id_map[$cat_id] = $term_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   818
			$default_link_cat = $term_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   819
0d28b7c10758 First commit
ymh
parents:
diff changeset
   820
			$wpdb->insert( $wpdb->term_taxonomy, array('term_id' => $term_id, 'taxonomy' => 'link_category', 'description' => '', 'parent' => 0, 'count' => 0) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   821
			$tt_ids[$term_id] = (int) $wpdb->insert_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   822
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   823
0d28b7c10758 First commit
ymh
parents:
diff changeset
   824
		// Associate links to cats.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   825
		$links = $wpdb->get_results("SELECT link_id, link_category FROM $wpdb->links");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   826
		if ( !empty($links) ) foreach ( $links as $link ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   827
			if ( 0 == $link->link_category )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   828
				continue;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   829
			if ( ! isset($link_cat_id_map[$link->link_category]) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   830
				continue;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   831
			$term_id = $link_cat_id_map[$link->link_category];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   832
			$tt_id = $tt_ids[$term_id];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   833
			if ( empty($tt_id) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   834
				continue;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   835
0d28b7c10758 First commit
ymh
parents:
diff changeset
   836
			$wpdb->insert( $wpdb->term_relationships, array('object_id' => $link->link_id, 'term_taxonomy_id' => $tt_id) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   837
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   838
0d28b7c10758 First commit
ymh
parents:
diff changeset
   839
		// Set default to the last category we grabbed during the upgrade loop.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   840
		update_option('default_link_category', $default_link_cat);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   841
	} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   842
		$links = $wpdb->get_results("SELECT link_id, category_id FROM $wpdb->link2cat GROUP BY link_id, category_id");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   843
		foreach ( $links as $link ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   844
			$link_id = (int) $link->link_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   845
			$term_id = (int) $link->category_id;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   846
			$taxonomy = 'link_category';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   847
			$tt_id = $tt_ids[$term_id][$taxonomy];
0d28b7c10758 First commit
ymh
parents:
diff changeset
   848
			if ( empty($tt_id) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   849
				continue;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   850
			$wpdb->insert( $wpdb->term_relationships, array('object_id' => $link_id, 'term_taxonomy_id' => $tt_id) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   851
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   852
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   853
0d28b7c10758 First commit
ymh
parents:
diff changeset
   854
	if ( $wp_current_db_version < 4772 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   855
		// Obsolete linkcategories table
0d28b7c10758 First commit
ymh
parents:
diff changeset
   856
		$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'linkcategories');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   857
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   858
0d28b7c10758 First commit
ymh
parents:
diff changeset
   859
	// Recalculate all counts
0d28b7c10758 First commit
ymh
parents:
diff changeset
   860
	$terms = $wpdb->get_results("SELECT term_taxonomy_id, taxonomy FROM $wpdb->term_taxonomy");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   861
	foreach ( (array) $terms as $term ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   862
		if ( ('post_tag' == $term->taxonomy) || ('category' == $term->taxonomy) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   863
			$count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM $wpdb->term_relationships, $wpdb->posts WHERE $wpdb->posts.ID = $wpdb->term_relationships.object_id AND post_status = 'publish' AND post_type = 'post' AND term_taxonomy_id = %d", $term->term_taxonomy_id) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   864
		else
0d28b7c10758 First commit
ymh
parents:
diff changeset
   865
			$count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(*) FROM $wpdb->term_relationships WHERE term_taxonomy_id = %d", $term->term_taxonomy_id) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   866
		$wpdb->update( $wpdb->term_taxonomy, array('count' => $count), array('term_taxonomy_id' => $term->term_taxonomy_id) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   867
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   868
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   869
0d28b7c10758 First commit
ymh
parents:
diff changeset
   870
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   871
 * Remove old options from the database.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   872
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   873
 * @since 2.3.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   874
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   875
function upgrade_230_options_table() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   876
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   877
	$old_options_fields = array( 'option_can_override', 'option_type', 'option_width', 'option_height', 'option_description', 'option_admin_level' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   878
	$wpdb->hide_errors();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   879
	foreach ( $old_options_fields as $old )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   880
		$wpdb->query("ALTER TABLE $wpdb->options DROP $old");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   881
	$wpdb->show_errors();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   882
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   883
0d28b7c10758 First commit
ymh
parents:
diff changeset
   884
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   885
 * Remove old categories, link2cat, and post2cat database tables.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   886
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   887
 * @since 2.3.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   888
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   889
function upgrade_230_old_tables() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   890
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   891
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'categories');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   892
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'link2cat');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   893
	$wpdb->query('DROP TABLE IF EXISTS ' . $wpdb->prefix . 'post2cat');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   894
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   895
0d28b7c10758 First commit
ymh
parents:
diff changeset
   896
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   897
 * Upgrade old slugs made in version 2.2.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   898
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   899
 * @since 2.2.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   900
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   901
function upgrade_old_slugs() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   902
	// upgrade people who were using the Redirect Old Slugs plugin
0d28b7c10758 First commit
ymh
parents:
diff changeset
   903
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   904
	$wpdb->query("UPDATE $wpdb->postmeta SET meta_key = '_wp_old_slug' WHERE meta_key = 'old_slug'");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   905
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   906
0d28b7c10758 First commit
ymh
parents:
diff changeset
   907
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   908
 * Execute changes made in WordPress 2.5.0.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   909
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   910
 * @since 2.5.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   911
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   912
function upgrade_250() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   913
	global $wp_current_db_version;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   914
0d28b7c10758 First commit
ymh
parents:
diff changeset
   915
	if ( $wp_current_db_version < 6689 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   916
		populate_roles_250();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   917
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   918
0d28b7c10758 First commit
ymh
parents:
diff changeset
   919
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   920
0d28b7c10758 First commit
ymh
parents:
diff changeset
   921
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   922
 * Execute changes made in WordPress 2.5.1.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   923
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   924
 * @since 2.5.1
0d28b7c10758 First commit
ymh
parents:
diff changeset
   925
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   926
function upgrade_251() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   927
	global $wp_current_db_version;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   928
0d28b7c10758 First commit
ymh
parents:
diff changeset
   929
	// Make the secret longer
0d28b7c10758 First commit
ymh
parents:
diff changeset
   930
	update_option('secret', wp_generate_password(64));
0d28b7c10758 First commit
ymh
parents:
diff changeset
   931
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   932
0d28b7c10758 First commit
ymh
parents:
diff changeset
   933
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   934
 * Execute changes made in WordPress 2.5.2.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   935
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   936
 * @since 2.5.2
0d28b7c10758 First commit
ymh
parents:
diff changeset
   937
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   938
function upgrade_252() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   939
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   940
0d28b7c10758 First commit
ymh
parents:
diff changeset
   941
	$wpdb->query("UPDATE $wpdb->users SET user_activation_key = ''");
0d28b7c10758 First commit
ymh
parents:
diff changeset
   942
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   943
0d28b7c10758 First commit
ymh
parents:
diff changeset
   944
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   945
 * Execute changes made in WordPress 2.6.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   946
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   947
 * @since 2.6.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   948
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   949
function upgrade_260() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   950
	global $wp_current_db_version;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   951
0d28b7c10758 First commit
ymh
parents:
diff changeset
   952
	if ( $wp_current_db_version < 8000 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   953
		populate_roles_260();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   954
0d28b7c10758 First commit
ymh
parents:
diff changeset
   955
	if ( $wp_current_db_version < 8201 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   956
		update_option('enable_app', 1);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   957
		update_option('enable_xmlrpc', 1);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   958
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   959
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   960
0d28b7c10758 First commit
ymh
parents:
diff changeset
   961
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   962
 * Execute changes made in WordPress 2.7.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   963
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   964
 * @since 2.7.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   965
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   966
function upgrade_270() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   967
	global $wpdb, $wp_current_db_version;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   968
0d28b7c10758 First commit
ymh
parents:
diff changeset
   969
	if ( $wp_current_db_version < 8980 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   970
		populate_roles_270();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   971
0d28b7c10758 First commit
ymh
parents:
diff changeset
   972
	// Update post_date for unpublished posts with empty timestamp
0d28b7c10758 First commit
ymh
parents:
diff changeset
   973
	if ( $wp_current_db_version < 8921 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   974
		$wpdb->query( "UPDATE $wpdb->posts SET post_date = post_modified WHERE post_date = '0000-00-00 00:00:00'" );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   975
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   976
0d28b7c10758 First commit
ymh
parents:
diff changeset
   977
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   978
 * Execute changes made in WordPress 2.8.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   979
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   980
 * @since 2.8.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   981
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   982
function upgrade_280() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   983
	global $wp_current_db_version;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   984
0d28b7c10758 First commit
ymh
parents:
diff changeset
   985
	if ( $wp_current_db_version < 10360 )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   986
		populate_roles_280();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   987
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   988
0d28b7c10758 First commit
ymh
parents:
diff changeset
   989
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
   990
 * Execute changes made in WordPress 2.9.
0d28b7c10758 First commit
ymh
parents:
diff changeset
   991
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
   992
 * @since 2.9.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
   993
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
   994
function upgrade_290() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   995
	global $wp_current_db_version;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   996
0d28b7c10758 First commit
ymh
parents:
diff changeset
   997
	if ( $wp_current_db_version < 11958 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   998
		// Previously, setting depth to 1 would redundantly disable threading, but now 2 is the minimum depth to avoid confusion
0d28b7c10758 First commit
ymh
parents:
diff changeset
   999
		if ( get_option( 'thread_comments_depth' ) == '1' ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1000
			update_option( 'thread_comments_depth', 2 );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1001
			update_option( 'thread_comments', 0 );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1002
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1003
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1004
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1005
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1006
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1007
// The functions we use to actually do stuff
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1008
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1009
// General
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1010
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1011
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1012
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1013
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1014
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1015
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1016
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1017
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1018
 * @param string $table_name Database table name to create.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1019
 * @param string $create_ddl SQL statement to create table.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1020
 * @return bool If table already exists or was created by function.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1021
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1022
function maybe_create_table($table_name, $create_ddl) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1023
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1024
	if ( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name )
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1025
		return true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1026
	//didn't find it try to create it.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1027
	$q = $wpdb->query($create_ddl);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1028
	// we cannot directly tell that whether this succeeded!
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1029
	if ( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") == $table_name )
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1030
		return true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1031
	return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1032
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1033
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1034
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1035
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1036
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1037
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1038
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1039
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1040
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1041
 * @param string $table Database table name.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1042
 * @param string $index Index name to drop.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1043
 * @return bool True, when finished.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1044
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1045
function drop_index($table, $index) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1046
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1047
	$wpdb->hide_errors();
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1048
	$wpdb->query("ALTER TABLE `$table` DROP INDEX `$index`");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1049
	// Now we need to take out all the extra ones we may have created
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1050
	for ($i = 0; $i < 25; $i++) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1051
		$wpdb->query("ALTER TABLE `$table` DROP INDEX `{$index}_$i`");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1052
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1053
	$wpdb->show_errors();
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1054
	return true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1055
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1056
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1057
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1058
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1059
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1060
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1061
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1062
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1063
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1064
 * @param string $table Database table name.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1065
 * @param string $index Database table index column.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1066
 * @return bool True, when done with execution.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1067
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1068
function add_clean_index($table, $index) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1069
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1070
	drop_index($table, $index);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1071
	$wpdb->query("ALTER TABLE `$table` ADD INDEX ( `$index` )");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1072
	return true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1073
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1074
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1075
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1076
 ** maybe_add_column()
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1077
 ** Add column to db table if it doesn't exist.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1078
 ** Returns:  true if already exists or on successful completion
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1079
 **           false on error
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1080
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1081
function maybe_add_column($table_name, $column_name, $create_ddl) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1082
	global $wpdb, $debug;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1083
	foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1084
		if ($debug) echo("checking $column == $column_name<br />");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1085
		if ($column == $column_name) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1086
			return true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1087
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1088
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1089
	//didn't find it try to create it.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1090
	$q = $wpdb->query($create_ddl);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1091
	// we cannot directly tell that whether this succeeded!
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1092
	foreach ($wpdb->get_col("DESC $table_name", 0) as $column ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1093
		if ($column == $column_name) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1094
			return true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1095
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1096
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1097
	return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1098
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1099
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1100
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1101
 * Retrieve all options as it was for 1.2.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1102
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1103
 * @since 1.2.0
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1104
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1105
 * @return array List of options.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1106
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1107
function get_alloptions_110() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1108
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1109
	if ($options = $wpdb->get_results("SELECT option_name, option_value FROM $wpdb->options")) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1110
		foreach ($options as $option) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1111
			// "When trying to design a foolproof system,
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1112
			//  never underestimate the ingenuity of the fools :)" -- Dougal
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1113
			if ('siteurl' == $option->option_name) $option->option_value = preg_replace('|/+$|', '', $option->option_value);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1114
			if ('home' == $option->option_name) $option->option_value = preg_replace('|/+$|', '', $option->option_value);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1115
			if ('category_base' == $option->option_name) $option->option_value = preg_replace('|/+$|', '', $option->option_value);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1116
			$all_options->{$option->option_name} = stripslashes($option->option_value);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1117
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1118
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1119
	return $all_options;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1120
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1121
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1122
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1123
 * Version of get_option that is private to install/upgrade.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1124
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1125
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1126
 * @access private
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1127
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1128
 * @param string $setting Option name.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1129
 * @return mixed
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1130
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1131
function __get_option($setting) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1132
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1133
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1134
	if ( $setting == 'home' && defined( 'WP_HOME' ) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1135
		return preg_replace( '|/+$|', '', constant( 'WP_HOME' ) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1136
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1137
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1138
	if ( $setting == 'siteurl' && defined( 'WP_SITEURL' ) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1139
		return preg_replace( '|/+$|', '', constant( 'WP_SITEURL' ) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1140
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1141
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1142
	$option = $wpdb->get_var( $wpdb->prepare("SELECT option_value FROM $wpdb->options WHERE option_name = %s", $setting) );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1143
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1144
	if ( 'home' == $setting && '' == $option )
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1145
		return __get_option('siteurl');
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1146
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1147
	if ( 'siteurl' == $setting || 'home' == $setting || 'category_base' == $setting )
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1148
		$option = preg_replace('|/+$|', '', $option);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1149
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1150
	@ $kellogs = unserialize($option);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1151
	if ($kellogs !== FALSE)
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1152
		return $kellogs;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1153
	else
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1154
		return $option;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1155
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1156
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1157
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1158
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1159
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1160
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1161
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1162
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1163
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1164
 * @param string $content
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1165
 * @return string
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1166
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1167
function deslash($content) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1168
	// Note: \\\ inside a regex denotes a single backslash.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1169
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1170
	// Replace one or more backslashes followed by a single quote with
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1171
	// a single quote.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1172
	$content = preg_replace("/\\\+'/", "'", $content);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1173
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1174
	// Replace one or more backslashes followed by a double quote with
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1175
	// a double quote.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1176
	$content = preg_replace('/\\\+"/', '"', $content);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1177
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1178
	// Replace one or more backslashes with one backslash.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1179
	$content = preg_replace("/\\\+/", "\\", $content);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1180
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1181
	return $content;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1182
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1183
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1184
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1185
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1186
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1187
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1188
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1189
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1190
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1191
 * @param unknown_type $queries
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1192
 * @param unknown_type $execute
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1193
 * @return unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1194
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1195
function dbDelta($queries, $execute = true) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1196
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1197
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1198
	// Separate individual queries into an array
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1199
	if( !is_array($queries) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1200
		$queries = explode( ';', $queries );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1201
		if('' == $queries[count($queries) - 1]) array_pop($queries);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1202
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1203
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1204
	$cqueries = array(); // Creation Queries
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1205
	$iqueries = array(); // Insertion Queries
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1206
	$for_update = array();
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1207
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1208
	// Create a tablename index for an array ($cqueries) of queries
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1209
	foreach($queries as $qry) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1210
		if(preg_match("|CREATE TABLE ([^ ]*)|", $qry, $matches)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1211
			$cqueries[trim( strtolower($matches[1]), '`' )] = $qry;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1212
			$for_update[$matches[1]] = 'Created table '.$matches[1];
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1213
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1214
		else if(preg_match("|CREATE DATABASE ([^ ]*)|", $qry, $matches)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1215
			array_unshift($cqueries, $qry);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1216
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1217
		else if(preg_match("|INSERT INTO ([^ ]*)|", $qry, $matches)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1218
			$iqueries[] = $qry;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1219
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1220
		else if(preg_match("|UPDATE ([^ ]*)|", $qry, $matches)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1221
			$iqueries[] = $qry;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1222
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1223
		else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1224
			// Unrecognized query type
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1225
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1226
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1227
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1228
	// Check to see which tables and fields exist
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1229
	if($tables = $wpdb->get_col('SHOW TABLES;')) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1230
		// For every table in the database
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1231
		foreach($tables as $table) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1232
			// If a table query exists for the database table...
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1233
			if( array_key_exists(strtolower($table), $cqueries) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1234
				// Clear the field and index arrays
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1235
				unset($cfields);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1236
				unset($indices);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1237
				// Get all of the field names in the query from between the parens
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1238
				preg_match("|\((.*)\)|ms", $cqueries[strtolower($table)], $match2);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1239
				$qryline = trim($match2[1]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1240
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1241
				// Separate field lines into an array
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1242
				$flds = explode("\n", $qryline);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1243
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1244
				//echo "<hr/><pre>\n".print_r(strtolower($table), true).":\n".print_r($cqueries, true)."</pre><hr/>";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1245
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1246
				// For every field line specified in the query
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1247
				foreach($flds as $fld) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1248
					// Extract the field name
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1249
					preg_match("|^([^ ]*)|", trim($fld), $fvals);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1250
					$fieldname = trim( $fvals[1], '`' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1251
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1252
					// Verify the found field name
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1253
					$validfield = true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1254
					switch(strtolower($fieldname))
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1255
					{
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1256
					case '':
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1257
					case 'primary':
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1258
					case 'index':
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1259
					case 'fulltext':
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1260
					case 'unique':
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1261
					case 'key':
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1262
						$validfield = false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1263
						$indices[] = trim(trim($fld), ", \n");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1264
						break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1265
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1266
					$fld = trim($fld);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1267
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1268
					// If it's a valid field, add it to the field array
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1269
					if($validfield) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1270
						$cfields[strtolower($fieldname)] = trim($fld, ", \n");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1271
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1272
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1273
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1274
				// Fetch the table column structure from the database
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1275
				$tablefields = $wpdb->get_results("DESCRIBE {$table};");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1276
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1277
				// For every field in the table
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1278
				foreach($tablefields as $tablefield) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1279
					// If the table field exists in the field array...
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1280
					if(array_key_exists(strtolower($tablefield->Field), $cfields)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1281
						// Get the field type from the query
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1282
						preg_match("|".$tablefield->Field." ([^ ]*( unsigned)?)|i", $cfields[strtolower($tablefield->Field)], $matches);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1283
						$fieldtype = $matches[1];
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1284
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1285
						// Is actual field type different from the field type in query?
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1286
						if($tablefield->Type != $fieldtype) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1287
							// Add a query to change the column type
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1288
							$cqueries[] = "ALTER TABLE {$table} CHANGE COLUMN {$tablefield->Field} " . $cfields[strtolower($tablefield->Field)];
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1289
							$for_update[$table.'.'.$tablefield->Field] = "Changed type of {$table}.{$tablefield->Field} from {$tablefield->Type} to {$fieldtype}";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1290
						}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1291
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1292
						// Get the default value from the array
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1293
							//echo "{$cfields[strtolower($tablefield->Field)]}<br>";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1294
						if(preg_match("| DEFAULT '(.*)'|i", $cfields[strtolower($tablefield->Field)], $matches)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1295
							$default_value = $matches[1];
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1296
							if($tablefield->Default != $default_value)
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1297
							{
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1298
								// Add a query to change the column's default value
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1299
								$cqueries[] = "ALTER TABLE {$table} ALTER COLUMN {$tablefield->Field} SET DEFAULT '{$default_value}'";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1300
								$for_update[$table.'.'.$tablefield->Field] = "Changed default value of {$table}.{$tablefield->Field} from {$tablefield->Default} to {$default_value}";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1301
							}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1302
						}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1303
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1304
						// Remove the field from the array (so it's not added)
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1305
						unset($cfields[strtolower($tablefield->Field)]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1306
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1307
					else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1308
						// This field exists in the table, but not in the creation queries?
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1309
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1310
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1311
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1312
				// For every remaining field specified for the table
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1313
				foreach($cfields as $fieldname => $fielddef) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1314
					// Push a query line into $cqueries that adds the field to that table
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1315
					$cqueries[] = "ALTER TABLE {$table} ADD COLUMN $fielddef";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1316
					$for_update[$table.'.'.$fieldname] = 'Added column '.$table.'.'.$fieldname;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1317
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1318
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1319
				// Index stuff goes here
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1320
				// Fetch the table index structure from the database
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1321
				$tableindices = $wpdb->get_results("SHOW INDEX FROM {$table};");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1322
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1323
				if($tableindices) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1324
					// Clear the index array
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1325
					unset($index_ary);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1326
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1327
					// For every index in the table
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1328
					foreach($tableindices as $tableindex) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1329
						// Add the index to the index data array
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1330
						$keyname = $tableindex->Key_name;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1331
						$index_ary[$keyname]['columns'][] = array('fieldname' => $tableindex->Column_name, 'subpart' => $tableindex->Sub_part);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1332
						$index_ary[$keyname]['unique'] = ($tableindex->Non_unique == 0)?true:false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1333
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1334
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1335
					// For each actual index in the index array
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1336
					foreach($index_ary as $index_name => $index_data) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1337
						// Build a create string to compare to the query
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1338
						$index_string = '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1339
						if($index_name == 'PRIMARY') {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1340
							$index_string .= 'PRIMARY ';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1341
						}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1342
						else if($index_data['unique']) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1343
							$index_string .= 'UNIQUE ';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1344
						}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1345
						$index_string .= 'KEY ';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1346
						if($index_name != 'PRIMARY') {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1347
							$index_string .= $index_name;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1348
						}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1349
						$index_columns = '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1350
						// For each column in the index
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1351
						foreach($index_data['columns'] as $column_data) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1352
							if($index_columns != '') $index_columns .= ',';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1353
							// Add the field to the column list string
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1354
							$index_columns .= $column_data['fieldname'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1355
							if($column_data['subpart'] != '') {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1356
								$index_columns .= '('.$column_data['subpart'].')';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1357
							}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1358
						}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1359
						// Add the column list to the index create string
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1360
						$index_string .= ' ('.$index_columns.')';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1361
						if(!(($aindex = array_search($index_string, $indices)) === false)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1362
							unset($indices[$aindex]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1363
							//echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">{$table}:<br />Found index:".$index_string."</pre>\n";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1364
						}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1365
						//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";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1366
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1367
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1368
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1369
				// For every remaining index specified for the table
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1370
				foreach ( (array) $indices as $index ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1371
					// Push a query line into $cqueries that adds the index to that table
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1372
					$cqueries[] = "ALTER TABLE {$table} ADD $index";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1373
					$for_update[$table.'.'.$fieldname] = 'Added index '.$table.' '.$index;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1374
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1375
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1376
				// Remove the original table creation query from processing
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1377
				unset($cqueries[strtolower($table)]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1378
				unset($for_update[strtolower($table)]);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1379
			} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1380
				// This table exists in the database, but not in the creation queries?
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1381
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1382
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1383
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1384
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1385
	$allqueries = array_merge($cqueries, $iqueries);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1386
	if($execute) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1387
		foreach($allqueries as $query) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1388
			//echo "<pre style=\"border:1px solid #ccc;margin-top:5px;\">".print_r($query, true)."</pre>\n";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1389
			$wpdb->query($query);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1390
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1391
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1392
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1393
	return $for_update;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1394
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1395
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1396
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1397
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1398
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1399
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1400
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1401
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1402
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1403
function make_db_current() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1404
	global $wp_queries;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1405
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1406
	$alterations = dbDelta($wp_queries);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1407
	echo "<ol>\n";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1408
	foreach($alterations as $alteration) echo "<li>$alteration</li>\n";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1409
	echo "</ol>\n";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1410
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1411
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1412
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1413
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1414
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1415
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1416
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1417
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1418
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1419
function make_db_current_silent() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1420
	global $wp_queries;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1421
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1422
	$alterations = dbDelta($wp_queries);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1423
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1424
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1425
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1426
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1427
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1428
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1429
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1430
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1431
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1432
 * @param unknown_type $theme_name
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1433
 * @param unknown_type $template
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1434
 * @return unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1435
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1436
function make_site_theme_from_oldschool($theme_name, $template) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1437
	$home_path = get_home_path();
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1438
	$site_dir = WP_CONTENT_DIR . "/themes/$template";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1439
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1440
	if (! file_exists("$home_path/index.php"))
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1441
		return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1442
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1443
	// Copy files from the old locations to the site theme.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1444
	// TODO: This does not copy arbitarary include dependencies.  Only the
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1445
	// standard WP files are copied.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1446
	$files = array('index.php' => 'index.php', 'wp-layout.css' => 'style.css', 'wp-comments.php' => 'comments.php', 'wp-comments-popup.php' => 'comments-popup.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1447
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1448
	foreach ($files as $oldfile => $newfile) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1449
		if ($oldfile == 'index.php')
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1450
			$oldpath = $home_path;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1451
		else
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1452
			$oldpath = ABSPATH;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1453
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1454
		if ($oldfile == 'index.php') { // Check to make sure it's not a new index
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1455
			$index = implode('', file("$oldpath/$oldfile"));
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1456
			if (strpos($index, 'WP_USE_THEMES') !== false) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1457
				if (! @copy(WP_CONTENT_DIR . '/themes/default/index.php', "$site_dir/$newfile"))
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1458
					return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1459
				continue; // Don't copy anything
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1460
				}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1461
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1462
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1463
		if (! @copy("$oldpath/$oldfile", "$site_dir/$newfile"))
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1464
			return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1465
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1466
		chmod("$site_dir/$newfile", 0777);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1467
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1468
		// Update the blog header include in each file.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1469
		$lines = explode("\n", implode('', file("$site_dir/$newfile")));
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1470
		if ($lines) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1471
			$f = fopen("$site_dir/$newfile", 'w');
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1472
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1473
			foreach ($lines as $line) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1474
				if (preg_match('/require.*wp-blog-header/', $line))
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1475
					$line = '//' . $line;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1476
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1477
				// Update stylesheet references.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1478
				$line = str_replace("<?php echo __get_option('siteurl'); ?>/wp-layout.css", "<?php bloginfo('stylesheet_url'); ?>", $line);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1479
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1480
				// Update comments template inclusion.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1481
				$line = str_replace("<?php include(ABSPATH . 'wp-comments.php'); ?>", "<?php comments_template(); ?>", $line);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1482
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1483
				fwrite($f, "{$line}\n");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1484
			}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1485
			fclose($f);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1486
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1487
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1488
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1489
	// Add a theme header.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1490
	$header = "/*\nTheme Name: $theme_name\nTheme URI: " . __get_option('siteurl') . "\nDescription: A theme automatically created by the upgrade.\nVersion: 1.0\nAuthor: Moi\n*/\n";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1491
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1492
	$stylelines = file_get_contents("$site_dir/style.css");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1493
	if ($stylelines) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1494
		$f = fopen("$site_dir/style.css", 'w');
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1495
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1496
		fwrite($f, $header);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1497
		fwrite($f, $stylelines);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1498
		fclose($f);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1499
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1500
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1501
	return true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1502
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1503
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1504
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1505
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1506
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1507
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1508
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1509
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1510
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1511
 * @param unknown_type $theme_name
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1512
 * @param unknown_type $template
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1513
 * @return unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1514
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1515
function make_site_theme_from_default($theme_name, $template) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1516
	$site_dir = WP_CONTENT_DIR . "/themes/$template";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1517
	$default_dir = WP_CONTENT_DIR . '/themes/default';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1518
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1519
	// Copy files from the default theme to the site theme.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1520
	//$files = array('index.php', 'comments.php', 'comments-popup.php', 'footer.php', 'header.php', 'sidebar.php', 'style.css');
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1521
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1522
	$theme_dir = @ opendir("$default_dir");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1523
	if ($theme_dir) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1524
		while(($theme_file = readdir( $theme_dir )) !== false) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1525
			if (is_dir("$default_dir/$theme_file"))
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1526
				continue;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1527
			if (! @copy("$default_dir/$theme_file", "$site_dir/$theme_file"))
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1528
				return;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1529
			chmod("$site_dir/$theme_file", 0777);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1530
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1531
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1532
	@closedir($theme_dir);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1533
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1534
	// Rewrite the theme header.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1535
	$stylelines = explode("\n", implode('', file("$site_dir/style.css")));
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1536
	if ($stylelines) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1537
		$f = fopen("$site_dir/style.css", 'w');
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1538
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1539
		foreach ($stylelines as $line) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1540
			if (strpos($line, 'Theme Name:') !== false) $line = 'Theme Name: ' . $theme_name;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1541
			elseif (strpos($line, 'Theme URI:') !== false) $line = 'Theme URI: ' . __get_option('url');
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1542
			elseif (strpos($line, 'Description:') !== false) $line = 'Description: Your theme.';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1543
			elseif (strpos($line, 'Version:') !== false) $line = 'Version: 1';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1544
			elseif (strpos($line, 'Author:') !== false) $line = 'Author: You';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1545
			fwrite($f, $line . "\n");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1546
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1547
		fclose($f);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1548
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1549
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1550
	// Copy the images.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1551
	umask(0);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1552
	if (! mkdir("$site_dir/images", 0777)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1553
		return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1554
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1555
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1556
	$images_dir = @ opendir("$default_dir/images");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1557
	if ($images_dir) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1558
		while(($image = readdir($images_dir)) !== false) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1559
			if (is_dir("$default_dir/images/$image"))
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1560
				continue;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1561
			if (! @copy("$default_dir/images/$image", "$site_dir/images/$image"))
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1562
				return;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1563
			chmod("$site_dir/images/$image", 0777);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1564
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1565
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1566
	@closedir($images_dir);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1567
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1568
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1569
// Create a site theme from the default theme.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1570
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1571
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1572
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1573
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1574
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1575
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1576
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1577
 * @return unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1578
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1579
function make_site_theme() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1580
	// Name the theme after the blog.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1581
	$theme_name = __get_option('blogname');
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1582
	$template = sanitize_title($theme_name);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1583
	$site_dir = WP_CONTENT_DIR . "/themes/$template";
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1584
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1585
	// If the theme already exists, nothing to do.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1586
	if ( is_dir($site_dir)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1587
		return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1588
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1589
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1590
	// We must be able to write to the themes dir.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1591
	if (! is_writable(WP_CONTENT_DIR . "/themes")) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1592
		return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1593
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1594
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1595
	umask(0);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1596
	if (! mkdir($site_dir, 0777)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1597
		return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1598
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1599
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1600
	if (file_exists(ABSPATH . 'wp-layout.css')) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1601
		if (! make_site_theme_from_oldschool($theme_name, $template)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1602
			// TODO:  rm -rf the site theme directory.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1603
			return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1604
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1605
	} else {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1606
		if (! make_site_theme_from_default($theme_name, $template))
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1607
			// TODO:  rm -rf the site theme directory.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1608
			return false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1609
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1610
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1611
	// Make the new site theme active.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1612
	$current_template = __get_option('template');
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1613
	if ($current_template == 'default') {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1614
		update_option('template', $template);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1615
		update_option('stylesheet', $template);
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1616
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1617
	return $template;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1618
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1619
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1620
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1621
 * Translate user level to user role name.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1622
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1623
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1624
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1625
 * @param int $level User level.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1626
 * @return string User role name.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1627
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1628
function translate_level_to_role($level) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1629
	switch ($level) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1630
	case 10:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1631
	case 9:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1632
	case 8:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1633
		return 'administrator';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1634
	case 7:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1635
	case 6:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1636
	case 5:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1637
		return 'editor';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1638
	case 4:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1639
	case 3:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1640
	case 2:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1641
		return 'author';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1642
	case 1:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1643
		return 'contributor';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1644
	case 0:
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1645
		return 'subscriber';
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1646
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1647
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1648
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1649
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1650
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1651
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1652
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1653
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1654
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1655
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1656
function wp_check_mysql_version() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1657
	global $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1658
	$result = $wpdb->check_database_version();
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1659
	if ( is_wp_error( $result ) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1660
		die( $result->get_error_message() );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1661
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1662
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1663
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1664
 * {@internal Missing Short Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1665
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1666
 * {@internal Missing Long Description}}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1667
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1668
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1669
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1670
function maybe_disable_automattic_widgets() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1671
	$plugins = __get_option( 'active_plugins' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1672
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1673
	foreach ( (array) $plugins as $plugin ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1674
		if ( basename( $plugin ) == 'widgets.php' ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1675
			array_splice( $plugins, array_search( $plugin, $plugins ), 1 );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1676
			update_option( 'active_plugins', $plugins );
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1677
			break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1678
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1679
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1680
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1681
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1682
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1683
 * Runs before the schema is upgraded.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1684
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1685
function pre_schema_upgrade() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1686
	global $wp_current_db_version, $wp_db_version, $wpdb;
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1687
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1688
	// Upgrade versions prior to 2.9
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1689
	if ( $wp_current_db_version < 11557 ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1690
		// Delete duplicate options.  Keep the option with the highest option_id.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1691
		$wpdb->query("DELETE o1 FROM $wpdb->options AS o1 JOIN $wpdb->options AS o2 USING (`option_name`) WHERE o2.option_id > o1.option_id");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1692
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1693
		// Drop the old primary key and add the new.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1694
		$wpdb->query("ALTER TABLE $wpdb->options DROP PRIMARY KEY, ADD PRIMARY KEY(option_id)");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1695
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1696
		// Drop the old option_name index. dbDelta() doesn't do the drop.
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1697
		$wpdb->query("ALTER TABLE $wpdb->options DROP INDEX option_name");
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1698
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1699
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1700
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1701
0d28b7c10758 First commit
ymh
parents:
diff changeset
  1702
?>