wp-signup.php 21.6 KB
Newer Older
godog's avatar
godog committed
1
2
3
4
5
<?php

/** Sets up the WordPress Environment. */
require( dirname(__FILE__) . '/wp-load.php' );

root's avatar
root committed
6
add_action( 'wp_head', 'wp_no_robots' );
godog's avatar
godog committed
7
8
9
10
11
12
13
14

require( './wp-blog-header.php' );

if ( is_array( get_site_option( 'illegal_names' )) && isset( $_GET[ 'new' ] ) && in_array( $_GET[ 'new' ], get_site_option( 'illegal_names' ) ) == true ) {
	wp_redirect( network_home_url() );
	die();
}

lechuck's avatar
lechuck committed
15
16
17
18
19
/**
 * Prints signup_header via wp_head
 *
 * @since MU
 */
godog's avatar
godog committed
20
function do_signup_header() {
shammash's avatar
shammash committed
21
	do_action( 'signup_header' );
godog's avatar
godog committed
22
23
24
25
}
add_action( 'wp_head', 'do_signup_header' );

if ( !is_multisite() ) {
root's avatar
root committed
26
	wp_redirect( site_url('wp-login.php?action=register') );
godog's avatar
godog committed
27
28
29
30
	die();
}

if ( !is_main_site() ) {
lechuck's avatar
lechuck committed
31
	wp_redirect( network_site_url( 'wp-signup.php' ) );
godog's avatar
godog committed
32
33
34
35
36
37
	die();
}

// Fix for page title
$wp_query->is_404 = false;

lechuck's avatar
lechuck committed
38
39
40
41
42
/**
 * Prints styles for front-end Multisite signup pages
 *
 * @since MU
 */
