WordPress.org

Make WordPress Core

Changeset 12121


Ignore:
Timestamp:
10/28/09 02:46:08 (5 years ago)
Author:
azaozz
Message:

Undo for posts, pages and media, props caesarsgrunt, see #4529

Location:
trunk/wp-admin
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/edit-pages.php

    r11952 r12121  
    1616if ( isset($_GET['doaction']) || isset($_GET['doaction2']) || isset($_GET['delete_all']) || isset($_GET['delete_all2']) || isset($_GET['bulk_edit']) ) { 
    1717    check_admin_referer('bulk-pages'); 
    18     $sendback = wp_get_referer(); 
     18    $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() ); 
    1919 
    2020    if ( strpos($sendback, 'page.php') !== false ) 
     
    2525        $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='page' AND post_status = %s", $post_status ) ); 
    2626        $doaction = 'delete'; 
    27     } elseif ( ($_GET['action'] != -1 || $_GET['action2'] != -1) && isset($_GET['post']) ) { 
    28         $post_ids = array_map( 'intval', (array) $_GET['post'] ); 
     27    } elseif ( ( $_GET['action'] != -1 || $_GET['action2'] != -1 ) && ( isset($_GET['post']) || isset($_GET['ids']) ) ) { 
     28        $post_ids = isset($_GET['post']) ? array_map( 'intval', (array) $_GET['post'] ) : explode(',', $_GET['ids']); 
    2929        $doaction = ($_GET['action'] != -1) ? $_GET['action'] : $_GET['action2']; 
    3030    } else { 
     
    4444                $trashed++; 
    4545            } 
    46             $sendback = add_query_arg('trashed', $trashed, $sendback); 
     46            $sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids)), $sendback ); 
    4747            break; 
    4848        case 'untrash': 
     
    164164if ( isset($_GET['trashed']) && (int) $_GET['trashed'] ) { 
    165165    printf( _n( 'Page moved to the trash.', '%s pages moved to the trash.', $_GET['trashed'] ), number_format_i18n( $_GET['trashed'] ) ); 
    166     echo ' <a href="' . admin_url('edit-pages.php?post_status=trash') . '">' . __('View trash') . '</a> '; 
     166    $ids = isset($_GET['ids']) ? $_GET['ids'] : 0; 
     167    echo ' <a href="' . esc_url( wp_nonce_url( "edit-pages.php?doaction=undo&action=untrash&ids=$ids", "bulk-pages" ) ) . '">' . __('Undo?') . '</a><br />'; 
    167168    unset($_GET['trashed']); 
    168169} 
  • trunk/wp-admin/edit.php

    r11952 r12121  
    2424if ( isset($_GET['doaction']) || isset($_GET['doaction2']) || isset($_GET['delete_all']) || isset($_GET['delete_all2']) || isset($_GET['bulk_edit']) ) { 
    2525    check_admin_referer('bulk-posts'); 
    26     $sendback = wp_get_referer(); 
     26    $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() ); 
    2727 
    2828    if ( strpos($sendback, 'post.php') !== false ) 
     
    3333        $post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_type='post' AND post_status = %s", $post_status ) ); 
    3434        $doaction = 'delete'; 
    35     } elseif ( ($_GET['action'] != -1 || $_GET['action2'] != -1) && isset($_GET['post']) ) { 
    36         $post_ids = array_map( 'intval', (array) $_GET['post'] ); 
     35    } elseif ( ( $_GET['action'] != -1 || $_GET['action2'] != -1 ) && ( isset($_GET['post']) || isset($_GET['ids']) ) ) { 
     36        $post_ids = isset($_GET['post']) ? array_map( 'intval', (array) $_GET['post'] ) : explode(',', $_GET['ids']); 
    3737        $doaction = ($_GET['action'] != -1) ? $_GET['action'] : $_GET['action2']; 
    3838    } else { 
     
    5252                $trashed++; 
    5353            } 
    54             $sendback = add_query_arg('trashed', $trashed, $sendback); 
     54            $sendback = add_query_arg( array('trashed' => $trashed, 'ids' => join(',', $post_ids)), $sendback ); 
    5555            break; 
    5656        case 'untrash': 
     
    168168if ( isset($_GET['trashed']) && (int) $_GET['trashed'] ) { 
    169169    printf( _n( 'Post moved to the trash.', '%s posts moved to the trash.', $_GET['trashed'] ), number_format_i18n( $_GET['trashed'] ) ); 
    170     echo ' <a href="' . admin_url('edit.php?post_status=trash') . '">' . __('View trash') . '</a> '; 
     170    $ids = isset($_GET['ids']) ? $_GET['ids'] : 0; 
     171    echo ' <a href="' . esc_url( wp_nonce_url( "edit.php?doaction=undo&action=untrash&ids=$ids", "bulk-posts" ) ) . '">' . __('Undo?') . '</a><br />'; 
    171172    unset($_GET['trashed']); 
    172173} 
  • trunk/wp-admin/page.php

    r12064 r12121  
    157157        wp_die( __('Error in moving to trash...') ); 
    158158 
    159     $sendback = wp_get_referer(); 
     159    $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() ); 
    160160    if ( strpos($sendback, 'page.php') !== false || strpos($sendback, 'page-new.php') !== false ) 
    161         $sendback = admin_url('edit-pages.php?trashed=1'); 
     161        $sendback = admin_url('edit-pages.php?trashed=1&ids='.$post_id); 
    162162    else 
    163         $sendback = add_query_arg('trashed', 1, $sendback); 
     163        $sendback = add_query_arg( array('trashed' => 1, ids => $post_id), $sendback ); 
    164164 
    165165    wp_redirect($sendback); 
  • trunk/wp-admin/post.php

    r12065 r12121  
    197197        wp_die( __('Error in moving to trash...') ); 
    198198 
    199     $sendback = wp_get_referer(); 
     199    $sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), wp_get_referer() ); 
    200200    if ( strpos($sendback, 'post.php') !== false || strpos($sendback, 'post-new.php') !== false ) 
    201         $sendback = admin_url('edit.php?trashed=1'); 
     201        $sendback = admin_url('edit.php?trashed=1&ids='.$post_id); 
    202202    else 
    203         $sendback = add_query_arg('trashed', 1, $sendback); 
     203        $sendback = add_query_arg( array('trashed' => 1, ids => $post_id), $sendback ); 
    204204 
    205205    wp_redirect($sendback); 
  • trunk/wp-admin/upload.php

    r12110 r12121  
    7474        $post_ids = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_type='attachment' AND post_status = 'trash'" ); 
    7575        $doaction = 'delete'; 
    76     } elseif ( ($_GET['action'] != -1 || $_GET['action2'] != -1) && isset($_GET['media']) ) { 
    77         $post_ids = $_GET['media']; 
     76    } elseif ( ( $_GET['action'] != -1 || $_GET['action2'] != -1 ) && ( isset($_GET['media']) || isset($_GET['ids']) ) ) { 
     77        $post_ids = isset($_GET['media']) ? $_GET['media'] : explode(',', $_GET['ids']); 
    7878        $doaction = ($_GET['action'] != -1) ? $_GET['action'] : $_GET['action2']; 
    7979    } else 
     
    8383    if ( $referer = wp_get_referer() ) { 
    8484        if ( false !== strpos($referer, 'upload.php') ) 
    85             $location = $referer; 
     85            $location = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'message', 'ids'), $referer ); 
    8686    } 
    8787 
     
    9595                    wp_die( __('Error in moving to trash...') ); 
    9696            } 
    97             $location = add_query_arg('message', 4, $location); 
     97            $location = add_query_arg( array( 'message' => 4, 'ids' => join(',', $post_ids) ), $location ); 
    9898            break; 
    9999        case 'untrash': 
     
    203203$messages[2] = __('Media permanently deleted.'); 
    204204$messages[3] = __('Error saving media attachment.'); 
    205 $messages[4] = __('Media moved to the trash.') . ' <a href="' . admin_url('upload.php?status=trash') . '">' . __('View trash') . '</a> '; 
     205$messages[4] = __('Media moved to the trash.') . ' <a href="' . esc_url( wp_nonce_url( 'upload.php?doaction=undo&action=untrash&ids='.$_GET['ids'], "bulk-media" ) ) . '">' . __('Undo?') . '</a>'; 
    206206$messages[5] = __('Media restored from the trash.'); 
    207207 
Note: See TracChangeset for help on using the changeset viewer.