Make WordPress Core

Ticket #30202: 30202.diff

File 30202.diff, 2.2 KB (added by earnjam, 11 years ago)
  • wp-includes/ms-functions.php

     
    16501650 * @since MU
    16511651 *
    16521652 * @param string $directory
     1653 * @param string $exclude Optional. Directory to exclude from the total.
    16531654 * @return int
    16541655 */
    1655 function get_dirsize( $directory ) {
     1656function get_dirsize( $directory, $exclude = null ) {
    16561657        $dirsize = get_transient( 'dirsize_cache' );
    16571658        if ( is_array( $dirsize ) && isset( $dirsize[ $directory ][ 'size' ] ) )
    16581659                return $dirsize[ $directory ][ 'size' ];
     
    16601661        if ( false == is_array( $dirsize ) )
    16611662                $dirsize = array();
    16621663
    1663         $dirsize[ $directory ][ 'size' ] = recurse_dirsize( $directory );
     1664        $dirsize[ $directory ][ 'size' ] = recurse_dirsize( $directory, $exclude );
    16641665
    16651666        set_transient( 'dirsize_cache', $dirsize, HOUR_IN_SECONDS );
    16661667        return $dirsize[ $directory ][ 'size' ];
     
    16751676 * @since MU
    16761677 *
    16771678 * @param string $directory
     1679 * @param string $exclude Optional. Directory to exclude from the total.
    16781680 * @return int
    16791681 */
    1680 function recurse_dirsize( $directory ) {
     1682function recurse_dirsize( $directory, $exclude = null ) {
    16811683        $size = 0;
    16821684
    16831685        $directory = untrailingslashit( $directory );
    16841686
    1685         if ( !file_exists($directory) || !is_dir( $directory ) || !is_readable( $directory ) )
     1687        if ( ! file_exists( $directory ) || ! is_dir( $directory ) || ! is_readable( $directory ) || $directory == $exclude )
    16861688                return false;
    16871689
    16881690        if ($handle = opendir($directory)) {
     
    16921694                                if (is_file($path)) {
    16931695                                        $size += filesize($path);
    16941696                                } elseif (is_dir($path)) {
    1695                                         $handlesize = recurse_dirsize($path);
     1697                                        $handlesize = recurse_dirsize( $path, $exclude );
    16961698                                        if ($handlesize > 0)
    16971699                                                $size += $handlesize;
    16981700                                }
     
    22512253        $space_used = apply_filters( 'pre_get_space_used', false );
    22522254        if ( false === $space_used ) {
    22532255                $upload_dir = wp_upload_dir();
    2254                 $space_used = get_dirsize( $upload_dir['basedir'] ) / 1024 / 1024;
     2256                $exclude = ( is_main_site() ) ? $upload_dir['basedir'] . '/sites' : null;
     2257                $space_used = get_dirsize( $upload_dir['basedir'], $exclude ) / 1024 / 1024;
    22552258        }
    22562259
    22572260        return $space_used;