* Display install header.
*
* @since 2.5.0
+ *
+ * @param string $body_classes
*/
function display_header( $body_classes = '' ) {
header( 'Content-Type: text/html; charset=utf-8' );
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php _e( 'WordPress › Installation' ); ?></title>
<?php
- wp_admin_css( 'install', true );
+ wp_admin_css( 'install', true );
+ wp_admin_css( 'dashicons', true );
?>
</head>
<body class="wp-core-ui<?php echo $body_classes ?>">
* Display installer setup form.
*
* @since 2.8.0
+ *
+ * @param string|null $error
*/
function display_setup_form( $error = null ) {
global $wpdb;
echo '<input name="user_name" type="hidden" value="admin" />';
} else {
?><input name="user_name" type="text" id="user_login" size="25" value="<?php echo esc_attr( sanitize_user( $user_name, true ) ); ?>" />
- <p><?php _e( 'Usernames can have only alphanumeric characters, spaces, underscores, hyphens, periods and the @ symbol.' ); ?></p>
+ <p><?php _e( 'Usernames can have only alphanumeric characters, spaces, underscores, hyphens, periods, and the @ symbol.' ); ?></p>
<?php
} ?>
</td>
</tr>
<?php if ( ! $user_table ) : ?>
- <tr>
+ <tr class="form-field form-required user-pass1-wrap">
+ <th scope="row">
+ <label for="pass1">
+ <?php _e( 'Password' ); ?>
+ </label>
+ </th>
+ <td>
+ <div class="">
+ <?php $initial_password = isset( $_POST['admin_password'] ) ? stripslashes( $_POST['admin_password'] ) : wp_generate_password( 18 ); ?>
+ <input type="password" name="admin_password" id="pass1" class="regular-text" autocomplete="off" data-reveal="1" data-pw="<?php echo esc_attr( $initial_password ); ?>" aria-describedby="pass-strength-result" />
+ <button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-start-masked="<?php echo (int) isset( $_POST['admin_password'] ); ?>" data-toggle="0" aria-label="<?php esc_attr_e( 'Hide password' ); ?>">
+ <span class="dashicons dashicons-hidden"></span>
+ <span class="text"><?php _e( 'Hide' ); ?></span>
+ </button>
+ <div id="pass-strength-result" aria-live="polite"></div>
+ </div>
+ <p><span class="description important hide-if-no-js">
+ <strong><?php _e( 'Important:' ); ?></strong>
+ <?php /* translators: The non-breaking space prevents 1Password from thinking the text "log in" should trigger a password save prompt. */ ?>
+ <?php _e( 'You will need this password to log in. Please store it in a secure location.' ); ?></span></p>
+ </td>
+ </tr>
+ <tr class="form-field form-required user-pass2-wrap hide-if-js">
<th scope="row">
- <label for="pass1"><?php _e('Password, twice'); ?></label>
- <p><?php _e('A password will be automatically generated for you if you leave this blank.'); ?></p>
+ <label for="pass2"><?php _e( 'Repeat Password' ); ?>
+ <span class="description"><?php _e( '(required)' ); ?></span>
+ </label>
</th>
<td>
- <input name="admin_password" type="password" id="pass1" size="25" value="" />
- <p><input name="admin_password2" type="password" id="pass2" size="25" value="" /></p>
- <div id="pass-strength-result"><?php _e('Strength indicator'); ?></div>
- <p><?php _e('Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers, and symbols like ! " ? $ % ^ & ).'); ?></p>
+ <input name="admin_password2" type="password" id="pass2" autocomplete="off" />
+ </td>
+ </tr>
+ <tr class="pw-weak">
+ <th scope="row"><?php _e( 'Confirm Password' ); ?></th>
+ <td>
+ <label>
+ <input type="checkbox" name="pw_weak" class="pw-checkbox" />
+ <?php _e( 'Confirm use of weak password' ); ?>
+ </label>
</td>
</tr>
<?php endif; ?>
<p><?php _e( 'Double-check your email address before continuing.' ); ?></p></td>
</tr>
<tr>
- <th scope="row"><label for="blog_public"><?php _e( 'Privacy' ); ?></label></th>
- <td colspan="2"><label><input type="checkbox" name="blog_public" id="blog_public" value="1" <?php checked( $blog_public ); ?> /> <?php _e( 'Allow search engines to index this site.' ); ?></label></td>
+ <th scope="row"><?php _e( 'Privacy' ); ?></th>
+ <td colspan="2"><label><input type="checkbox" name="blog_public" id="blog_public" value="1" <?php checked( $blog_public ); ?> /> <?php _e( 'Allow search engines to index this site' ); ?></label></td>
</tr>
</table>
- <p class="step"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Install WordPress' ); ?>" class="button button-large" /></p>
+ <p class="step"><?php submit_button( __( 'Install WordPress' ), 'large', 'Submit', false, array( 'id' => 'submit' ) ); ?></p>
<input type="hidden" name="language" value="<?php echo isset( $_REQUEST['language'] ) ? esc_attr( $_REQUEST['language'] ) : ''; ?>" />
</form>
<?php
die( '<h1>' . __( 'Already Installed' ) . '</h1><p>' . __( 'You appear to have already installed WordPress. To reinstall please clear your old database tables first.' ) . '</p><p class="step"><a href="../wp-login.php" class="button button-large">' . __( 'Log In' ) . '</a></p></body></html>' );
}
+/**
+ * @global string $wp_version
+ * @global string $required_php_version
+ * @global string $required_mysql_version
+ * @global wpdb $wpdb
+ */
+global $wp_version, $required_php_version, $required_mysql_version;
+
$php_version = phpversion();
$mysql_version = $wpdb->db_version();
$php_compat = version_compare( $php_version, $required_php_version, '>=' );
$mysql_compat = version_compare( $mysql_version, $required_mysql_version, '>=' ) || file_exists( WP_CONTENT_DIR . '/db.php' );
if ( !$mysql_compat && !$php_compat )
- $compat = sprintf( __( 'You cannot install because <a href="http://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> 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 );
+ $compat = sprintf( __( 'You cannot install because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> 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 );
elseif ( !$php_compat )
- $compat = sprintf( __( 'You cannot install because <a href="http://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires PHP version %2$s or higher. You are running version %3$s.' ), $wp_version, $required_php_version, $php_version );
+ $compat = sprintf( __( 'You cannot install because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires PHP version %2$s or higher. You are running version %3$s.' ), $wp_version, $required_php_version, $php_version );
elseif ( !$mysql_compat )
- $compat = sprintf( __( 'You cannot install because <a href="http://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires MySQL version %2$s or higher. You are running version %3$s.' ), $wp_version, $required_mysql_version, $mysql_version );
+ $compat = sprintf( __( 'You cannot install because <a href="https://codex.wordpress.org/Version_%1$s">WordPress %1$s</a> requires MySQL version %2$s or higher. You are running version %3$s.' ), $wp_version, $required_mysql_version, $mysql_version );
if ( !$mysql_compat || !$php_compat ) {
display_header();
die( '<h1>' . __( 'Configuration Error' ) . '</h1><p>' . __( 'Your <code>wp-config.php</code> file has an empty database table prefix, which is not supported.' ) . '</p></body></html>' );
}
+// Set error message if DO_NOT_UPGRADE_GLOBAL_TABLES isn't set as it will break install.
+if ( defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) {
+ display_header();
+ die( '<h1>' . __( 'Configuration Error' ) . '</h1><p>' . __( 'The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when installing WordPress.' ) . '</p></body></html>' );
+}
+
+/**
+ * @global string $wp_local_package
+ * @global WP_Locale $wp_locale
+ */
$language = '';
if ( ! empty( $_REQUEST['language'] ) ) {
$language = preg_replace( '/[^a-zA-Z_]/', '', $_REQUEST['language'] );
// TODO: poka-yoke
display_setup_form( __( 'Your passwords do not match. Please try again.' ) );
$error = true;
- } else if ( empty( $admin_email ) ) {
+ } elseif ( empty( $admin_email ) ) {
// TODO: poka-yoke
display_setup_form( __( 'You must provide an email address.' ) );
$error = true;
<?php } ?>
<?php wp_print_scripts( 'user-profile' ); ?>
<?php wp_print_scripts( 'language-chooser' ); ?>
+<script type="text/javascript">
+jQuery( function( $ ) {
+ $( '.hide-if-no-js' ).removeClass( 'hide-if-no-js' );
+} );
+</script>
</body>
</html>