web/wp-admin/install.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 Installer
0d28b7c10758 First commit
ymh
parents:
diff changeset
     4
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
     5
 * @package WordPress
0d28b7c10758 First commit
ymh
parents:
diff changeset
     6
 * @subpackage Administration
0d28b7c10758 First commit
ymh
parents:
diff changeset
     7
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
     8
0d28b7c10758 First commit
ymh
parents:
diff changeset
     9
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
    10
 * We are installing WordPress.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    11
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    12
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
    13
 * @var bool
0d28b7c10758 First commit
ymh
parents:
diff changeset
    14
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    15
define('WP_INSTALLING', true);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    16
0d28b7c10758 First commit
ymh
parents:
diff changeset
    17
/** Load WordPress Bootstrap */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    18
require_once(dirname(dirname(__FILE__)) . '/wp-load.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    19
0d28b7c10758 First commit
ymh
parents:
diff changeset
    20
/** Load WordPress Administration Upgrade API */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    21
require_once(dirname(__FILE__) . '/includes/upgrade.php');
0d28b7c10758 First commit
ymh
parents:
diff changeset
    22
0d28b7c10758 First commit
ymh
parents:
diff changeset
    23
if (isset($_GET['step']))
0d28b7c10758 First commit
ymh
parents:
diff changeset
    24
	$step = $_GET['step'];
0d28b7c10758 First commit
ymh
parents:
diff changeset
    25
else
0d28b7c10758 First commit
ymh
parents:
diff changeset
    26
	$step = 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    27
0d28b7c10758 First commit
ymh
parents:
diff changeset
    28
/**
0d28b7c10758 First commit
ymh
parents:
diff changeset
    29
 * Display install header.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    30
 *
0d28b7c10758 First commit
ymh
parents:
diff changeset
    31
 * @since unknown
0d28b7c10758 First commit
ymh
parents:
diff changeset
    32
 * @package WordPress
0d28b7c10758 First commit
ymh
parents:
diff changeset
    33
 * @subpackage Installer
0d28b7c10758 First commit
ymh
parents:
diff changeset
    34
 */
0d28b7c10758 First commit
ymh
parents:
diff changeset
    35
function display_header() {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    36
header( 'Content-Type: text/html; charset=utf-8' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    37
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    38
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    39
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    40
<head>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    41
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    42
	<title><?php _e('WordPress &rsaquo; Installation'); ?></title>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    43
	<?php wp_admin_css( 'install', true ); ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    44
</head>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    45
<body>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    46
<h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png" /></h1>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    47
0d28b7c10758 First commit
ymh
parents:
diff changeset
    48
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    49
}//end function display_header();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    50
0d28b7c10758 First commit
ymh
parents:
diff changeset
    51
function display_setup_form( $error = null ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    52
	// Ensure that Blogs appear in search engines by default
0d28b7c10758 First commit
ymh
parents:
diff changeset
    53
	$blog_public = 1;
0d28b7c10758 First commit
ymh
parents:
diff changeset
    54
	if ( isset($_POST) && !empty($_POST) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    55
		$blog_public = isset($_POST['blog_public']);
0d28b7c10758 First commit
ymh
parents:
diff changeset
    56
	}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    57
0d28b7c10758 First commit
ymh
parents:
diff changeset
    58
	if ( ! is_null( $error ) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    59
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    60
<p><?php printf( __('<strong>ERROR</strong>: %s'), $error); ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    61
<?php } ?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    62
<form id="setup" method="post" action="install.php?step=2">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    63
	<table class="form-table">
0d28b7c10758 First commit
ymh
parents:
diff changeset
    64
		<tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    65
			<th scope="row"><label for="weblog_title"><?php _e('Blog Title'); ?></label></th>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    66
			<td><input name="weblog_title" type="text" id="weblog_title" size="25" value="<?php echo ( isset($_POST['weblog_title']) ? esc_attr($_POST['weblog_title']) : '' ); ?>" /></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    67
		</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    68
		<tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    69
			<th scope="row"><label for="admin_email"><?php _e('Your E-mail'); ?></label></th>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    70
			<td><input name="admin_email" type="text" id="admin_email" size="25" value="<?php echo ( isset($_POST['admin_email']) ? esc_attr($_POST['admin_email']) : '' ); ?>" /><br />
0d28b7c10758 First commit
ymh
parents:
diff changeset
    71
			<?php _e('Double-check your email address before continuing.'); ?></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    72
		</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    73
		<tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    74
			<td colspan="2"><label><input type="checkbox" name="blog_public" value="1" <?php checked($blog_public); ?> /> <?php _e('Allow my blog to appear in search engines like Google and Technorati.'); ?></label></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    75
		</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    76
	</table>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    77
	<p class="step"><input type="submit" name="Submit" value="<?php esc_attr_e('Install WordPress'); ?>" class="button" /></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    78
</form>
0d28b7c10758 First commit
ymh
parents:
diff changeset
    79
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
    80
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    81
0d28b7c10758 First commit
ymh
parents:
diff changeset
    82
// Let's check to make sure WP isn't already installed.
0d28b7c10758 First commit
ymh
parents:
diff changeset
    83
if ( is_blog_installed() ) {display_header(); die('<h1>'.__('Already Installed').'</h1><p>'.__('You appear to have already installed WordPress. To reinstall please clear your old database tables first.').'</p></body></html>');}
0d28b7c10758 First commit
ymh
parents:
diff changeset
    84
0d28b7c10758 First commit
ymh
parents:
diff changeset
    85
$php_version    = phpversion();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    86
$mysql_version  = $wpdb->db_version();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    87
$php_compat     = version_compare( $php_version, $required_php_version, '>=' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    88
$mysql_compat   = version_compare( $mysql_version, $required_mysql_version, '>=' ) || file_exists( WP_CONTENT_DIR . '/db.php' );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    89
0d28b7c10758 First commit
ymh
parents:
diff changeset
    90
if ( !$mysql_compat && !$php_compat )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    91
	$compat = sprintf( __('You cannot install because WordPress %1$s requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s.'), $wp_version, $required_php_version, $required_mysql_version, $php_version, $mysql_version );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    92
elseif ( !$php_compat )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    93
	$compat = sprintf( __('You cannot install because WordPress %1$s requires PHP version %2$s or higher. You are running version %3$s.'), $wp_version, $required_php_version, $php_version );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    94
elseif ( !$mysql_compat )
0d28b7c10758 First commit
ymh
parents:
diff changeset
    95
	$compat = sprintf( __('You cannot install because WordPress %1$s requires MySQL version %2$s or higher. You are running version %3$s.'), $wp_version, $required_mysql_version, $mysql_version );
0d28b7c10758 First commit
ymh
parents:
diff changeset
    96
0d28b7c10758 First commit
ymh
parents:
diff changeset
    97
if ( !$mysql_compat || !$php_compat ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
    98
	display_header();
0d28b7c10758 First commit
ymh
parents:
diff changeset
    99
	die('<h1>' . __('Insufficient Requirements') . '</h1><p>' . $compat . '</p></body></html>');
0d28b7c10758 First commit
ymh
parents:
diff changeset
   100
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   101
0d28b7c10758 First commit
ymh
parents:
diff changeset
   102
switch($step) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   103
	case 0:
0d28b7c10758 First commit
ymh
parents:
diff changeset
   104
	case 1: // in case people are directly linking to this
0d28b7c10758 First commit
ymh
parents:
diff changeset
   105
	  display_header();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   106
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   107
<h1><?php _e('Welcome'); ?></h1>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   108
<p><?php printf(__('Welcome to the famous five minute WordPress installation process! You may want to browse the <a href="%s">ReadMe documentation</a> at your leisure.  Otherwise, just fill in the information below and you&#8217;ll be on your way to using the most extendable and powerful personal publishing platform in the world.'), '../readme.html'); ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   109
<!--<h2 class="step"><a href="install.php?step=1"><?php _e('First Step'); ?></a></h2>-->
0d28b7c10758 First commit
ymh
parents:
diff changeset
   110
0d28b7c10758 First commit
ymh
parents:
diff changeset
   111
<h1><?php _e('Information needed'); ?></h1>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   112
<p><?php _e('Please provide the following information.  Don&#8217;t worry, you can always change these settings later.'); ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   113
0d28b7c10758 First commit
ymh
parents:
diff changeset
   114
0d28b7c10758 First commit
ymh
parents:
diff changeset
   115
0d28b7c10758 First commit
ymh
parents:
diff changeset
   116
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   117
		display_setup_form();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   118
		break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   119
	case 2:
0d28b7c10758 First commit
ymh
parents:
diff changeset
   120
		if ( !empty($wpdb->error) )
0d28b7c10758 First commit
ymh
parents:
diff changeset
   121
			wp_die($wpdb->error->get_error_message());
0d28b7c10758 First commit
ymh
parents:
diff changeset
   122
0d28b7c10758 First commit
ymh
parents:
diff changeset
   123
		display_header();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   124
		// Fill in the data we gathered
0d28b7c10758 First commit
ymh
parents:
diff changeset
   125
		$weblog_title = isset($_POST['weblog_title']) ? stripslashes($_POST['weblog_title']) : '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   126
		$admin_email = isset($_POST['admin_email']) ? stripslashes($_POST['admin_email']) : '';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   127
		$public = isset($_POST['blog_public']) ? (int) $_POST['blog_public'] : 0;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   128
		// check e-mail address
0d28b7c10758 First commit
ymh
parents:
diff changeset
   129
		$error = false;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   130
		if (empty($admin_email)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   131
			// TODO: poka-yoke
0d28b7c10758 First commit
ymh
parents:
diff changeset
   132
			display_setup_form( __('you must provide an e-mail address.') );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   133
			$error = true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   134
		} else if (!is_email($admin_email)) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   135
			// TODO: poka-yoke
0d28b7c10758 First commit
ymh
parents:
diff changeset
   136
			display_setup_form( __('that isn&#8217;t a valid e-mail address.  E-mail addresses look like: <code>username@example.com</code>') );
0d28b7c10758 First commit
ymh
parents:
diff changeset
   137
			$error = true;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   138
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   139
0d28b7c10758 First commit
ymh
parents:
diff changeset
   140
		if ( $error === false ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   141
			$wpdb->show_errors();
0d28b7c10758 First commit
ymh
parents:
diff changeset
   142
			$result = wp_install($weblog_title, 'admin', $admin_email, $public);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   143
			extract($result, EXTR_SKIP);
0d28b7c10758 First commit
ymh
parents:
diff changeset
   144
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   145
0d28b7c10758 First commit
ymh
parents:
diff changeset
   146
<h1><?php _e('Success!'); ?></h1>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   147
0d28b7c10758 First commit
ymh
parents:
diff changeset
   148
<p><?php printf(__('WordPress has been installed. Were you expecting more steps? Sorry to disappoint.'), ''); ?></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   149
0d28b7c10758 First commit
ymh
parents:
diff changeset
   150
<table class="form-table">
0d28b7c10758 First commit
ymh
parents:
diff changeset
   151
	<tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   152
		<th><?php _e('Username'); ?></th>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   153
		<td><code>admin</code></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   154
	</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   155
	<tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   156
		<th><?php _e('Password'); ?></th>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   157
		<td><?php if ( !empty( $password ) ) {
0d28b7c10758 First commit
ymh
parents:
diff changeset
   158
						echo '<code>'. $password .'</code><br />';
0d28b7c10758 First commit
ymh
parents:
diff changeset
   159
					}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   160
					echo '<p>'. $password_message .'</p>'; ?></td>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   161
	</tr>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   162
</table>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   163
0d28b7c10758 First commit
ymh
parents:
diff changeset
   164
<p class="step"><a href="../wp-login.php" class="button"><?php _e('Log In'); ?></a></p>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   165
0d28b7c10758 First commit
ymh
parents:
diff changeset
   166
<?php
0d28b7c10758 First commit
ymh
parents:
diff changeset
   167
		}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   168
		break;
0d28b7c10758 First commit
ymh
parents:
diff changeset
   169
}
0d28b7c10758 First commit
ymh
parents:
diff changeset
   170
?>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   171
<script type="text/javascript">var t = document.getElementById('weblog_title'); if (t){ t.focus(); }</script>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   172
</body>
0d28b7c10758 First commit
ymh
parents:
diff changeset
   173
</html>