X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/596d585e1dc1eb25bccd3781e37210a4e2504179..6c8f14c09105d0afa4c1574215c59b5021040e76:/wp-admin/includes/ms.php?ds=sidebyside diff --git a/wp-admin/includes/ms.php b/wp-admin/includes/ms.php index a6828b2d..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 ) ); @@ -56,14 +55,13 @@ function wpmu_delete_blog( $blog_id, $drop = false ) { 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 = get_blog_details( $blog_id ); - } else { - $blog = $GLOBALS['current_blog']; } + $blog = get_blog_details( $blog_id ); + do_action( 'delete_blog', $blog_id, $drop ); $users = get_users( array( 'blog_id' => $blog_id, 'fields' => 'ids' ) ); @@ -82,7 +80,6 @@ function wpmu_delete_blog( $blog_id, $drop = false ) { $drop = false; if ( $drop ) { - $drop_tables = apply_filters( 'wpmu_drop_tables', $wpdb->tables( 'blog' ) ); foreach ( (array) $drop_tables as $table ) { @@ -91,7 +88,8 @@ function wpmu_delete_blog( $blog_id, $drop = false ) { $wpdb->delete( $wpdb->blogs, array( 'blog_id' => $blog_id ) ); - $dir = apply_filters( 'wpmu_delete_blog_upload_dir', WP_CONTENT_DIR . "/blogs.dir/{$blog_id}/files/", $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); @@ -112,6 +110,7 @@ function wpmu_delete_blog( $blog_id, $drop = false ) { else if ( @is_file( $dir . DIRECTORY_SEPARATOR . $file ) ) @unlink( $dir . DIRECTORY_SEPARATOR . $file ); } + @closedir( $dh ); } $index++; } @@ -121,6 +120,8 @@ function wpmu_delete_blog( $blog_id, $drop = false ) { if ( $dir != $top_dir) @rmdir( $dir ); } + + clean_blog_cache( $blog ); } if ( $switch ) @@ -223,12 +224,12 @@ function send_confirmation_on_profile_email() { 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; } @@ -273,106 +274,82 @@ function new_user_email_admin_notice() { add_action( 'admin_notices', 'new_user_email_admin_notice' ); /** - * 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 - * - * @return int of upload size limit in bytes - */ -function upload_size_limit_filter( $size ) { - $fileupload_maxk = 1024 * get_site_option( 'fileupload_maxk', 1500 ); - if ( get_site_option( 'upload_space_check_disabled' ) ) - return min( $size, $fileupload_maxk ); - - return min( $size, $fileupload_maxk, get_upload_space_available() ); -} -/** - * Determines if there is any upload space left in the current blog's quota. + * @since MU * - * @return int of upload space available 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 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 ( ! is_numeric( $space_allowed ) ) - $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' ); } ?> - + - + @@ -623,15 +600,6 @@ function choose_primary_blog() { ' . 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( 'network_admin_notices', 'ms_deprecated_blogs_file' ); - /** * Grants super admin privileges. * @@ -650,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 ); @@ -678,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 ); @@ -720,7 +688,6 @@ function _thickbox_path_admin_subfolder() {