Ticket #2622: install.diff

File install.diff, 6.5 KB (added by denney, 6 years ago)
  • install.php

     
    7878<?php 
    7979// Let's check to make sure WP isn't already installed. 
    8080$wpdb->hide_errors(); 
    81 $installed = $wpdb->get_results("SELECT * FROM $wpdb->users"); 
     81 
     82if (defined('CUSTOM_USER_TABLE')) { 
     83        $tables = $wpdb->get_col("SHOW TABLES",0); 
     84        if ($tables) { 
     85                foreach ($tables as $table ) { 
     86                        if ($table == CUSTOM_USER_TABLE) { 
     87                                $installed = $wpdb->get_results("SELECT * FROM $wpdb->posts"); 
     88                        } 
     89                } 
     90        } 
     91 
     92        if (!$installed) $installed = false; 
     93} else { 
     94        $installed = $wpdb->get_results("SELECT * FROM $wpdb->users"); 
     95} 
     96 
    8297if ($installed) 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>'); 
    8398$wpdb->show_errors(); 
    8499 
     
    103118<th width="33%"><?php _e('Weblog title:'); ?></th> 
    104119<td><input name="weblog_title" type="text" id="weblog_title" size="25" /></td> 
    105120</tr> 
     121 
     122<?php if (defined('CUSTOM_USER_TABLE') && $wpdb->get_col("SHOW TABLES",0)) { ?> 
    106123<tr> 
     124<th><?php _e('Already registered:'); ?></th> 
     125        <td><input name="registered" type="checkbox" id="registered" /></td> 
     126</tr> 
     127<?php } ?> 
     128 
     129<tr> 
    107130<th><?php _e('Your login name:'); ?></th> 
    108131        <td><input name="admin_login" type="text" id="admin_login" size="25" /></td> 
    109132</tr> 
     
    136159$admin_pass = stripslashes($_POST['admin_pass']); 
    137160$admin_pass_verify = stripslashes($_POST['admin_pass_verify']); 
    138161$admin_email = stripslashes($_POST['admin_email']); 
     162 
     163$registered = stripslashes($_POST['registered']); 
     164if ($registered == 'on') $already_registered = true; 
     165else $already_registered = false; 
     166 
    139167// check login name 
    140168if (empty($admin_login)) { 
    141169        die (__("<strong>ERROR</strong>: please type your login name")); 
     
    161189<?php 
    162190flush(); 
    163191 
     192if (defined('CUSTOM_USER_TABLE')) { 
     193        if ($already_registered) { 
     194                // Make sure the user matches. 
     195                $user_match = $wpdb->get_results("SELECT ID FROM $wpdb->users WHERE user_login='$admin_login' AND user_pass=MD5('$admin_pass') AND user_email='$admin_email'"); 
     196 
     197                if (!$user_match) die (__("<strong>ERROR</strong>: your user information doesn't match that in the database")); 
     198        } else { 
     199                if ($wpdb->get_col("SHOW TABLES",0)) { 
     200                        // Make sure the user doesn't already exist. 
     201                        $user_taken = $wpdb->get_results("SELECT ID FROM $wpdb->users WHERE user_login='$admin_login'"); 
     202 
     203                        if ($user_taken) die (__("<strong>ERROR</strong>: that username is already taken")); 
     204                } 
     205        } 
     206} 
     207         
     208 
    164209// Set everything up 
    165210wp_cache_flush(); 
    166211make_db_current_silent(); 
     
    181226// Default link category. 
    182227$wpdb->query("INSERT INTO $wpdb->linkcategories (cat_id, cat_name, sort_order) VALUES('0', '".$wpdb->escape(__('Uncategorized'))."', 'manual')"); 
    183228 
    184 // Set up admin user 
    185 $wpdb->query("INSERT INTO $wpdb->users (ID, user_login, user_pass, user_email, user_registered, display_name, user_nicename) VALUES ( '1', '$admin_login', MD5('$admin_pass'), '$admin_email', NOW(), '$admin_login', '$admin_login')"); 
    186 $wpdb->query("INSERT INTO $wpdb->usermeta (user_id, meta_key, meta_value) VALUES ({$wpdb->insert_id}, '{$table_prefix}user_level', '10');"); 
    187 $admin_caps = serialize(array('administrator' => true)); 
    188 $wpdb->query("INSERT INTO $wpdb->usermeta (user_id, meta_key, meta_value) VALUES ({$wpdb->insert_id}, '{$table_prefix}capabilities', '{$admin_caps}');"); 
     229if (defined('CUSTOM_USER_TABLE')) { 
     230        if (!$already_registered) { 
     231                // Need to create a new user. 
     232                $wpdb->query("INSERT INTO $wpdb->users (user_login, user_pass, user_email, user_registered, display_name, user_nicename) VALUES ( '$admin_login', MD5('$admin_pass'), '$admin_email', NOW(), '$admin_login', '$admin_login')"); 
     233                $last_id = $wpdb->insert_id; 
     234                $wpdb->query("INSERT INTO $wpdb->usermeta (user_id, meta_key, meta_value) VALUES ({$last_id}, '{$table_prefix}user_level', '10');"); 
     235                $admin_caps = serialize(array('administrator' => true)); 
     236                $wpdb->query("INSERT INTO $wpdb->usermeta (user_id, meta_key, meta_value) VALUES ({$last_id}, '{$table_prefix}capabilities', '{$admin_caps}');"); 
     237        } else { 
     238                $user_id = $wpdb->get_var("SELECT ID FROM $wpdb->users WHERE user_login='$admin_login'"); 
     239                $wpdb->query("INSERT INTO $wpdb->usermeta (user_id, meta_key, meta_value) VALUES ({$user_id}, '{$table_prefix}user_level', '10');"); 
     240                $admin_caps = serialize(array('administrator' => true)); 
     241                $wpdb->query("INSERT INTO $wpdb->usermeta (user_id, meta_key, meta_value) VALUES ({$user_id}, '{$table_prefix}capabilities', '{$admin_caps}');"); 
     242        } 
     243} else { 
     244        // Set up admin user 
     245        $wpdb->query("INSERT INTO $wpdb->users (ID, user_login, user_pass, user_email, user_registered, display_name, user_nicename) VALUES ( '1', '$admin_login', MD5('$admin_pass'), '$admin_email', NOW(), '$admin_login', '$admin_login')"); 
     246        $wpdb->query("INSERT INTO $wpdb->usermeta (user_id, meta_key, meta_value) VALUES ({$wpdb->insert_id}, '{$table_prefix}user_level', '10');"); 
     247        $admin_caps = serialize(array('administrator' => true)); 
     248        $wpdb->query("INSERT INTO $wpdb->usermeta (user_id, meta_key, meta_value) VALUES ({$wpdb->insert_id}, '{$table_prefix}capabilities', '{$admin_caps}');"); 
     249} 
    189250 
    190251// Let's activate some default plugins 
    191252$check_plugins = array(); 
     
    213274        do_action('activate_' . trim($plugin)); 
    214275} 
    215276 
    216 $message_headers = 'From: ' . $weblog_title . ' <wordpress@' . $_SERVER['SERVER_NAME'] . '>'; 
    217 $message = sprintf(__("Your new WordPress blog has been successfully set up at: 
     277if (!$already_registered) { 
     278        $message_headers = 'From: ' . $weblog_title . ' <wordpress@' . $_SERVER['SERVER_NAME'] . '>'; 
     279        $message = sprintf(__("Your new WordPress blog has been successfully set up at: 
    218280 
    219281%1\$s 
    220282 
     
    229291http://wordpress.org/ 
    230292"), $guessurl, $admin_login, $admin_pass); 
    231293 
    232 @wp_mail($admin_email, __('New WordPress Blog'), $message, $message_headers); 
     294        @wp_mail($admin_email, __('New WordPress Blog'), $message, $message_headers); 
     295} 
    233296 
    234297wp_cache_flush(); 
    235298?> 
     
    237300<p><em><?php _e('Finished!'); ?></em></p> 
    238301 
    239302<p><?php printf(__('Now you can <a href="%1$s">log in</a>.'), '../wp-login.php'); ?></p> 
     303<?php if ($already_registered) { ?> 
     304<p><?php _e('As you are already registered, you should already have a username and password! :P'); ?></p> 
     305<?php } else { ?> 
    240306<dl> 
    241307<dt><?php _e('Username'); ?></dt> 
    242308<dd><code><?php echo $admin_login; ?></code></dd> 
    243309        <dt><?php _e('Login address'); ?></dt> 
    244310<dd><a href="../wp-login.php">wp-login.php</a></dd> 
    245311</dl> 
     312<?php } ?> 
    246313<p><?php _e('Were you expecting more steps? Sorry to disappoint. All done! :)'); ?></p> 
    247314<?php 
    248315        break;