godog's avatar
godog committed
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
function wpmu_signup_stylesheet() {
	?>
	<style type="text/css">
		.mu_register { width: 90%; margin:0 auto; }
		.mu_register form { margin-top: 2em; }
		.mu_register .error { font-weight:700; padding:10px; color:#333333; background:#FFEBE8; border:1px solid #CC0000; }
		.mu_register input[type="submit"],
			.mu_register #blog_title,
			.mu_register #user_email,
			.mu_register #blogname,
			.mu_register #user_name { width:100%; font-size: 24px; margin:5px 0; }
		.mu_register .prefix_address,
			.mu_register .suffix_address {font-size: 18px;display:inline; }
		.mu_register label { font-weight:700; font-size:15px; display:block; margin:10px 0; }
		.mu_register label.checkbox { display:inline; }
		.mu_register .mu_alert { font-weight:700; padding:10px; color:#333333; background:#ffffe0; border:1px solid #e6db55; }
	</style>
	<?php
}

add_action( 'wp_head', 'wpmu_signup_stylesheet' );
get_header();

do_action( 'before_signup_form' );
?>
<div id="content" class="widecolumn">
<div class="mu_register">
<?php
lechuck's avatar
lechuck committed
71
72
73
74
75
76
77
78
79
/**
 * Generates and displays the Signup and Create Site forms
 *
 * @since MU
 *
 * @param string $blogname The new site name
 * @param string $blog_title The new site title
 * @param array $errors
 */
godog's avatar
godog committed
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
function show_blog_form($blogname = '', $blog_title = '', $errors = '') {
	global $current_site;
	// Blog name
	if ( !is_subdomain_install() )
		echo '<label for="blogname">' . __('Site Name:') . '</label>';
	else
		echo '<label for="blogname">' . __('Site Domain:') . '</label>';

	if ( $errmsg = $errors->get_error_message('blogname') ) { ?>
		<p class="error"><?php echo $errmsg ?></p>
	<?php }

	if ( !is_subdomain_install() )
		echo '<span class="prefix_address">' . $current_site->domain . $current_site->path . '</span><input name="blogname" type="text" id="blogname" value="'. esc_attr($blogname) .'" maxlength="60" /><br />';
	else
		echo '<input name="blogname" type="text" id="blogname" value="'.esc_attr($blogname).'" maxlength="60" /><span class="suffix_address">.' . ( $site_domain = preg_replace( '|^www\.|', '', $current_site->domain ) ) . '</span><br />';

	if ( !is_user_logged_in() ) {
		if ( !is_subdomain_install() )
root's avatar
root committed
99
			$site = $current_site->domain . $current_site->path . __( 'sitename' );
godog's avatar
godog committed
100
		else
root's avatar
root committed
101
102
			$site = __( 'domain' ) . '.' . $site_domain . $current_site->path;
		echo '<p>(<strong>' . sprintf( __('Your address will be %s.'), $site ) . '</strong>) ' . __( 'Must be at least 4 characters, letters and numbers only. It cannot be changed, so choose carefully!' ) . '</p>';
godog's avatar
godog committed
103
104
105
106
107
108
109
110
111
112
113
114
115
116
	}

	// Blog Title
	?>
	<label for="blog_title"><?php _e('Site Title:') ?></label>
	<?php if ( $errmsg = $errors->get_error_message('blog_title') ) { ?>
		<p class="error"><?php echo $errmsg ?></p>
	<?php }
	echo '<input name="blog_title" type="text" id="blog_title" value="'.esc_attr($blog_title).'" />';
	?>

	<div id="privacy">
        <p class="privacy-intro">
            <label for="blog_public_on"><?php _e('Privacy:') ?></label>
lechuck's avatar
lechuck committed
117
            <?php _e( 'Allow search engines to index this site.' ); ?>
godog's avatar
godog committed
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
            <br style="clear:both" />
            <label class="checkbox" for="blog_public_on">
                <input type="radio" id="blog_public_on" name="blog_public" value="1" <?php if ( !isset( $_POST['blog_public'] ) || $_POST['blog_public'] == '1' ) { ?>checked="checked"<?php } ?> />
                <strong><?php _e( 'Yes' ); ?></strong>
            </label>
            <label class="checkbox" for="blog_public_off">
                <input type="radio" id="blog_public_off" name="blog_public" value="0" <?php if ( isset( $_POST['blog_public'] ) && $_POST['blog_public'] == '0' ) { ?>checked="checked"<?php } ?> />
                <strong><?php _e( 'No' ); ?></strong>
            </label>
        </p>
	</div>

	<?php
	do_action('signup_blogform', $errors);
}

lechuck's avatar
lechuck committed
134
135
136
137
138
139
140
141
142
/**
 * Validate the new site signup
 *
 * @since MU
 *
 * @uses wp_get_current_user() to retrieve the current user
 * @uses wpmu_validate_blog_signup() to validate new site signup for the current user
 * @return array Contains the new site data and error messages.
 */
godog's avatar
godog committed
143
144
145
146
147
148
149
150
function validate_blog_form() {
	$user = '';
	if ( is_user_logged_in() )
		$user = wp_get_current_user();

	return wpmu_validate_blog_signup($_POST['blogname'], $_POST['blog_title'], $user);
}

lechuck's avatar
lechuck committed
151
152
153
154
155
156
157
158
159
/**
 * Display user registration form
 *
 * @since MU
 *
 * @param string $user_name The entered username
 * @param string $user_email The entered email address
 * @param array $errors
 */
godog's avatar
godog committed
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
function show_user_form($user_name = '', $user_email = '', $errors = '') {
	// User name
	echo '<label for="user_name">' . __('Username:') . '</label>';
	if ( $errmsg = $errors->get_error_message('user_name') ) {
		echo '<p class="error">'.$errmsg.'</p>';
	}
	echo '<input name="user_name" type="text" id="user_name" value="'. esc_attr($user_name) .'" maxlength="60" /><br />';
	_e( '(Must be at least 4 characters, letters and numbers only.)' );
	?>

	<label for="user_email"><?php _e( 'Email&nbsp;Address:' ) ?></label>
	<?php if ( $errmsg = $errors->get_error_message('user_email') ) { ?>
		<p class="error"><?php echo $errmsg ?></p>
	<?php } ?>
	<input name="user_email" type="text" id="user_email" value="<?php  echo esc_attr($user_email) ?>" maxlength="200" /><br /><?php _e('We send your registration email to this address. (Double-check your email address before continuing.)') ?>
	<?php
	if ( $errmsg = $errors->get_error_message('generic') ) {
		echo '<p class="error">' . $errmsg . '</p>';
	}
	do_action( 'signup_extra_fields', $errors );
}

lechuck's avatar
lechuck committed
182
183
184
185
186
187
188
189
/**
 * Validate user signup name and email
 *
 * @since MU
 *
 * @uses wpmu_validate_user_signup() to retrieve an array of user data
 * @return array Contains username, email, and error messages.
 */
godog's avatar
godog committed
190
191
192
193
function validate_user_form() {
	return wpmu_validate_user_signup($_POST['user_name'], $_POST['user_email']);
}

lechuck's avatar
lechuck committed
194
195
196
197
198
199
200
201
202
203
/**
 * Allow returning users to sign up for another site
 *
 * @since MU
 *
 * @uses wp_get_current_user() to get the current user
 * @param string $blogname The new site name
 * @param string $blog_title The new blog title
 * @param array $errors
 */
godog's avatar
godog committed
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
function signup_another_blog($blogname = '', $blog_title = '', $errors = '') {
	global $current_site;
	$current_user = wp_get_current_user();

	if ( ! is_wp_error($errors) ) {
		$errors = new WP_Error();
	}

	// allow definition of default variables
	$filtered_results = apply_filters('signup_another_blog_init', array('blogname' => $blogname, 'blog_title' => $blog_title, 'errors' => $errors ));
	$blogname = $filtered_results['blogname'];
	$blog_title = $filtered_results['blog_title'];
	$errors = $filtered_results['errors'];

	echo '<h2>' . sprintf( __( 'Get <em>another</em> %s site in seconds' ), $current_site->site_name ) . '</h2>';

	if ( $errors->get_error_code() ) {
		echo '<p>' . __( 'There was a problem, please correct the form below and try again.' ) . '</p>';
	}
	?>
	<p><?php printf( __( 'Welcome back, %s. By filling out the form below, you can <strong>add another site to your account</strong>. There is no limit to the number of sites you can have, so create to your heart&#8217;s content, but write responsibly!' ), $current_user->display_name ) ?></p>

	<?php
	$blogs = get_blogs_of_user($current_user->ID);
	if ( !empty($blogs) ) { ?>

			<p><?php _e( 'Sites you are already a member of:' ) ?></p>
			<ul>
				<?php foreach ( $blogs as $blog ) {
					$home_url = get_home_url( $blog->userblog_id );
					echo '<li><a href="' . esc_url( $home_url ) . '">' . $home_url . '</a></li>';
				} ?>
			</ul>
	<?php } ?>

	<p><?php _e( 'If you&#8217;re not going to use a great site domain, leave it for a new user. Now have at it!' ) ?></p>
	<form id="setupform" method="post" action="wp-signup.php">
		<input type="hidden" name="stage" value="gimmeanotherblog" />
shammash's avatar
shammash committed
242
		<?php do_action( 'signup_hidden_fields' ); ?>
godog's avatar
godog committed
243
244
245
246
247
248
		<?php show_blog_form($blogname, $blog_title, $errors); ?>
		<p class="submit"><input type="submit" name="submit" class="submit" value="<?php esc_attr_e( 'Create Site' ) ?>" /></p>
	</form>
	<?php
}

lechuck's avatar
lechuck committed
249
250
251
252
253
254
255
256
257
258
/**
 * Validate a new blog signup
 *
 * @since MU
 *
 * @uses wp_get_current_user() to retrieve the current user
 * @uses wpmu_create_blog() to add a new site
 * @uses confirm_another_blog_signup() to confirm the user's new site signup
 * @return bool True if blog signup was validated, false if error
 */
godog's avatar
godog committed
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
function validate_another_blog_signup() {
	global $wpdb, $blogname, $blog_title, $errors, $domain, $path;
	$current_user = wp_get_current_user();
	if ( !is_user_logged_in() )
		die();

	$result = validate_blog_form();
	extract($result);

	if ( $errors->get_error_code() ) {
		signup_another_blog($blogname, $blog_title, $errors);
		return false;
	}

	$public = (int) $_POST['blog_public'];
	$meta = apply_filters( 'signup_create_blog_meta', array( 'lang_id' => 1, 'public' => $public ) ); // deprecated
	$meta = apply_filters( 'add_signup_meta', $meta );

root's avatar
root committed
277
	wpmu_create_blog( $domain, $path, $blog_title, $current_user->ID, $meta, $wpdb->siteid );
godog's avatar
godog committed
278
279
280
281
	confirm_another_blog_signup($domain, $path, $blog_title, $current_user->user_login, $current_user->user_email, $meta);
	return true;
}

lechuck's avatar
lechuck committed
282
283
284
285
286
287
288
289
290
291
292
293
/**
 * Confirm a new site signup
 *
 * @since MU
 *
 * @param string $domain The domain URL
 * @param string $path The site root path
 * @param string $user_name The username
 * @param string $user_email The user's email address
 * @param array $meta Any additional meta from the 'add_signup_meta' filter in validate_blog_signup()
 */
function confirm_another_blog_signup( $domain, $path, $blog_title, $user_name, $user_email = '', $meta = array() ) {
godog's avatar
godog committed
294
295
296
	?>
	<h2><?php printf( __( 'The site %s is yours.' ), "<a href='http://{$domain}{$path}'>{$blog_title}</a>" ) ?></h2>
	<p>
lechuck's avatar
lechuck committed
297
		<?php printf( __( '<a href="http://%1$s">http://%2$s</a> is your new site. <a href="%3$s">Log in</a> as &#8220;%4$s&#8221; using your existing password.' ), $domain.$path, $domain.$path, "http://" . $domain.$path . "wp-login.php", $user_name ) ?>
godog's avatar
godog committed
298
299
300
301
302
	</p>
	<?php
	do_action( 'signup_finished' );
}

lechuck's avatar
lechuck committed
303
304
305
306
307
308
309
310
311
312
313
/**
 * Setup the new user signup process
 *
 * @since MU
 *
 * @uses apply_filters() filter $filtered_results
 * @uses show_user_form() to display the user registration form
 * @param string $user_name The username
 * @param string $user_email The user's email
 * @param array $errors
 */
godog's avatar
godog committed
314
315
316
317
318
319
function signup_user($user_name = '', $user_email = '', $errors = '') {
	global $current_site, $active_signup;

	if ( !is_wp_error($errors) )
		$errors = new WP_Error();

lechuck's avatar
lechuck committed
320
	$signup_for = isset( $_POST[ 'signup_for' ] ) ? esc_html( $_POST[ 'signup_for' ] ) : 'blog';
godog's avatar
godog committed
321
322
323
324
325
326
327
328
329
330
331
332

	// allow definition of default variables
	$filtered_results = apply_filters('signup_user_init', array('user_name' => $user_name, 'user_email' => $user_email, 'errors' => $errors ));
	$user_name = $filtered_results['user_name'];
	$user_email = $filtered_results['user_email'];
	$errors = $filtered_results['errors'];

	?>

	<h2><?php printf( __( 'Get your own %s account in seconds' ), $current_site->site_name ) ?></h2>
	<form id="setupform" method="post" action="wp-signup.php">
		<input type="hidden" name="stage" value="validate-user-signup" />
shammash's avatar
shammash committed
333
		<?php do_action( 'signup_hidden_fields' ); ?>
godog's avatar
godog committed
334
335
336
337
338
339
340
341
		<?php show_user_form($user_name, $user_email, $errors); ?>

		<p>
		<?php if ( $active_signup == 'blog' ) { ?>
			<input id="signupblog" type="hidden" name="signup_for" value="blog" />
		<?php } elseif ( $active_signup == 'user' ) { ?>
			<input id="signupblog" type="hidden" name="signup_for" value="user" />
		<?php } else { ?>
lechuck's avatar
lechuck committed
342
			<input id="signupblog" type="radio" name="signup_for" value="blog" <?php checked( $signup_for, 'blog' ); ?> />
godog's avatar
godog committed
343
344
			<label class="checkbox" for="signupblog"><?php _e('Gimme a site!') ?></label>
			<br />
lechuck's avatar
lechuck committed
345
			<input id="signupuser" type="radio" name="signup_for" value="user" <?php checked( $signup_for, 'user' ); ?> />
godog's avatar
godog committed
346
347
348
349
350
351
352
353
354
			<label class="checkbox" for="signupuser"><?php _e('Just a username, please.') ?></label>
		<?php } ?>
		</p>

		<p class="submit"><input type="submit" name="submit" class="submit" value="<?php esc_attr_e('Next') ?>" /></p>
	</form>
	<?php
}

lechuck's avatar
lechuck committed
355
356
357
358
359
360
361
362
363
364
/**
 * Validate the new user signup
 *
 * @since MU
 *
 * @uses validate_user_form() to retrieve an array of the user data
 * @uses wpmu_signup_user() to signup the new user
 * @uses confirm_user_signup() to confirm the new user signup
 * @return bool True if new user signup was validated, false if error
 */
godog's avatar
godog committed
365
366
367
368
369
370
371
372
373
374
375
376
377
378
function validate_user_signup() {
	$result = validate_user_form();
	extract($result);

	if ( $errors->get_error_code() ) {
		signup_user($user_name, $user_email, $errors);
		return false;
	}

	if ( 'blog' == $_POST['signup_for'] ) {
		signup_blog($user_name, $user_email);
		return false;
	}

shammash's avatar
shammash committed
379
	wpmu_signup_user($user_name, $user_email, apply_filters( 'add_signup_meta', array() ) );
godog's avatar
godog committed
380
381
382
383
384

	confirm_user_signup($user_name, $user_email);
	return true;
}

lechuck's avatar
lechuck committed
385
386
387
388
389
390
391
392
/**
 * New user signup confirmation
 *
 * @since MU
 *
 * @param string $user_name The username
 * @param string $user_email The user's email address
 */
godog's avatar
godog committed
393
394
395
396
function confirm_user_signup($user_name, $user_email) {
	?>
	<h2><?php printf( __( '%s is your new username' ), $user_name) ?></h2>
	<p><?php _e( 'But, before you can start using your new username, <strong>you must activate it</strong>.' ) ?></p>
lechuck's avatar
lechuck committed
397
	<p><?php printf( __( 'Check your inbox at <strong>%s</strong> and click the link given.' ), $user_email ); ?></p>
godog's avatar
godog committed
398
399
400
401
402
	<p><?php _e( 'If you do not activate your username within two days, you will have to sign up again.' ); ?></p>
	<?php
	do_action( 'signup_finished' );
}

lechuck's avatar
lechuck committed
403
404
405
406
407
408
409
410
411
412
413
414
415
/**
 * Setup the new site signup
 *
 * @since MU
 *
 * @uses apply_filters() to filter $filtered_results
 * @uses show_blog_form() to display the blog signup form
 * @param string $user_name The username
 * @param string $user_email The user's email address
 * @param string $blogname The site name
 * @param string $blog_title The site title
 * @param array $errors
 */
godog's avatar
godog committed
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
function signup_blog($user_name = '', $user_email = '', $blogname = '', $blog_title = '', $errors = '') {
	if ( !is_wp_error($errors) )
		$errors = new WP_Error();

	// allow definition of default variables
	$filtered_results = apply_filters('signup_blog_init', array('user_name' => $user_name, 'user_email' => $user_email, 'blogname' => $blogname, 'blog_title' => $blog_title, 'errors' => $errors ));
	$user_name = $filtered_results['user_name'];
	$user_email = $filtered_results['user_email'];
	$blogname = $filtered_results['blogname'];
	$blog_title = $filtered_results['blog_title'];
	$errors = $filtered_results['errors'];

	if ( empty($blogname) )
		$blogname = $user_name;
	?>
	<form id="setupform" method="post" action="wp-signup.php">
		<input type="hidden" name="stage" value="validate-blog-signup" />
		<input type="hidden" name="user_name" value="<?php echo esc_attr($user_name) ?>" />
		<input type="hidden" name="user_email" value="<?php echo esc_attr($user_email) ?>" />
shammash's avatar
shammash committed
435
		<?php do_action( 'signup_hidden_fields' ); ?>
godog's avatar
godog committed
436
437
438
439
440
441
		<?php show_blog_form($blogname, $blog_title, $errors); ?>
		<p class="submit"><input type="submit" name="submit" class="submit" value="<?php esc_attr_e('Signup') ?>" /></p>
	</form>
	<?php
}

lechuck's avatar
lechuck committed
442
443
444
445
446
447
448
449
450
451
452
453
/**
 * Validate new site signup
 *
 * @since MU
 *
 * @uses wpmu_validate_user_signup() to retrieve an array of the new user data and errors
 * @uses wpmu_validate_blog_signup() to retrieve an array of the new site data and errors
 * @uses apply_filters() to make signup $meta filterable
 * @uses signup_user() to signup a new user
 * @uses signup_blog() to signup a the new user to a new site
 * @return bool True if the site signup was validated, false if error
 */
godog's avatar
godog committed
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
function validate_blog_signup() {
	// Re-validate user info.
	$result = wpmu_validate_user_signup($_POST['user_name'], $_POST['user_email']);
	extract($result);

	if ( $errors->get_error_code() ) {
		signup_user($user_name, $user_email, $errors);
		return false;
	}

	$result = wpmu_validate_blog_signup($_POST['blogname'], $_POST['blog_title']);
	extract($result);

	if ( $errors->get_error_code() ) {
		signup_blog($user_name, $user_email, $blogname, $blog_title, $errors);
		return false;
	}

	$public = (int) $_POST['blog_public'];
	$meta = array ('lang_id' => 1, 'public' => $public);
shammash's avatar
shammash committed
474
	$meta = apply_filters( 'add_signup_meta', $meta );
godog's avatar
godog committed
475
476
477
478
479
480

	wpmu_signup_blog($domain, $path, $blog_title, $user_name, $user_email, $meta);
	confirm_blog_signup($domain, $path, $blog_title, $user_name, $user_email, $meta);
	return true;
}

lechuck's avatar
lechuck committed
481
482
483
484
485
486
487
488
489
490
491
492
493
/**
 * New site signup confirmation
 *
 * @since MU
 *
 * @param string $domain The domain URL
 * @param string $path The site root path
 * @param string $blog_title The new site title
 * @param string $user_name The user's username
 * @param string $user_email The user's email address
 * @param array $meta Any additional meta from the 'add_signup_meta' filter in validate_blog_signup()
 */
function confirm_blog_signup( $domain, $path, $blog_title, $user_name = '', $user_email = '', $meta = array() ) {
godog's avatar
godog committed
494
495
496
497
498
499
500
501
502
503
504
505
	?>
	<h2><?php printf( __( 'Congratulations! Your new site, %s, is almost ready.' ), "<a href='http://{$domain}{$path}'>{$blog_title}</a>" ) ?></h2>

	<p><?php _e( 'But, before you can start using your site, <strong>you must activate it</strong>.' ) ?></p>
	<p><?php printf( __( 'Check your inbox at <strong>%s</strong> and click the link given.' ),  $user_email) ?></p>
	<p><?php _e( 'If you do not activate your site within two days, you will have to sign up again.' ); ?></p>
	<h2><?php _e( 'Still waiting for your email?' ); ?></h2>
	<p>
		<?php _e( 'If you haven&#8217;t received your email yet, there are a number of things you can do:' ) ?>
		<ul id="noemail-tips">
			<li><p><strong><?php _e( 'Wait a little longer. Sometimes delivery of email can be delayed by processes outside of our control.' ) ?></strong></p></li>
			<li><p><?php _e( 'Check the junk or spam folder of your email client. Sometime emails wind up there by mistake.' ) ?></p></li>
lechuck's avatar
lechuck committed
506
			<li><?php printf( __( 'Have you entered your email correctly? You have entered %s, if it&#8217;s incorrect, you will not receive your email.' ), $user_email ) ?></li>
godog's avatar
godog committed
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
		</ul>
	</p>
	<?php
	do_action( 'signup_finished' );
}

// Main
$active_signup = get_site_option( 'registration' );
if ( !$active_signup )
	$active_signup = 'all';

$active_signup = apply_filters( 'wpmu_active_signup', $active_signup ); // return "all", "none", "blog" or "user"

// Make the signup type translatable.
$i18n_signup['all'] = _x('all', 'Multisite active signup type');
$i18n_signup['none'] = _x('none', 'Multisite active signup type');
$i18n_signup['blog'] = _x('blog', 'Multisite active signup type');
$i18n_signup['user'] = _x('user', 'Multisite active signup type');

if ( is_super_admin() )
root's avatar
root committed
527
	echo '<div class="mu_alert">' . sprintf( __( 'Greetings Site Administrator! You are currently allowing &#8220;%s&#8221; registrations. To change or disable registration go to your <a href="%s">Options page</a>.' ), $i18n_signup[$active_signup], esc_url( network_admin_url( 'settings.php' ) ) ) . '</div>';
godog's avatar
godog committed
528
529
530
531

$newblogname = isset($_GET['new']) ? strtolower(preg_replace('/^-|-$|[^-a-zA-Z0-9]/', '', $_GET['new'])) : null;

$current_user = wp_get_current_user();
shammash's avatar
shammash committed
532
if ( $active_signup == 'none' ) {
godog's avatar
godog committed
533
534
	_e( 'Registration has been disabled.' );
} elseif ( $active_signup == 'blog' && !is_user_logged_in() ) {
lechuck's avatar
lechuck committed
535
	$login_url = site_url( 'wp-login.php?redirect_to=' . urlencode( network_site_url( 'wp-signup.php' ) ) );
godog's avatar
godog committed
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
	echo sprintf( __( 'You must first <a href="%s">log in</a>, and then you can create a new site.' ), $login_url );
} else {
	$stage = isset( $_POST['stage'] ) ?  $_POST['stage'] : 'default';
	switch ( $stage ) {
		case 'validate-user-signup' :
			if ( $active_signup == 'all' || $_POST[ 'signup_for' ] == 'blog' && $active_signup == 'blog' || $_POST[ 'signup_for' ] == 'user' && $active_signup == 'user' )
				validate_user_signup();
			else
				_e( 'User registration has been disabled.' );
		break;
		case 'validate-blog-signup':
			if ( $active_signup == 'all' || $active_signup == 'blog' )
				validate_blog_signup();
			else
				_e( 'Site registration has been disabled.' );
			break;
		case 'gimmeanotherblog':
			validate_another_blog_signup();
			break;
		case 'default':
		default :
			$user_email = isset( $_POST[ 'user_email' ] ) ? $_POST[ 'user_email' ] : '';
shammash's avatar
shammash committed
558
			do_action( 'preprocess_signup_form' ); // populate the form from invites, elsewhere?
godog's avatar
godog committed
559
560
561
562
563
564
565
566
567
568
569
570
571
			if ( is_user_logged_in() && ( $active_signup == 'all' || $active_signup == 'blog' ) )
				signup_another_blog($newblogname);
			elseif ( is_user_logged_in() == false && ( $active_signup == 'all' || $active_signup == 'user' ) )
				signup_user( $newblogname, $user_email );
			elseif ( is_user_logged_in() == false && ( $active_signup == 'blog' ) )
				_e( 'Sorry, new registrations are not allowed at this time.' );
			else
				_e( 'You are logged in already. No need to register again!' );

			if ( $newblogname ) {
				$newblog = get_blogaddress_by_name( $newblogname );

				if ( $active_signup == 'blog' || $active_signup == 'all' )
lechuck's avatar
lechuck committed
572
					printf( '<p><em>' . __( 'The site you were looking for, <strong>%s</strong>, does not exist, but you can create it now!' ) . '</em></p>', $newblog );
godog's avatar
godog committed
573
				else
lechuck's avatar
lechuck committed
574
					printf( '<p><em>' . __( 'The site you were looking for, <strong>%s</strong>, does not exist.' ) . '</em></p>', $newblog );
godog's avatar
godog committed
575
576
577
578
579
580
581
582
583
584
			}
			break;
	}
}
?>
</div>
</div>
<?php do_action( 'after_signup_form' ); ?>

<?php get_footer(); ?>