diff options
author | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2006-07-20 20:04:20 +0000 |
---|---|---|
committer | donncha <donncha@7be80a69-a1ef-0310-a953-fb0f7c49ff36> | 2006-07-20 20:04:20 +0000 |
commit | 85215fc32703b0dedf6cb54b8d06942348b1c4a5 (patch) | |
tree | a1d1f524eb22056234809606834b553b8c9513c2 /wp-admin | |
parent | 3ebc1ff3d2b56e4b3a934dcec57fde7d7bbf4636 (diff) | |
download | wordpress-mu-85215fc32703b0dedf6cb54b8d06942348b1c4a5.tar.gz wordpress-mu-85215fc32703b0dedf6cb54b8d06942348b1c4a5.tar.xz wordpress-mu-85215fc32703b0dedf6cb54b8d06942348b1c4a5.zip |
Delete uploaded files when blog is deleted by site admin (#94)
git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@698 7be80a69-a1ef-0310-a953-fb0f7c49ff36
Diffstat (limited to 'wp-admin')
-rw-r--r-- | wp-admin/admin-db.php | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/wp-admin/admin-db.php b/wp-admin/admin-db.php index 2b1327b..ea9c5e2 100644 --- a/wp-admin/admin-db.php +++ b/wp-admin/admin-db.php @@ -512,6 +512,36 @@ function wpmu_delete_blog($blog_id, $drop = false) { $wpdb->query( "DROP TABLE IF EXISTS $val" ); $wpdb->query( "DELETE FROM $wpdb->blogs WHERE blog_id = '$blog_id'" ); + $dir = ABSPATH . "wp-content/blogs.dir/{$blog_id}/files"; + $dir = rtrim($dir, DIRECTORY_SEPARATOR); + $top_dir = $dir; + $stack = array($dir); + $index = 0; + + while ($index < count($stack)) { + # Get indexed directory from stack + $dir = $stack[$index]; + + $dh = @ opendir($dir); + if ($dh) { + while (($file = @ readdir($dh)) !== false) { + if ($file == '.' or $file == '..') + continue; + + if (@ is_dir($dir . DIRECTORY_SEPARATOR . $file)) + $stack[] = $dir . DIRECTORY_SEPARATOR . $file; + else if (@ is_file($dir . DIRECTORY_SEPARATOR . $file)) + @ unlink($dir . DIRECTORY_SEPARATOR . $file); + } + } + $index++; + } + + $stack = array_reverse($stack); // Last added dirs are deepest + foreach($stack as $dir) { + if ( $dir != $top_dir) + @ rmdir($dir); + } } if ( $switch ) |