X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/449d082fcc4873c1f7d363a0d9f7409be7f6e77d..245e789b234afa4525862e7a6e5e3c2e7a52ef20:/wp-admin/edit.php?ds=sidebyside diff --git a/wp-admin/edit.php b/wp-admin/edit.php index 9d148a81..a062b091 100644 --- a/wp-admin/edit.php +++ b/wp-admin/edit.php @@ -1,315 +1,324 @@ post_type == 'attachment' ) { - if ( ! wp_delete_attachment($post_id_del) ) - wp_die( __('Error in deleting...') ); - } else { - if ( !wp_delete_post($post_id_del) ) - wp_die( __('Error in deleting...') ); - } - $deleted++; - } - } - break; - case 'edit': - if ( isset($_GET['post']) && isset($_GET['bulk_edit']) ) { - check_admin_referer('bulk-posts'); +if ( ! $post_type_object ) + wp_die( __( 'Invalid post type' ) ); - if ( -1 == $_GET['_status'] ) { - $_GET['post_status'] = null; - unset($_GET['_status'], $_GET['post_status']); - } else { - $_GET['post_status'] = $_GET['_status']; - } +if ( ! current_user_can( $post_type_object->cap->edit_posts ) ) + wp_die( __( 'Cheatin’ uh?' ) ); - $done = bulk_edit_posts($_GET); - } - break; - } +$wp_list_table = _get_list_table('WP_Posts_List_Table'); +$pagenum = $wp_list_table->get_pagenum(); - $sendback = wp_get_referer(); - if ( strpos($sendback, 'post.php') !== false ) $sendback = admin_url('post-new.php'); - elseif ( strpos($sendback, 'attachments.php') !== false ) $sendback = admin_url('attachments.php'); - if ( isset($done) ) { - $done['updated'] = count( $done['updated'] ); - $done['skipped'] = count( $done['skipped'] ); - $done['locked'] = count( $done['locked'] ); - $sendback = add_query_arg( $done, $sendback ); +// Back-compat for viewing comments of an entry +foreach ( array( 'p', 'attachment_id', 'page_id' ) as $_redirect ) { + if ( ! empty( $_REQUEST[ $_redirect ] ) ) { + wp_redirect( admin_url( 'edit-comments.php?p=' . absint( $_REQUEST[ $_redirect ] ) ) ); + exit; } - if ( isset($deleted) ) - $sendback = add_query_arg('deleted', $deleted, $sendback); - wp_redirect($sendback); - exit(); -} elseif ( 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; } +unset( $_redirect ); -if ( empty($title) ) - $title = __('Edit Posts'); -$parent_file = 'edit.php'; -wp_enqueue_script('inline-edit-post'); +if ( 'post' != $post_type ) { + $parent_file = "edit.php?post_type=$post_type"; + $submenu_file = "edit.php?post_type=$post_type"; + $post_new_file = "post-new.php?post_type=$post_type"; +} else { + $parent_file = 'edit.php'; + $submenu_file = 'edit.php'; + $post_new_file = 'post-new.php'; +} -list($post_stati, $avail_post_stati) = wp_edit_posts_query(); +$doaction = $wp_list_table->current_action(); + +if ( $doaction ) { + check_admin_referer('bulk-posts'); + + $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'locked', 'ids'), wp_get_referer() ); + if ( ! $sendback ) + $sendback = admin_url( $parent_file ); + $sendback = add_query_arg( 'paged', $pagenum, $sendback ); + if ( strpos($sendback, 'post.php') !== false ) + $sendback = admin_url($post_new_file); + + if ( 'delete_all' == $doaction ) { + $post_status = preg_replace('/[^a-z0-9_-]+/i', '', $_REQUEST['post_status']); + if ( get_post_status_object($post_status) ) // Check the post status exists first + $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type=%s AND post_status = %s", $post_type, $post_status ) ); + $doaction = 'delete'; + } elseif ( isset( $_REQUEST['media'] ) ) { + $post_ids = $_REQUEST['media']; + } elseif ( isset( $_REQUEST['ids'] ) ) { + $post_ids = explode( ',', $_REQUEST['ids'] ); + } elseif ( !empty( $_REQUEST['post'] ) ) { + $post_ids = array_map('intval', $_REQUEST['post']); + } -require_once('admin-header.php'); + if ( !isset( $post_ids ) ) { + wp_redirect( $sendback ); + exit; + } -if ( !isset( $_GET['paged'] ) ) - $_GET['paged'] = 1; + switch ( $doaction ) { + case 'trash': + $trashed = $locked = 0; -if ( empty($_GET['mode']) ) - $mode = 'list'; -else - $mode = attribute_escape($_GET['mode']); ?> + foreach( (array) $post_ids as $post_id ) { + if ( !current_user_can( 'delete_post', $post_id) ) + wp_die( __('You are not allowed to move this item to the Trash.') ); -
- $trashed, 'ids' => join(',', $post_ids), 'locked' => $locked ), $sendback ); + break; + case 'untrash': + $untrashed = 0; + foreach( (array) $post_ids as $post_id ) { + if ( !current_user_can( 'delete_post', $post_id) ) + wp_die( __('You are not allowed to restore this item from the Trash.') ); -if ( isset($_GET['deleted']) && (int) $_GET['deleted'] ) { - printf( __ngettext( 'Post deleted.', '%s posts deleted.', $_GET['deleted'] ), number_format_i18n( $_GET['deleted'] ) ); - unset($_GET['deleted']); -} + if ( !wp_untrash_post($post_id) ) + wp_die( __('Error in restoring from Trash.') ); -$_SERVER['REQUEST_URI'] = remove_query_arg( array('locked', 'skipped', 'updated', 'deleted'), $_SERVER['REQUEST_URI'] ); -?> -