Move blog deletion to ms-delete-site.php. see #11644

git-svn-id: http://svn.automattic.com/wordpress/trunk@12828 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2010-01-25 22:46:41 +00:00
parent b090a0336f
commit 9fc2bef3d1
4 changed files with 69 additions and 83 deletions

View File

@ -136,6 +136,8 @@ $menu[75] = array( __('Tools'), 'read', 'tools.php', '', 'menu-top', 'menu-tools
$submenu['tools.php'][15] = array( __('Export'), 'import', 'export.php' );
if ( is_super_admin() )
$submenu['tools.php'][20] = array( __('Upgrade'), 'install_plugins', 'update-core.php');
if ( is_multisite() && ($current_blog->domain . $current_blog->path != $current_site->domain . $current_site->path) )
$submenu['tools.php'][25] = array( __('Delete Blog'), 'manage_options', 'ms-delete-site.php' );
$menu[80] = array( __('Settings'), 'manage_options', 'options-general.php', '', 'menu-top', 'menu-settings', 'div' );
$submenu['options-general.php'][10] = array(_x('General', 'settings screen'), 'manage_options', 'options-general.php');
@ -147,9 +149,8 @@ $menu[80] = array( __('Settings'), 'manage_options', 'options-general.php', '',
$submenu['options-general.php'][40] = array(__('Permalinks'), 'manage_options', 'options-permalink.php');
if ( is_super_admin() )
$submenu['options-general.php'][45] = array(__('Miscellaneous'), 'manage_options', 'options-misc.php');
if ( !is_multisite() && is_super_admin() ) {
if ( !is_multisite() && is_super_admin() )
$submenu['options-general.php'][50] = array(__('Network'), 'manage_options', 'options-network.php');
}
$_wp_last_utility_menu = 80; // The index of the last top-level menu in the utility menu group

View File

@ -0,0 +1,63 @@
<?php
require_once('admin.php');
if ( !is_multisite() )
wp_die( __('Multisite support is not enabled.') );
$action = isset($_POST['action']) ? $_POST['action'] : 'splash';
$title = __('Delete Blog');
$parent_file = 'tools.php';
require_once('admin-header.php');
echo '<div class="wrap">';
screen_icon();
echo '<h2>'. esc_html($title) .'</h2>';
if ( isset($_POST['action']) && $_POST['action'] == "deleteblog" && isset($_POST['confirmdelete']) && $_POST['confirmdelete'] == '1' ) {
$hash = wp_generate_password(20, false);
update_option( "delete_blog_hash", $hash );
$url_delete = admin_url('ms-delete-site.php?h=' . $hash);
$msg = __("Dear User,
You recently clicked the 'Delete Blog' link on your blog and filled in a
form on that page.
If you really want to delete your blog, click the link below. You will not
be asked to confirm again so only click this link if you are 100% certain:
URL_DELETE
If you delete your blog, please consider opening a new blog here
some time in the future! (But remember your current blog and username
are gone forever.)
Thanks for using the site,
Webmaster
SITE_NAME
");
$msg = str_replace( "URL_DELETE", $url_delete, $msg );
$msg = str_replace( "SITE_NAME", $current_site->site_name, $msg );
wp_mail( get_option( "admin_email" ), "[ " . get_option( "blogname" ) . " ] ".__("Delete My Blog"), $msg );
?>
<p><?php _e('Thank you. Please check your email for a link to confirm your action. Your blog will not be deleted until this link is clicked.') ?></p>
<?php
} elseif ( isset( $_GET['h'] ) && $_GET['h'] != '' && get_option('delete_blog_hash') != false ) {
if ( get_option('delete_blog_hash') == $_GET['h'] ) {
wpmu_delete_blog( $wpdb->blogid );
echo "<p>" . sprintf(__('Thank you for using %s, your blog has been deleted. Happy trails to you until we meet again.'), $current_site->site_name) . "</p>";
} else {
echo "<p>" . __("I'm sorry, the link you clicked is stale. Please select another option.") . "</p>";
}
} else {
?>
<p><?php printf(__('If you do not want to use your %s blog any more, you can delete it using the form below. When you click <strong>Delete My Blog</strong> you will be sent an email with a link in it. Click on this link to delete your blog.'), $current_site->site_name); ?></p>
<p><?php _e('Remember, once deleted your blog cannot be restored.') ?></p>
<form method='post' name='deletedirect'>
<input type='hidden' name='action' value='deleteblog' />
<p><input id='confirmdelete' type='checkbox' name='confirmdelete' value='1' /> <label for='confirmdelete'><strong><?php printf( __("I'm sure I want to permanently disable my blog, and I am aware I can never get it back or use %s again."), $current_blog->domain); ?></strong></label></p>
<p class="submit"><input type='submit' value='<?php esc_attr_e('Delete My Blog Permanently') ?>' /></p>
</form>
<?php
}
echo '</div>';
include('admin-footer.php');
?>

View File

@ -598,13 +598,13 @@ function update_blog_status( $blog_id, $pref, $value, $refresh = true ) {
$wpdb->update( $wpdb->blogs, array($pref => $value, 'last_updated' => current_time('mysql', true)), array('blog_id' => $blog_id) );
if ( $refresh )
refresh_blog_details($id);
refresh_blog_details($blog_id);
if ( $pref == 'spam' ) {
if ( $value == 1 )
do_action( "make_spam_blog", $id );
do_action( "make_spam_blog", $blog_id );
else
do_action( "make_ham_blog", $id );
do_action( "make_ham_blog", $blog_id );
}
return $value;
@ -1766,83 +1766,6 @@ function fix_import_form_size( $size ) {
return $size; // default
}
/* Delete blog */
class delete_blog {
function delete_blog() {
$this->reallydeleteblog = false;
add_action('admin_menu', array(&$this, 'admin_menu'));
add_action('admin_footer', array(&$this, 'admin_footer'));
}
function admin_footer() {
global $wpdb, $current_blog, $current_site;
if ( $current_blog->domain . $current_blog->path == $current_site->domain . $current_site->path )
return false;
if ( $this->reallydeleteblog == true )
wpmu_delete_blog( $wpdb->blogid );
}
function admin_menu() {
global $current_blog, $current_site;
if ( $current_blog->domain . $current_blog->path != $current_site->domain . $current_site->path )
add_submenu_page('options-general.php', __('Delete Blog'), __('Delete Blog'), 'manage_options', 'delete-blog', array(&$this, 'plugin_content'));
}
function plugin_content() {
global $current_blog, $current_site;
$this->delete_blog_hash = get_settings('delete_blog_hash');
echo '<div class="wrap"><h2>' . __('Delete Blog') . '</h2>';
if ( $_POST['action'] == "deleteblog" && $_POST['confirmdelete'] == '1' ) {
$hash = substr( md5( $_SERVER['REQUEST_URI'] . time() ), 0, 6 );
update_option( "delete_blog_hash", $hash );
$url_delete = get_option( "siteurl" ) . "/wp-admin/options-general.php?page=delete-blog&h=" . $hash;
$msg = __("Dear User,
You recently clicked the 'Delete Blog' link on your blog and filled in a
form on that page.
If you really want to delete your blog, click the link below. You will not
be asked to confirm again so only click this link if you are 100% certain:
URL_DELETE
If you delete your blog, please consider opening a new blog here
some time in the future! (But remember your current blog and username
are gone forever.)
Thanks for using the site,
Webmaster
SITE_NAME
");
$msg = str_replace( "URL_DELETE", $url_delete, $msg );
$msg = str_replace( "SITE_NAME", $current_site->site_name, $msg );
wp_mail( get_option( "admin_email" ), "[ " . get_option( "blogname" ) . " ] ".__("Delete My Blog"), $msg );
?>
<p><?php _e('Thank you. Please check your email for a link to confirm your action. Your blog will not be deleted until this link is clicked.') ?></p>
<?php
} elseif ( isset( $_GET['h'] ) && $_GET['h'] != '' && get_option('delete_blog_hash') != false ) {
if ( get_option('delete_blog_hash') == $_GET['h'] ) {
$this->reallydeleteblog = true;
echo "<p>" . sprintf(__('Thank you for using %s, your blog has been deleted. Happy trails to you until we meet again.'), $current_site->site_name) . "</p>";
} else {
$this->reallydeleteblog = false;
echo "<p>" . __("I'm sorry, the link you clicked is stale. Please select another option.") . "</p>";
}
} else {
?>
<p><?php printf(__('If you do not want to use your %s blog any more, you can delete it using the form below. When you click <strong>Delete My Blog</strong> you will be sent an email with a link in it. Click on this link to delete your blog.'), $current_site->site_name); ?></p>
<p><?php _e('Remember, once deleted your blog cannot be restored.') ?></p>
<form method='post' name='deletedirect'>
<input type="hidden" name="page" value="<?php echo esc_attr($_GET['page']) ?>" />
<input type='hidden' name='action' value='deleteblog' />
<p><input id='confirmdelete' type='checkbox' name='confirmdelete' value='1' /> <label for='confirmdelete'><strong><?php printf( __("I'm sure I want to permanently disable my blog, and I am aware I can never get it back or use %s again."), $current_blog->domain); ?></strong></label></p>
<p class="submit"><input type='submit' value='<?php esc_attr_e('Delete My Blog Permanently') ?>' /></p>
</form>
<?php
}
echo "</div>";
}
}
$delete_blog_obj = new delete_blog();
/* Global Categories */
function global_terms( $term_id, $deprecated = '' ) {
global $wpdb;

View File

@ -1791,4 +1791,3 @@ function wp_text_diff( $left_string, $right_string, $args = null ) {
return $r;
}
endif;