', $subdirectory_reserved_names ) ) );
- }
-
- $email = sanitize_email( $blog['email'] );
- $title = $blog['title'];
-
- if ( empty( $domain ) )
- wp_die( __( 'Missing or invalid site address.' ) );
- if ( empty( $email ) )
- wp_die( __( 'Missing email address.' ) );
- if ( !is_email( $email ) )
- wp_die( __( 'Invalid email address.' ) );
-
- if ( is_subdomain_install() ) {
- $newdomain = $domain . '.' . preg_replace( '|^www\.|', '', $current_site->domain );
- $path = $base;
- } else {
- $newdomain = $current_site->domain;
- $path = $base . $domain . '/';
- }
-
- $password = 'N/A';
- $user_id = email_exists($email);
- if ( !$user_id ) { // Create a new user with a random password
- $password = wp_generate_password();
- $user_id = wpmu_create_user( $domain, $password, $email );
- if ( false == $user_id )
- wp_die( __( 'There was an error creating the user.' ) );
- else
- wp_new_user_notification( $user_id, $password );
- }
-
- $wpdb->hide_errors();
- $id = wpmu_create_blog( $newdomain, $path, $title, $user_id , array( 'public' => 1 ), $current_site->id );
- $wpdb->show_errors();
- if ( !is_wp_error( $id ) ) {
- $dashboard_blog = get_dashboard_blog();
- if ( !is_super_admin( $user_id ) && get_user_option( 'primary_blog', $user_id ) == $dashboard_blog->blog_id )
- update_user_option( $user_id, 'primary_blog', $id, true );
- $content_mail = sprintf( __( "New site created by %1s\n\nAddress: http://%2s\nName: %3s"), $current_user->user_login , $newdomain . $path, stripslashes( $title ) );
- wp_mail( get_site_option('admin_email'), sprintf( __( '[%s] New Site Created' ), $current_site->site_name ), $content_mail, 'From: "Site Admin" <' . get_site_option( 'admin_email' ) . '>' );
- wpmu_welcome_notification( $id, $user_id, $password, $title, array( 'public' => 1 ) );
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'add-blog' ), wp_get_referer() ) );
- exit();
- } else {
- wp_die( $id->get_error_message() );
- }
- break;
-
- case 'updateblog':
- check_admin_referer( 'editblog' );
- if ( ! current_user_can( 'manage_sites' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- if ( empty( $_POST ) )
- wp_die( sprintf( __( 'You probably need to go back to the sites page', esc_url( admin_url( 'ms-sites.php' ) ) ) ) );
-
- switch_to_blog( $id );
-
- // themes
- $allowedthemes = array();
- if ( isset($_POST['theme']) && is_array( $_POST['theme'] ) ) {
- foreach ( $_POST['theme'] as $theme => $val ) {
- if ( 'on' == $val )
- $allowedthemes[$theme] = true;
- }
- }
- update_option( 'allowedthemes', $allowedthemes );
-
- // options
- if ( is_array( $_POST['option'] ) ) {
- $c = 1;
- $count = count( $_POST['option'] );
- $skip_options = array( 'allowedthemes' ); // Don't update these options since they are handled elsewhere in the form.
- foreach ( (array) $_POST['option'] as $key => $val ) {
- if ( $key === 0 || is_array( $val ) || in_array($key, $skip_options) )
- continue; // Avoids "0 is a protected WP option and may not be modified" error when edit blog options
- if ( $c == $count )
- update_option( $key, stripslashes( $val ) );
- else
- update_option( $key, stripslashes( $val ), false ); // no need to refresh blog details yet
- $c++;
- }
- }
-
- // home and siteurl
- if ( isset( $_POST['update_home_url'] ) && $_POST['update_home_url'] == 'update' ) {
- $blog_address = get_blogaddress_by_domain( $_POST['blog']['domain'], $_POST['blog']['path'] );
- if ( get_option( 'siteurl' ) != $blog_address )
- update_option( 'siteurl', $blog_address );
-
- if ( get_option( 'home' ) != $blog_address )
- update_option( 'home', $blog_address );
- }
-
- // rewrite rules can't be flushed during switch to blog
- delete_option( 'rewrite_rules' );
-
- // update blogs table
- $blog_data = stripslashes_deep( $_POST['blog'] );
- update_blog_details( $id, $blog_data );
-
- // get blog prefix
- $blog_prefix = $wpdb->get_blog_prefix( $id );
-
- // user roles
- if ( isset( $_POST['role'] ) && is_array( $_POST['role'] ) == true ) {
- $newroles = $_POST['role'];
-
- reset( $newroles );
- foreach ( (array) $newroles as $userid => $role ) {
- $user = new WP_User( $userid );
- if ( empty( $user->ID ) )
- continue;
- $user->for_blog( $id );
- $user->set_role( $role );
- }
- }
-
- // remove user
- if ( isset( $_POST['blogusers'] ) && is_array( $_POST['blogusers'] ) ) {
- reset( $_POST['blogusers'] );
- foreach ( (array) $_POST['blogusers'] as $key => $val )
- remove_user_from_blog( $key, $id );
- }
-
- // change password
- if ( isset( $_POST['user_password'] ) && is_array( $_POST['user_password'] ) ) {
- reset( $_POST['user_password'] );
- $newroles = $_POST['role'];
- foreach ( (array) $_POST['user_password'] as $userid => $pass ) {
- unset( $_POST['role'] );
- $_POST['role'] = $newroles[ $userid ];
- if ( $pass != '' ) {
- $cap = $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = '{$blog_prefix}capabilities' AND meta_value = 'a:0:{}'", $userid ) );
- $userdata = get_userdata($userid);
- $_POST['pass1'] = $_POST['pass2'] = $pass;
- $_POST['email'] = $userdata->user_email;
- $_POST['rich_editing'] = $userdata->rich_editing;
- edit_user( $userid );
- if ( $cap == null )
- $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = '{$blog_prefix}capabilities' AND meta_value = 'a:0:{}'", $userid ) );
- }
- }
- unset( $_POST['role'] );
- $_POST['role'] = $newroles;
- }
-
- // add user
- if ( !empty( $_POST['newuser'] ) ) {
- $newuser = $_POST['newuser'];
- $userid = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) );
- if ( $userid ) {
- $user = $wpdb->get_var( "SELECT user_id FROM " . $wpdb->usermeta . " WHERE user_id='$userid' AND meta_key='{$blog_prefix}capabilities'" );
- if ( $user == false )
- add_user_to_blog( $id, $userid, $_POST['new_role'] );
- }
- }
- do_action( 'wpmu_update_blog_options' );
- restore_current_blog();
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'editblog', 'id' => $id ), wp_get_referer() ) );
- break;
-
- case 'deleteblog':
- check_admin_referer('deleteblog');
- if ( ! current_user_can( 'manage_sites' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- if ( $id != '0' && $id != $current_site->blog_id )
- wpmu_delete_blog( $id, true );
-
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'delete' ), wp_get_referer() ) );
- exit();
- break;
-
- case 'allblogs':
- if ( isset( $_POST['doaction']) || isset($_POST['doaction2'] ) ) {
- check_admin_referer( 'bulk-ms-sites', '_wpnonce_bulk-ms-sites' );
-
- if ( ! current_user_can( 'manage_sites' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- if ( $_GET['action'] != -1 || $_POST['action2'] != -1 )
- $doaction = $_POST['action'] != -1 ? $_POST['action'] : $_POST['action2'];
-
-
- foreach ( (array) $_POST['allblogs'] as $key => $val ) {
- if ( $val != '0' && $val != $current_site->blog_id ) {
- switch ( $doaction ) {
- case 'delete':
- $blogfunction = 'all_delete';
- wpmu_delete_blog( $val, true );
- break;
-
- case 'spam':
- $blogfunction = 'all_spam';
- update_blog_status( $val, 'spam', '1', 0 );
- set_time_limit( 60 );
- break;
-
- case 'notspam':
- $blogfunction = 'all_notspam';
- update_blog_status( $val, 'spam', '0', 0 );
- set_time_limit( 60 );
- break;
- }
- } else {
- wp_die( __( 'You are not allowed to change the current site.' ) );
- }
- }
-
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $blogfunction ), wp_get_referer() ) );
- exit();
- } else {
- wp_redirect( admin_url( 'ms-sites.php' ) );
- }
- break;
-
- case 'archiveblog':
- check_admin_referer( 'archiveblog' );
- if ( ! current_user_can( 'manage_sites' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- update_blog_status( $id, 'archived', '1' );
- do_action( 'archive_blog', $id );
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'archive' ), wp_get_referer() ) );
- exit();
- break;
-
- case 'unarchiveblog':
- check_admin_referer( 'unarchiveblog' );
- if ( ! current_user_can( 'manage_sites' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- do_action( 'unarchive_blog', $id );
- update_blog_status( $id, 'archived', '0' );
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unarchive' ), wp_get_referer() ) );
- exit();
- break;
-
- case 'activateblog':
- check_admin_referer( 'activateblog' );
- if ( ! current_user_can( 'manage_sites' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- update_blog_status( $id, 'deleted', '0' );
- do_action( 'activate_blog', $id );
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'activate' ), wp_get_referer() ) );
- exit();
- break;
-
- case 'deactivateblog':
- check_admin_referer( 'deactivateblog' );
- if ( ! current_user_can( 'manage_sites' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- do_action( 'deactivate_blog', $id );
- update_blog_status( $id, 'deleted', '1' );
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'deactivate' ), wp_get_referer() ) );
- exit();
- break;
-
- case 'unspamblog':
- check_admin_referer( 'unspamblog' );
- if ( ! current_user_can( 'manage_sites' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- update_blog_status( $id, 'spam', '0' );
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unspam' ), wp_get_referer() ) );
- exit();
- break;
-
- case 'spamblog':
- check_admin_referer( 'spamblog' );
- if ( ! current_user_can( 'manage_sites' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- update_blog_status( $id, 'spam', '1' );
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'spam' ), wp_get_referer() ) );
- exit();
- break;
-
- // Themes
- case 'updatethemes':
- if ( ! current_user_can( 'manage_network_themes' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- if ( is_array( $_POST['theme'] ) ) {
- $themes = get_themes();
- reset( $themes );
- $allowed_themes = array();
- foreach ( (array) $themes as $key => $theme ) {
- if ( $_POST['theme'][ esc_html( $theme['Stylesheet'] ) ] == 'enabled' )
- $allowed_themes[ esc_html( $theme['Stylesheet'] ) ] = true;
- }
- update_site_option( 'allowedthemes', $allowed_themes );
- }
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'themes' ), wp_get_referer() ) );
- exit();
- break;
-
- // Common
- case 'confirm':
- if ( !headers_sent() ) {
- nocache_headers();
- header( 'Content-Type: text/html; charset=utf-8' );
- }
- if ( $current_site->blog_id == $id )
- wp_die( __( 'You are not allowed to change the current site.' ) );
- ?>
-
- >
-
-
-
-
-
-
-
-
-
-
-
- ';
- confirm_delete_users( $_POST['allusers'] );
- echo '';
- require_once( 'admin-footer.php' );
- exit();
- } else {
- wp_redirect( admin_url( 'ms-users.php' ) );
- }
- break;
-
- case 'allusers':
- if ( ! current_user_can( 'manage_network_users' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- if ( isset( $_POST['doaction']) || isset($_POST['doaction2'] ) ) {
- check_admin_referer( 'bulk-ms-users', '_wpnonce_bulk-ms-users' );
-
- if ( $_GET['action'] != -1 || $_POST['action2'] != -1 )
- $doaction = $_POST['action'] != -1 ? $_POST['action'] : $_POST['action2'];
-
- foreach ( (array) $_POST['allusers'] as $key => $val ) {
- if ( !empty( $val ) ) {
- switch ( $doaction ) {
- case 'delete':
- $title = __( 'Users' );
- $parent_file = 'ms-admin.php';
- require_once( 'admin-header.php' );
- echo '';
- confirm_delete_users( $_POST['allusers'] );
- echo '
';
- require_once( 'admin-footer.php' );
- exit();
- break;
-
- case 'spam':
- $user = new WP_User( $val );
- if ( in_array( $user->user_login, get_super_admins() ) )
- wp_die( sprintf( __( 'Warning! User cannot be modified. The user %s is a network administrator.' ), esc_html( $user->user_login ) ) );
-
- $userfunction = 'all_spam';
- $blogs = get_blogs_of_user( $val, true );
- foreach ( (array) $blogs as $key => $details ) {
- if ( $details->userblog_id != $current_site->blog_id ) // main blog not a spam !
- update_blog_status( $details->userblog_id, 'spam', '1' );
- }
- update_user_status( $val, 'spam', '1', 1 );
- break;
-
- case 'notspam':
- $userfunction = 'all_notspam';
- $blogs = get_blogs_of_user( $val, true );
- foreach ( (array) $blogs as $key => $details )
- update_blog_status( $details->userblog_id, 'spam', '0' );
-
- update_user_status( $val, 'spam', '0', 1 );
- break;
- }
- }
- }
-
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $userfunction ), wp_get_referer() ) );
- exit();
- } else {
- wp_redirect( admin_url( 'ms-users.php' ) );
- }
- break;
-
- case 'dodelete':
- check_admin_referer( 'ms-users-delete' );
- if ( ! current_user_can( 'manage_network_users' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- if ( ! empty( $_POST['blog'] ) && is_array( $_POST['blog'] ) ) {
- foreach ( $_POST['blog'] as $id => $users ) {
- foreach ( $users as $blogid => $user_id ) {
- if ( ! empty( $_POST['delete'] ) && 'reassign' == $_POST['delete'][$blogid][$id] )
- remove_user_from_blog( $id, $blogid, $user_id );
- else
- remove_user_from_blog( $id, $blogid );
- }
- }
- }
- $i = 0;
- if ( is_array( $_POST['user'] ) && ! empty( $_POST['user'] ) )
- foreach( $_POST['user'] as $id ) {
- wpmu_delete_user( $id );
- $i++;
- }
-
- if ( $i == 1 )
- $deletefunction = 'delete';
- else
- $deletefunction = 'all_delete';
-
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $deletefunction ), admin_url( 'ms-users.php' ) ) );
- break;
-
- case 'adduser':
- check_admin_referer( 'add-user', '_wpnonce_add-user' );
- if ( ! current_user_can( 'manage_network_users' ) )
- wp_die( __( 'You do not have permission to access this page.' ) );
-
- if ( is_array( $_POST['user'] ) == false )
- wp_die( __( 'Cannot create an empty user.' ) );
- $user = $_POST['user'];
- if ( empty($user['username']) && empty($user['email']) )
- wp_die( __( 'Missing username and email.' ) );
- elseif ( empty($user['username']) )
- wp_die( __( 'Missing username.' ) );
- elseif ( empty($user['email']) )
- wp_die( __( 'Missing email.' ) );
-
- $password = wp_generate_password();
- $user_id = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) );
-
- if ( false == $user_id )
- wp_die( __( 'Duplicated username or email address.' ) );
- else
- wp_new_user_notification( $user_id, $password );
-
- if ( get_site_option( 'dashboard_blog' ) == false )
- add_user_to_blog( $current_site->blog_id, $user_id, get_site_option( 'default_user_role', 'subscriber' ) );
- else
- add_user_to_blog( get_site_option( 'dashboard_blog' ), $user_id, get_site_option( 'default_user_role', 'subscriber' ) );
-
- wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'add' ), wp_get_referer() ) );
- exit();
- break;
-
- default:
- wp_redirect( admin_url( 'ms-admin.php' ) );
- break;
-}
-?>
+wp_redirect( network_admin_url() );
+exit;