X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/7688c6ba71852cd89123b62b2d57683535e4702a..refs/tags/wordpress-2.9:/wp-admin/categories.php diff --git a/wp-admin/categories.php b/wp-admin/categories.php index cc2b37a5..9639281f 100644 --- a/wp-admin/categories.php +++ b/wp-admin/categories.php @@ -1,10 +1,20 @@ %s category: this is the default one"), $cat_name)); + if ( $cat_ID == get_option('default_category') ) + wp_die( sprintf( __("Can’t delete the %s category: this is the default one"), get_cat_name($cat_ID) ) ); wp_delete_category($cat_ID); - wp_redirect('categories.php?message=2'); + wp_safe_redirect( add_query_arg( 'message', 2, wp_get_referer() ) ); exit; break; +case 'bulk-delete': + check_admin_referer('bulk-categories'); + + if ( !current_user_can('manage_categories') ) + wp_die( __('You are not allowed to delete categories.') ); + + $cats = (array) $_GET['delete']; + $default_cat = get_option('default_category'); + foreach ( $cats as $cat_ID ) { + $cat_ID = (int) $cat_ID; + + // Don't delete the default cat. + if ( $cat_ID == $default_cat ) + wp_die( sprintf( __("Can’t delete the %s category: this is the default one"), get_cat_name($cat_ID) ) ); + + wp_delete_category($cat_ID); + } + + wp_safe_redirect( wp_get_referer() ); + exit; + +break; case 'edit': + $title = __('Edit Category'); + require_once ('admin-header.php'); $cat_ID = (int) $_GET['cat_ID']; $category = get_category_to_edit($cat_ID); @@ -59,17 +96,33 @@ case 'editedcat': if ( !current_user_can('manage_categories') ) wp_die(__('Cheatin’ uh?')); + $location = 'categories.php'; + if ( $referer = wp_get_original_referer() ) { + if ( false !== strpos($referer, 'categories.php') ) + $location = $referer; + } + if ( wp_update_category($_POST) ) - wp_redirect('categories.php?message=3'); + $location = add_query_arg('message', 3, $location); else - wp_redirect('categories.php?message=5'); + $location = add_query_arg('message', 5, $location); + + wp_redirect($location); exit; break; default: -wp_enqueue_script( 'admin-categories' ); +if ( isset($_GET['_wp_http_referer']) && ! empty($_GET['_wp_http_referer']) ) { + wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) ) ); + exit; +} + +wp_enqueue_script('admin-categories'); +if ( current_user_can('manage_categories') ) + wp_enqueue_script('inline-edit-tax'); + require_once ('admin-header.php'); $messages[1] = __('Category added.'); @@ -79,46 +132,177 @@ $messages[4] = __('Category not added.'); $messages[5] = __('Category not updated.'); ?> - -