X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/7688c6ba71852cd89123b62b2d57683535e4702a..f9001779751f83dc8a10e478bfecb4d8dd5f964c:/wp-admin/edit.php
diff --git a/wp-admin/edit.php b/wp-admin/edit.php
index ba4cc04a..39424ac9 100644
--- a/wp-admin/edit.php
+++ b/wp-admin/edit.php
@@ -1,223 +1,267 @@
array(__('Published'), __('Published posts')),
- 'future' => array(__('Scheduled'), __('Scheduled posts')),
- 'pending' => array(__('Pending Review'), __('Pending posts')),
- 'draft' => array(__('Draft'), _c('Drafts|manage posts header')),
- 'private' => array(__('Private'), __('Private posts'))
- );
-
-$avail_post_stati = $wpdb->get_col("SELECT DISTINCT post_status FROM $wpdb->posts WHERE post_type = 'post'");
-
-$post_status_q = '';
-$post_status_label = __('Posts');
-if ( isset($_GET['post_status']) && in_array( $_GET['post_status'], array_keys($post_stati) ) ) {
- $post_status_label = $post_stati[$_GET['post_status']][1];
- $post_status_q = '&post_status=' . $_GET['post_status'];
-}
-?>
+/**
+ * Edit Posts Administration Panel.
+ *
+ * @package WordPress
+ * @subpackage Administration
+ */
+
+/** WordPress Administration Bootstrap */
+require_once( './admin.php' );
+
+if ( !isset($_GET['post_type']) )
+ $post_type = 'post';
+elseif ( in_array( $_GET['post_type'], get_post_types( array('show_ui' => true ) ) ) )
+ $post_type = $_GET['post_type'];
+else
+ wp_die( __('Invalid post type') );
-
+$_GET['post_type'] = $post_type;
-cap->edit_posts) )
+ wp_die(__('Cheatin’ uh?'));
-wp("what_to_show=posts$post_status_q&posts_per_page=15&order=$order&orderby=$orderby");
+$wp_list_table = _get_list_table('WP_Posts_List_Table');
+$pagenum = $wp_list_table->get_pagenum();
-// define the columns to display, the syntax is 'internal name' => 'display name'
-$posts_columns = array();
-$posts_columns['id'] = '
' . __('ID') . '
';
-if ( 'draft' === $_GET['post_status'] )
- $posts_columns['modified'] = __('Modified');
-elseif ( 'pending' === $_GET['post_status'] )
- $posts_columns['modified'] = __('Submitted');
-else
- $posts_columns['date'] = __('When');
-$posts_columns['title'] = __('Title');
-$posts_columns['categories'] = __('Categories');
-if ( !in_array($_GET['post_status'], array('pending', 'draft', 'future')) )
- $posts_columns['comments'] = '
' . __('Comments') . '
';
-$posts_columns['author'] = __('Author');
+// 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;
+ }
+}
+unset( $_redirect );
-$posts_columns = apply_filters('manage_posts_columns', $posts_columns);
+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';
+}
-// you can not edit these at the moment
-$posts_columns['control_view'] = '';
-$posts_columns['control_edit'] = '';
-$posts_columns['control_delete'] = '';
+$doaction = $wp_list_table->current_action();
+
+if ( $doaction ) {
+ check_admin_referer('bulk-posts');
+
+ $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() );
+ $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']);
+ }
-?>
+ if ( !isset( $post_ids ) ) {
+ wp_redirect( $sendback );
+ exit;
+ }
-
post_title));
-} else {
- if ( $post_listing_pageable && !is_archive() && !is_search() )
- $h2_noun = is_paged() ? sprintf(__( 'Previous %s' ), $post_status_label) : sprintf(__('Latest %s'), $post_status_label);
- else
- $h2_noun = $post_status_label;
- // Use $_GET instead of is_ since they can override each other
- $h2_author = '';
- $_GET['author'] = (int) $_GET['author'];
- if ( $_GET['author'] != 0 ) {
- if ( $_GET['author'] == '-' . $user_ID ) { // author exclusion
- $h2_author = ' ' . __('by other authors');
- } else {
- $author_user = get_userdata( get_query_var( 'author' ) );
- $h2_author = ' ' . sprintf(__('by %s'), wp_specialchars( $author_user->display_name ));
- }
+ switch ( $doaction ) {
+ case 'trash':
+ $trashed = 0;
+ foreach( (array) $post_ids as $post_id ) {
+ if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
+ wp_die( __('You are not allowed to move this item to the Trash.') );
+
+ if ( !wp_trash_post($post_id) )
+ wp_die( __('Error in moving to Trash.') );
+
+ $trashed++;
+ }
+ $sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids) ), $sendback );
+ break;
+ case 'untrash':
+ $untrashed = 0;
+ foreach( (array) $post_ids as $post_id ) {
+ if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
+ wp_die( __('You are not allowed to restore this item from the Trash.') );
+
+ if ( !wp_untrash_post($post_id) )
+ wp_die( __('Error in restoring from Trash.') );
+
+ $untrashed++;
+ }
+ $sendback = add_query_arg('untrashed', $untrashed, $sendback);
+ break;
+ case 'delete':
+ $deleted = 0;
+ foreach( (array) $post_ids as $post_id ) {
+ $post_del = & get_post($post_id);
+
+ if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
+ wp_die( __('You are not allowed to delete this item.') );
+
+ if ( $post_del->post_type == 'attachment' ) {
+ if ( ! wp_delete_attachment($post_id) )
+ wp_die( __('Error in deleting...') );
+ } else {
+ if ( !wp_delete_post($post_id) )
+ wp_die( __('Error in deleting...') );
+ }
+ $deleted++;
+ }
+ $sendback = add_query_arg('deleted', $deleted, $sendback);
+ break;
+ case 'edit':
+ $done = bulk_edit_posts($_REQUEST);
+
+ if ( is_array($done) ) {
+ $done['updated'] = count( $done['updated'] );
+ $done['skipped'] = count( $done['skipped'] );
+ $done['locked'] = count( $done['locked'] );
+ $sendback = add_query_arg( $done, $sendback );
+ }
+ break;
}
- $h2_search = isset($_GET['s']) && $_GET['s'] ? ' ' . sprintf(__('matching “%s”'), wp_specialchars( get_search_query() ) ) : '';
- $h2_cat = isset($_GET['cat']) && $_GET['cat'] ? ' ' . sprintf( __('in “%s”'), single_cat_title('', false) ) : '';
- $h2_month = isset($_GET['m']) && $_GET['m'] ? ' ' . sprintf( __('during %s'), single_month_title(' ', false) ) : '';
- printf( _c( '%1$s%2$s%3$s%4$s%5$s|You can reorder these: 1: Posts, 2: by {s}, 3: matching {s}, 4: in {s}, 5: during {s}' ), $h2_noun, $h2_author, $h2_search, $h2_cat, $h2_month );
+
+ $sendback = remove_query_arg( array('action', 'action2', 'tags_input', 'post_author', 'comment_status', 'ping_status', '_status', 'post', 'bulk_edit', 'post_view'), $sendback );
+
+ wp_redirect($sendback);
+ exit();
+} elseif ( ! empty($_REQUEST['_wp_http_referer']) ) {
+ wp_redirect( remove_query_arg( array('_wp_http_referer', '_wpnonce'), stripslashes($_SERVER['REQUEST_URI']) ) );
+ exit;
}
-?>
-
-