X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/699231ae09f7057a4d0000cdf32e50a3df6a04ca..6c8f14c09105d0afa4c1574215c59b5021040e76:/wp-admin/includes/ms.php diff --git a/wp-admin/includes/ms.php b/wp-admin/includes/ms.php index ae23b7f8..b62e1d0b 100644 --- a/wp-admin/includes/ms.php +++ b/wp-admin/includes/ms.php @@ -25,9 +25,8 @@ function check_upload_size( $file ) { if ( defined( 'WP_IMPORTING' ) ) return $file; - $space_allowed = 1048576 * get_space_allowed(); - $space_used = get_dirsize( BLOGUPLOADDIR ); - $space_left = $space_allowed - $space_used; + $space_left = get_upload_space_available(); + $file_size = filesize( $file['tmp_name'] ); if ( $space_left < $file_size ) $file['error'] = sprintf( __( 'Not enough space to upload. %1$s KB needed.' ), number_format( ($file_size - $space_left) /1024 ) ); @@ -49,46 +48,48 @@ add_filter( 'wp_handle_upload_prefilter', 'check_upload_size' ); * @since 3.0.0 * * @param int $blog_id Blog ID - * @param bool $drop True if blog's table should be dropped. Default is false. + * @param bool $drop True if blog's table should be dropped. Default is false. * @return void */ function wpmu_delete_blog( $blog_id, $drop = false ) { - global $wpdb; + global $wpdb, $current_site; $switch = false; - if ( $blog_id != $wpdb->blogid ) { + if ( get_current_blog_id() != $blog_id ) { $switch = true; switch_to_blog( $blog_id ); } - $blog_prefix = $wpdb->get_blog_prefix( $blog_id ); + $blog = get_blog_details( $blog_id ); do_action( 'delete_blog', $blog_id, $drop ); - $users = get_users_of_blog( $blog_id ); + $users = get_users( array( 'blog_id' => $blog_id, 'fields' => 'ids' ) ); // Remove users from this blog. if ( ! empty( $users ) ) { - foreach ( $users as $user ) { - remove_user_from_blog( $user->user_id, $blog_id) ; + foreach ( $users as $user_id ) { + remove_user_from_blog( $user_id, $blog_id ); } } update_blog_status( $blog_id, 'deleted', 1 ); - if ( $drop ) { - if ( substr( $blog_prefix, -1 ) == '_' ) - $blog_prefix = substr( $blog_prefix, 0, -1 ) . '\_'; + // Don't destroy the initial, main, or root blog. + if ( $drop && ( 1 == $blog_id || is_main_site( $blog_id ) || ( $blog->path == $current_site->path && $blog->domain == $current_site->domain ) ) ) + $drop = false; - $drop_tables = $wpdb->get_results( "SHOW TABLES LIKE '{$blog_prefix}%'", ARRAY_A ); - $drop_tables = apply_filters( 'wpmu_drop_tables', $drop_tables ); + if ( $drop ) { + $drop_tables = apply_filters( 'wpmu_drop_tables', $wpdb->tables( 'blog' ) ); - reset( $drop_tables ); - foreach ( (array) $drop_tables as $drop_table) { - $wpdb->query( "DROP TABLE IF EXISTS ". current( $drop_table ) ."" ); + foreach ( (array) $drop_tables as $table ) { + $wpdb->query( "DROP TABLE IF EXISTS `$table`" ); } - $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->blogs WHERE blog_id = %d", $blog_id ) ); - $dir = apply_filters( 'wpmu_delete_blog_upload_dir', WP_CONTENT_DIR . "/blogs.dir/{$blog_id}/files/", $blog_id ); + + $wpdb->delete( $wpdb->blogs, array( 'blog_id' => $blog_id ) ); + + $uploads = wp_upload_dir(); + $dir = apply_filters( 'wpmu_delete_blog_upload_dir', $uploads['basedir'], $blog_id ); $dir = rtrim( $dir, DIRECTORY_SEPARATOR ); $top_dir = $dir; $stack = array($dir); @@ -109,28 +110,21 @@ function wpmu_delete_blog( $blog_id, $drop = false ) { else if ( @is_file( $dir . DIRECTORY_SEPARATOR . $file ) ) @unlink( $dir . DIRECTORY_SEPARATOR . $file ); } + @closedir( $dh ); } $index++; } - $stack = array_reverse( $stack ); // Last added dirs are deepest + $stack = array_reverse( $stack ); // Last added dirs are deepest foreach( (array) $stack as $dir ) { if ( $dir != $top_dir) @rmdir( $dir ); } - } - $wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key = '{$blog_prefix}autosave_draft_ids'" ); - $blogs = get_site_option( 'blog_list' ); - if ( is_array( $blogs ) ) { - foreach ( $blogs as $n => $blog ) { - if ( $blog['blog_id'] == $blog_id ) - unset( $blogs[$n] ); - } - update_site_option( 'blog_list', $blogs ); + clean_blog_cache( $blog ); } - if ( $switch === true ) + if ( $switch ) restore_current_blog(); } @@ -139,6 +133,7 @@ function wpmu_delete_user( $id ) { global $wpdb; $id = (int) $id; + $user = new WP_User( $id ); do_action( 'wpmu_delete_user', $id ); @@ -166,10 +161,13 @@ function wpmu_delete_user( $id ) { } } - $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->users WHERE ID = %d", $id ) ); - $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->usermeta WHERE user_id = %d", $id ) ); + $meta = $wpdb->get_col( $wpdb->prepare( "SELECT umeta_id FROM $wpdb->usermeta WHERE user_id = %d", $id ) ); + foreach ( $meta as $mid ) + delete_metadata_by_mid( 'user', $mid ); - clean_user_cache( $id ); + $wpdb->delete( $wpdb->users, array( 'ID' => $id ) ); + + clean_user_cache( $user ); // allow for commit transaction do_action( 'deleted_user', $id ); @@ -177,101 +175,6 @@ function wpmu_delete_user( $id ) { return true; } -function confirm_delete_users( $users ) { - global $current_user; - if ( !is_array( $users ) ) - return false; - - screen_icon(); - ?> -

-

-
- - ID'>$current_user->user_login"; - - foreach ( ( $allusers = (array) $_POST['allusers'] ) as $key => $val ) { - if ( $val != '' && $val != '0' ) { - $delete_user = new WP_User( $val ); - - if ( in_array( $delete_user->user_login, $site_admins ) ) - wp_die( sprintf( __( 'Warning! User cannot be deleted. The user %s is a network admnistrator.' ), $delete_user->user_login ) ); - - echo "\n"; - $blogs = get_blogs_of_user( $val, true ); - - if ( !empty( $blogs ) ) { - ?> -

%s?" ), $delete_user->user_login ); ?>

- $details ) { - $blog_users = get_users_of_blog( $details->userblog_id ); - if ( is_array( $blog_users ) && !empty( $blog_users ) ) { - $user_site = "{$details->blogname}"; - $user_dropdown = "\n"; - ?> - - "; - } - } - } - ?> -

- - $theme ) { - $theme_key = esc_html( $theme['Stylesheet'] ); - if ( isset( $blog_allowed_themes[$key] ) == true ) { - $blog_allowedthemes[$theme_key] = 1; - } - } - $blog_allowed_themes = $blog_allowedthemes; - add_option( 'allowedthemes', $blog_allowed_themes ); - delete_option( 'allowed_themes' ); - } - } - - if ( $blog_id != 0 ) - restore_current_blog(); - - return $blog_allowed_themes; -} - function update_option_new_admin_email( $old_value, $value ) { $email = get_option( 'admin_email' ); if ( $value == get_option( 'admin_email' ) || !is_email( $value ) ) @@ -311,21 +214,22 @@ add_action( 'update_option_new_admin_email', 'update_option_new_admin_email', 10 add_action( 'add_option_new_admin_email', 'update_option_new_admin_email', 10, 2 ); function send_confirmation_on_profile_email() { - global $errors, $wpdb, $current_user; + global $errors, $wpdb; + $current_user = wp_get_current_user(); if ( ! is_object($errors) ) $errors = new WP_Error(); - if ( $current_user->id != $_POST['user_id'] ) + if ( $current_user->ID != $_POST['user_id'] ) return false; if ( $current_user->user_email != $_POST['email'] ) { if ( !is_email( $_POST['email'] ) ) { - $errors->add( 'user_email', __( "ERROR: The e-mail address isn't correct." ), array( 'form-field' => 'email' ) ); + $errors->add( 'user_email', __( "ERROR: The email address isn’t correct." ), array( 'form-field' => 'email' ) ); return; } if ( $wpdb->get_var( $wpdb->prepare( "SELECT user_email FROM {$wpdb->users} WHERE user_email=%s", $_POST['email'] ) ) ) { - $errors->add( 'user_email', __( "ERROR: The e-mail address is already used." ), array( 'form-field' => 'email' ) ); + $errors->add( 'user_email', __( "ERROR: The email address is already used." ), array( 'form-field' => 'email' ) ); delete_option( $current_user->ID . '_new_email' ); return; } @@ -364,187 +268,110 @@ All at ###SITENAME### add_action( 'personal_options_update', 'send_confirmation_on_profile_email' ); function new_user_email_admin_notice() { - global $current_user; - if ( strpos( $_SERVER['PHP_SELF'], 'profile.php' ) && isset( $_GET['updated'] ) && $email = get_option( $current_user->ID . '_new_email' ) ) + if ( strpos( $_SERVER['PHP_SELF'], 'profile.php' ) && isset( $_GET['updated'] ) && $email = get_option( get_current_user_id() . '_new_email' ) ) echo "
" . sprintf( __( "Your email address has not been updated yet. Please check your inbox at %s for a confirmation email." ), $email['newemail'] ) . "
"; } add_action( 'admin_notices', 'new_user_email_admin_notice' ); -function get_site_allowed_themes() { - $themes = get_themes(); - $allowed_themes = get_site_option( 'allowedthemes' ); - if ( !is_array( $allowed_themes ) || empty( $allowed_themes ) ) { - $allowed_themes = get_site_option( 'allowed_themes' ); // convert old allowed_themes format - if ( !is_array( $allowed_themes ) ) { - $allowed_themes = array(); - } else { - foreach( (array) $themes as $key => $theme ) { - $theme_key = esc_html( $theme['Stylesheet'] ); - if ( isset( $allowed_themes[ $key ] ) == true ) { - $allowedthemes[ $theme_key ] = 1; - } - } - $allowed_themes = $allowedthemes; - } - } - return $allowed_themes; -} - /** - * Determines if there is any upload space left in the current blog's quota. + * Check whether a blog has used its allotted upload space. * - * @since 3.0.0 - * @return bool True if space is available, false otherwise. - */ -function is_upload_space_available() { - if ( get_site_option( 'upload_space_check_disabled' ) ) - return true; - - if ( !( $space_allowed = get_upload_space_available() ) ) - return false; - - return true; -} - -/* - * @since 3.0.0 + * @since MU * - * @return int of upload size limit in bytes + * @param bool $echo Optional. If $echo is set and the quota is exceeded, a warning message is echoed. Default is true. + * @return int */ -function upload_size_limit_filter( $size ) { - $fileupload_maxk = 1024 * get_site_option( 'fileupload_maxk', 1500 ); - return min( $size, $fileupload_maxk, get_upload_space_available() ); -} -/** - * Determines if there is any upload space left in the current blog's quota. - * - * @return int of upload space available in bytes - */ -function get_upload_space_available() { - $space_allowed = get_space_allowed() * 1024 * 1024; +function upload_is_user_over_quota( $echo = true ) { if ( get_site_option( 'upload_space_check_disabled' ) ) - return $space_allowed; + return false; - $dir_name = trailingslashit( BLOGUPLOADDIR ); - if ( !( is_dir( $dir_name) && is_readable( $dir_name ) ) ) - return $space_allowed; + $space_allowed = get_space_allowed(); + if ( empty( $space_allowed ) || !is_numeric( $space_allowed ) ) + $space_allowed = 10; // Default space allowed is 10 MB - $dir = dir( $dir_name ); - $size = 0; + $space_used = get_space_used(); - while ( $file = $dir->read() ) { - if ( $file != '.' && $file != '..' ) { - if ( is_dir( $dir_name . $file) ) { - $size += get_dirsize( $dir_name . $file ); - } else { - $size += filesize( $dir_name . $file ); - } - } + if ( ( $space_allowed - $space_used ) < 0 ) { + if ( $echo ) + _e( 'Sorry, you have used your space allocation. Please delete some files to upload more files.' ); + return true; + } else { + return false; } - $dir->close(); - - if ( ( $space_allowed - $size ) <= 0 ) - return 0; - - return $space_allowed - $size; } /** - * Returns the upload quota for the current blog. + * Displays the amount of disk space used by the current blog. Not used in core. * - * @return int Quota + * @since MU */ -function get_space_allowed() { - $space_allowed = get_option( 'blog_upload_space' ); - if ( $space_allowed == false ) - $space_allowed = get_site_option( 'blog_upload_space' ); - if ( empty( $space_allowed ) || !is_numeric( $space_allowed ) ) - $space_allowed = 50; - - return $space_allowed; -} - function display_space_usage() { - $space = get_space_allowed(); - $used = get_dirsize( BLOGUPLOADDIR ) / 1024 / 1024; + $space_allowed = get_space_allowed(); + $space_used = get_space_used(); - $percentused = ( $used / $space ) * 100; + $percent_used = ( $space_used / $space_allowed ) * 100; - if ( $space > 1000 ) { - $space = number_format( $space / 1024 ); + if ( $space_allowed > 1000 ) { + $space = number_format( $space_allowed / 1024 ); /* translators: Gigabytes */ $space .= __( 'GB' ); } else { + $space = number_format( $space_allowed ); /* translators: Megabytes */ $space .= __( 'MB' ); } ?> - + $quota ) - $percentused = '100'; - else - $percentused = ( $used / $quota ) * 100; - $used_color = ( $percentused < 70 ) ? ( ( $percentused >= 40 ) ? 'waiting' : 'approved' ) : 'spam'; - $used = round( $used, 2 ); - $percentused = number_format( $percentused ); +/** + * Get the remaining upload space for this blog. + * + * @since MU + * @uses upload_is_user_over_quota() + * @uses get_space_allowed() + * @uses get_upload_space_available() + * + * @param int $size Current max size in bytes + * @return int Max size in bytes + */ +function fix_import_form_size( $size ) { + if ( upload_is_user_over_quota( false ) == true ) + return 0; - ?> -

-
- - - - - -
%2$sMB' ), esc_url( admin_url( 'upload.php' ) ), $quota ); ?>
-
-
- - - - - -
%2$sMB (%3$s%%)' ), esc_url( admin_url( 'upload.php' ) ), $used, $percentused ); ?>
-
-
- - + update( $wpdb->users, array( $pref => $value ), array( 'ID' => $id ) ); - if ( $refresh == 1 ) - refresh_user_details( $id ); + $user = new WP_User( $id ); + clean_user_cache( $user ); if ( $pref == 'spam' ) { if ( $value == 1 ) @@ -562,7 +389,7 @@ function refresh_user_details( $id ) { if ( !$user = get_userdata( $id ) ) return false; - clean_user_cache( $id ); + clean_user_cache( $user ); return $id; } @@ -597,44 +424,41 @@ function sync_category_tag_slugs( $term, $taxonomy ) { } add_filter( 'get_term', 'sync_category_tag_slugs', 10, 2 ); -function redirect_user_to_blog() { - global $current_user; - $c = 0; - if ( isset( $_GET['c'] ) ) - $c = (int) $_GET['c']; +function _access_denied_splash() { + if ( ! is_user_logged_in() || is_network_admin() ) + return; - if ( $c >= 5 ) { - wp_die( __( "You don’t have permission to view this site. Please contact the system administrator." ) ); - } - $c ++; + $blogs = get_blogs_of_user( get_current_user_id() ); - $blog = get_active_blog_for_user( $current_user->ID ); - $dashboard_blog = get_dashboard_blog(); - if ( is_object( $blog ) ) { - wp_redirect( get_admin_url( $blog->blog_id, '?c=' . $c ) ); // redirect and count to 5, "just in case" - exit; - } + if ( wp_list_filter( $blogs, array( 'userblog_id' => get_current_blog_id() ) ) ) + return; - /* - If the user is a member of only 1 blog and the user's primary_blog isn't set to that blog, - then update the primary_blog record to match the user's blog - */ - $blogs = get_blogs_of_user( $current_user->ID ); - - if ( !empty( $blogs ) ) { - foreach( $blogs as $blogid => $blog ) { - if ( $blogid != $dashboard_blog->blog_id && get_user_meta( $current_user->ID , 'primary_blog', true ) == $dashboard_blog->blog_id ) { - update_user_meta( $current_user->ID, 'primary_blog', $blogid ); - continue; - } - } - $blog = get_blog_details( get_user_meta( $current_user->ID, 'primary_blog', true ) ); - wp_redirect( get_admin_url( $blog->blog_id, '?c=' . $c ) ); - exit; + $blog_name = get_bloginfo( 'name' ); + + if ( empty( $blogs ) ) + wp_die( sprintf( __( 'You attempted to access the "%1$s" dashboard, but you do not currently have privileges on this site. If you believe you should be able to access the "%1$s" dashboard, please contact your network administrator.' ), $blog_name ) ); + + $output = '

' . sprintf( __( 'You attempted to access the "%1$s" dashboard, but you do not currently have privileges on this site. If you believe you should be able to access the "%1$s" dashboard, please contact your network administrator.' ), $blog_name ) . '

'; + $output .= '

' . __( 'If you reached this screen by accident and meant to visit one of your own sites, here are some shortcuts to help you find your way.' ) . '

'; + + $output .= '

' . __('Your Sites') . '

'; + $output .= ''; + + foreach ( $blogs as $blog ) { + $output .= ""; + $output .= ""; + $output .= ""; + $output .= ""; } - wp_die( __( 'You do not have sufficient permissions to access this page.' ) ); + $output .= '
"; + $output .= "{$blog->blogname}"; + $output .= ""; + $output .= "" . __( 'Visit Dashboard' ) . " | " . __( 'View Site' ) . "" ; + $output .= "
'; + + wp_die( $output ); } -add_action( 'admin_page_access_denied', 'redirect_user_to_blog', 99 ); +add_action( 'admin_page_access_denied', '_access_denied_splash', 99 ); function check_import_new_users( $permission ) { if ( !is_super_admin() ) @@ -654,20 +478,20 @@ function mu_dropdown_languages( $lang_files = array(), $current = '' ) { if ( $code_lang == 'en_US' ) { // American English $flag = true; $ae = __( 'American English' ); - $output[$ae] = ''; + $output[$ae] = ''; } elseif ( $code_lang == 'en_GB' ) { // British English $flag = true; $be = __( 'British English' ); - $output[$be] = ''; + $output[$be] = ''; } else { $translated = format_code_lang( $code_lang ); - $output[$translated] = ''; + $output[$translated] = ''; } } if ( $flag === false ) // WordPress english - $output[] = '"; + $output[] = '"; // Order by name uksort( $output, 'strnatcasecmp' ); @@ -694,47 +518,17 @@ function secret_salt_warning() { echo "
$msg
"; } } -add_action( 'admin_notices', 'secret_salt_warning' ); - -function admin_notice_feed() { - global $current_user, $current_screen; - if ( $current_screen->id != 'dashboard' ) - return; - - if ( !empty( $_GET['feed_dismiss'] ) ) { - update_user_option( $current_user->id, 'admin_feed_dismiss', $_GET['feed_dismiss'], true ); - return; - } - - $url = get_site_option( 'admin_notice_feed' ); - if ( empty( $url ) ) - return; - - $rss = fetch_feed( $url ); - if ( ! is_wp_error( $rss ) && $item = $rss->get_item() ) { - $title = $item->get_title(); - if ( md5( $title ) == get_user_option( 'admin_feed_dismiss' ) ) - return; - $msg = "

" . esc_html( $title ) . "

\n"; - $content = $item->get_description(); - $content = $content ? wp_html_excerpt( $content, 200 ) . ' … ' : ''; - $link = esc_url( strip_tags( $item->get_link() ) ); - $msg .= "

" . $content . "" . __( 'Read More' ) . " " . __( 'Dismiss' ) . "

"; - echo "
$msg
"; - } elseif ( is_super_admin() ) { - printf( '
' . __( 'Your feed at %s is empty.' ) . '
', esc_html( $url ) ); - } -} -add_action( 'admin_notices', 'admin_notice_feed' ); +add_action( 'network_admin_notices', 'secret_salt_warning' ); function site_admin_notice() { - global $current_user, $wp_db_version; + global $wp_db_version; if ( !is_super_admin() ) return false; if ( get_site_option( 'wpmu_upgrade_site' ) != $wp_db_version ) - echo "
" . sprintf( __( 'Thank you for Updating! Please visit the Update Network page to update all your sites.' ), esc_url( admin_url( 'ms-upgrade-network.php' ) ) ) . "
"; + echo "
" . sprintf( __( 'Thank you for Updating! Please visit the Update Network page to update all your sites.' ), esc_url( network_admin_url( 'upgrade.php' ) ) ) . "
"; } add_action( 'admin_notices', 'site_admin_notice' ); +add_action( 'network_admin_notices', 'site_admin_notice' ); function avoid_blog_page_permalink_collision( $data, $postarr ) { if ( is_subdomain_install() ) @@ -760,7 +554,6 @@ function avoid_blog_page_permalink_collision( $data, $postarr ) { add_filter( 'wp_insert_post_data', 'avoid_blog_page_permalink_collision', 10, 2 ); function choose_primary_blog() { - global $current_user; ?> @@ -768,8 +561,8 @@ function choose_primary_blog() { @@ -807,41 +600,11 @@ function choose_primary_blog() { " . sprintf( __( "Warning! The current theme supports Featured Images. You must enable image uploads on the options page for it to work." ), esc_url( admin_url( 'ms-options.php' ) ) ) . ""; - } -} -add_action( 'admin_notices', 'show_post_thumbnail_warning' ); - -function ms_deprecated_blogs_file() { - if ( ! is_super_admin() ) - return; - if ( ! file_exists( WP_CONTENT_DIR . '/blogs.php' ) ) - return; - echo '
' . sprintf( __( 'The %1$s file is deprecated. Please remove it and update your server rewrite rules to use %2$s instead.' ), 'wp-content/blogs.php', 'wp-includes/ms-files.php' ) . '
'; -} -add_action( 'admin_notices', 'ms_deprecated_blogs_file' ); - -/** - * Outputs the notice message for multisite regarding activation of plugin page. - * - * @since 3.0.0 - * @return none - */ -function _admin_notice_multisite_activate_plugins_page() { - $message = sprintf( __( 'The plugins page is not visible to normal users. It must be activated first. %s' ), '' . __( 'Activate' ) . '' ); - echo "

$message

"; -} - /** * Grants super admin privileges. * * @since 3.0.0 - * @param $user_id + * @param int $user_id */ function grant_super_admin( $user_id ) { global $super_admins; @@ -855,8 +618,8 @@ function grant_super_admin( $user_id ) { // Directly fetch site_admins instead of using get_super_admins() $super_admins = get_site_option( 'site_admins', array( 'admin' ) ); - $user = new WP_User( $user_id ); - if ( ! in_array( $user->user_login, $super_admins ) ) { + $user = get_userdata( $user_id ); + if ( $user && ! in_array( $user->user_login, $super_admins ) ) { $super_admins[] = $user->user_login; update_site_option( 'site_admins' , $super_admins ); do_action( 'granted_super_admin', $user_id ); @@ -869,7 +632,7 @@ function grant_super_admin( $user_id ) { * Revokes super admin privileges. * * @since 3.0.0 - * @param $user_id + * @param int $user_id */ function revoke_super_admin( $user_id ) { global $super_admins; @@ -883,8 +646,8 @@ function revoke_super_admin( $user_id ) { // Directly fetch site_admins instead of using get_super_admins() $super_admins = get_site_option( 'site_admins', array( 'admin' ) ); - $user = new WP_User( $user_id ); - if ( $user->user_email != get_site_option( 'admin_email' ) ) { + $user = get_userdata( $user_id ); + if ( $user && $user->user_email != get_site_option( 'admin_email' ) ) { if ( false !== ( $key = array_search( $user->user_login, $super_admins ) ) ) { unset( $super_admins[$key] ); update_site_option( 'site_admins', $super_admins ); @@ -894,4 +657,58 @@ function revoke_super_admin( $user_id ) { } return false; } + +/** + * Whether or not we can edit this network from this page + * + * By default editing of network is restricted to the Network Admin for that site_id this allows for this to be overridden + * + * @since 3.1.0 + * @param integer $site_id The network/site id to check. + */ +function can_edit_network( $site_id ) { + global $wpdb; + + if ($site_id == $wpdb->siteid ) + $result = true; + else + $result = false; + + return apply_filters( 'can_edit_network', $result, $site_id ); +} + +/** + * Thickbox image paths for Network Admin. + * + * @since 3.1.0 + * @access private + */ +function _thickbox_path_admin_subfolder() { ?> + + 10000, 'users', $count ); + } + + $count = get_blog_count(); + return apply_filters( 'wp_is_large_network', $count > 10000, 'sites', $count ); +}
ID ); - $primary_blog = get_user_meta( $current_user->ID, 'primary_blog', true ); + $all_blogs = get_blogs_of_user( get_current_user_id() ); + $primary_blog = get_user_meta( get_current_user_id(), 'primary_blog', true ); if ( count( $all_blogs ) > 1 ) { $found = false; ?> @@ -777,19 +570,19 @@ function choose_primary_blog() { userblog_id ) $found = true; - ?> ID, 'primary_blog', $blog->userblog_id ); + update_user_meta( get_current_user_id(), 'primary_blog', $blog->userblog_id ); } } elseif ( count( $all_blogs ) == 1 ) { $blog = array_shift( $all_blogs ); echo $blog->domain; if ( $primary_blog != $blog->userblog_id ) // Set the primary blog again if it's out of sync with blog list. - update_user_meta( $current_user->ID, 'primary_blog', $blog->userblog_id ); + update_user_meta( get_current_user_id(), 'primary_blog', $blog->userblog_id ); } else { echo "N/A"; } @@ -799,7 +592,7 @@ function choose_primary_blog() {
- +