Ticket #30202: 30202.diff
File 30202.diff, 2.2 KB (added by , 11 years ago) |
---|
-
wp-includes/ms-functions.php
1650 1650 * @since MU 1651 1651 * 1652 1652 * @param string $directory 1653 * @param string $exclude Optional. Directory to exclude from the total. 1653 1654 * @return int 1654 1655 */ 1655 function get_dirsize( $directory ) {1656 function get_dirsize( $directory, $exclude = null ) { 1656 1657 $dirsize = get_transient( 'dirsize_cache' ); 1657 1658 if ( is_array( $dirsize ) && isset( $dirsize[ $directory ][ 'size' ] ) ) 1658 1659 return $dirsize[ $directory ][ 'size' ]; … … 1660 1661 if ( false == is_array( $dirsize ) ) 1661 1662 $dirsize = array(); 1662 1663 1663 $dirsize[ $directory ][ 'size' ] = recurse_dirsize( $directory );1664 $dirsize[ $directory ][ 'size' ] = recurse_dirsize( $directory, $exclude ); 1664 1665 1665 1666 set_transient( 'dirsize_cache', $dirsize, HOUR_IN_SECONDS ); 1666 1667 return $dirsize[ $directory ][ 'size' ]; … … 1675 1676 * @since MU 1676 1677 * 1677 1678 * @param string $directory 1679 * @param string $exclude Optional. Directory to exclude from the total. 1678 1680 * @return int 1679 1681 */ 1680 function recurse_dirsize( $directory ) {1682 function recurse_dirsize( $directory, $exclude = null ) { 1681 1683 $size = 0; 1682 1684 1683 1685 $directory = untrailingslashit( $directory ); 1684 1686 1685 if ( ! file_exists($directory) || !is_dir( $directory ) || !is_readable( $directory ))1687 if ( ! file_exists( $directory ) || ! is_dir( $directory ) || ! is_readable( $directory ) || $directory == $exclude ) 1686 1688 return false; 1687 1689 1688 1690 if ($handle = opendir($directory)) { … … 1692 1694 if (is_file($path)) { 1693 1695 $size += filesize($path); 1694 1696 } elseif (is_dir($path)) { 1695 $handlesize = recurse_dirsize( $path);1697 $handlesize = recurse_dirsize( $path, $exclude ); 1696 1698 if ($handlesize > 0) 1697 1699 $size += $handlesize; 1698 1700 } … … 2251 2253 $space_used = apply_filters( 'pre_get_space_used', false ); 2252 2254 if ( false === $space_used ) { 2253 2255 $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; 2255 2258 } 2256 2259 2257 2260 return $space_used;