WordPress.org

Make WordPress Core

Changeset 11741


Ignore:
Timestamp:
07/24/09 07:23:11 (6 years ago)
Author:
azaozz
Message:

"Trash" status for comments updates, props caesarsgrunt, see #4529

Location:
trunk
Files:
7 edited

Legend:

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

    r11731 r11741  
    251251<option value="unapprove"><?php _e('Unapprove'); ?></option> 
    252252<?php endif; ?> 
    253 <?php if ( 'approved' != $comment_status ): ?> 
     253<?php if ( 'all' == $comment_status || 'moderated' == $comment_status || 'spam' == $comment_status ): ?> 
    254254<option value="approve"><?php _e('Approve'); ?></option> 
    255255<?php endif; ?> 
    256 <?php if ( 'spam' != $comment_status ): ?> 
     256<?php if ( 'all' == $comment_status || 'approved' == $comment_status || 'moderated' == $comment_status ): ?> 
    257257<option value="markspam"><?php _e('Mark as Spam'); ?></option> 
     258<?php endif; ?> 
     259<?php if ( 'deleted' == $comment_status ): ?> 
     260<option value="unapprove"><?php _e('Return to Pending'); ?></option> 
    258261<?php endif; ?> 
    259262<?php if ( 'deleted' == $comment_status || 'spam' == $comment_status ): ?> 
    260263<option value="destroy"><?php _e('Delete Permanently'); ?></option> 
    261264<?php else: ?> 
    262 <option value="delete"><?php _e('Delete'); ?></option> 
     265<option value="delete"><?php _e('Move to Trash'); ?></option> 
    263266<?php endif; ?> 
    264267</select> 
     
    287290<?php } 
    288291 
    289 if ( 'spam' == $comment_status || 'deleted' == $comment_status ) { 
     292if ( ( 'spam' == $comment_status || 'deleted' == $comment_status) && current_user_can ('moderate_comments') ) { 
    290293    wp_nonce_field('bulk-destroy', '_destroy_nonce'); 
    291         if ( current_user_can ('moderate_comments')) { ?> 
     294    if ( 'spam' == $comment_status ) { ?> 
    292295        <input type="submit" name="destroy_all" id="destroy_all" value="<?php esc_attr_e('Permanently Delete All'); ?>" class="button-secondary apply" /> 
     296<?php } elseif ( 'deleted' == $comment_status ) { ?> 
     297        <input type="submit" name="destroy_all" id="destroy_all" value="<?php esc_attr_e('Empty Trash'); ?>" class="button-primary apply" /> 
    293298<?php } 
    294299} ?> 
     
    342347<option value="unapprove"><?php _e('Unapprove'); ?></option> 
    343348<?php endif; ?> 
    344 <?php if ( 'approved' != $comment_status ): ?> 
     349<?php if ( 'all' == $comment_status || 'moderated' == $comment_status || 'spam' == $comment_status ): ?> 
    345350<option value="approve"><?php _e('Approve'); ?></option> 
    346351<?php endif; ?> 
    347 <?php if ( 'spam' != $comment_status ): ?> 
     352<?php if ( 'all' == $comment_status || 'approved' == $comment_status || 'moderated' == $comment_status ): ?> 
    348353<option value="markspam"><?php _e('Mark as Spam'); ?></option> 
     354<?php endif; ?> 
     355<?php if ( 'deleted' == $comment_status ): ?> 
     356<option value="unapprove"><?php _e('Return to Pending'); ?></option> 
    349357<?php endif; ?> 
    350358<?php if ( 'deleted' == $comment_status || 'spam' == $comment_status ): ?> 
    351359<option value="destroy"><?php _e('Delete Permanently'); ?></option> 
    352360<?php else: ?> 
    353 <option value="delete"><?php _e('Delete'); ?></option> 
     361<option value="delete"><?php _e('Move to Trash'); ?></option> 
    354362<?php endif; ?> 
    355363</select> 
    356364<input type="submit" name="doaction2" id="doaction2" value="<?php esc_attr_e('Apply'); ?>" class="button-secondary apply" /> 
    357365 
    358 <?php if ( 'spam' == $comment_status || 'deleted' == $comment_status ) { ?> 
    359 <input type="submit" name="destroy_all2" id="destroy_all2" value="<?php esc_attr_e('Permanently Delete All'); ?>" class="button-secondary apply" /> 
     366<?php if ( 'spam' == $comment_status ) { ?> 
     367<input type="submit" name="destroy_all2" id="destroy_all2" value="<?php esc_attr_e('Empty Quarantine'); ?>" class="button-secondary apply" /> 
     368<?php } elseif ( 'deleted' == $comment_status ) { ?> 
     369<input type="submit" name="destroy_all2" id="destroy_all2" value="<?php esc_attr_e('Empty Trash'); ?>" class="button-secondary apply" /> 
    360370<?php } ?> 
    361371<?php do_action('manage_comments_nav', $comment_status); ?> 
  • trunk/wp-admin/includes/dashboard.php

    r11708 r11741  
    540540        $actions['unapprove'] = "<a href='$unapprove_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved vim-u' title='" . __( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>'; 
    541541        $actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . __('Edit comment') . "'>". __('Edit') . '</a>'; 
    542         //$actions['quickedit'] = '<a onclick="commentReply.open(\''.$comment->comment_ID.'\',\''.$comment->comment_post_ID.'\',\'edit\');return false;" class="vim-q" title="'.__('Quick Edit').'" href="#">' . __('Quick&nbsp;Edit') . '</a>'; 
    543542        $actions['reply'] = '<a onclick="commentReply.open(\''.$comment->comment_ID.'\',\''.$comment->comment_post_ID.'\');return false;" class="vim-r hide-if-no-js" title="'.__('Reply to this comment').'" href="#">' . __('Reply') . '</a>'; 
    544543        $actions['spam'] = "<a href='$spam_url' class='delete:the-comment-list:comment-$comment->comment_ID::spam=1 vim-s vim-destructive' title='" . __( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */  _x( 'Spam', 'verb' ) . '</a>'; 
    545         $actions['delete'] = "<a href='$delete_url' class='delete:the-comment-list:comment-$comment->comment_ID delete vim-d vim-destructive'>" . __('Delete') . '</a>'; 
     544        $actions['delete'] = "<a href='$delete_url' class='delete:the-comment-list:comment-$comment->comment_ID delete vim-d vim-destructive'>" . __('Move to Trash') . '</a>'; 
    546545 
    547546        $actions = apply_filters( 'comment_row_actions', $actions, $comment ); 
  • trunk/wp-admin/includes/template.php

    r11731 r11741  
    21602160                        } else { 
    21612161                            $actions['spam'] = "<a href='$spam_url' class='delete:the-comment-list:comment-$comment->comment_ID::spam=1 vim-s vim-destructive' title='" . __( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '</a>'; 
    2162                             $actions['delete'] = "<a href='$delete_url' class='delete:the-comment-list:comment-$comment->comment_ID delete vim-d vim-destructive'>" . __('Delete') . '</a>'; 
     2162                            $actions['delete'] = "<a href='$delete_url' class='delete:the-comment-list:comment-$comment->comment_ID delete vim-d vim-destructive'>" . __('Move to Trash') . '</a>'; 
    21632163                        } 
    21642164 
  • trunk/wp-includes/comment.php

    r11734 r11741  
    744744    do_action('delete_comment', $comment_id); 
    745745     
    746     wp_unschedule_comment_destruction($comment_id); 
     746    wp_unschedule_comment_delete($comment_id); 
    747747 
    748748    $comment = get_comment($comment_id); 
     
    10381038function wp_set_comment_status($comment_id, $comment_status, $wp_error = false) { 
    10391039    global $wpdb; 
    1040     wp_unschedule_comment_destruction($comment_id); 
     1040    wp_unschedule_comment_delete($comment_id); 
    10411041     
    10421042    $status = '0'; 
     
    10591059                return wp_delete_comment($comment_id); 
    10601060            $status = 'deleted'; 
    1061             wp_schedule_comment_destruction($comment_id); 
     1061            wp_schedule_comment_delete($comment_id); 
    10621062            break; 
    10631063        default: 
     
    10921092 * @return void 
    10931093 */ 
    1094 function wp_schedule_comment_destruction($comment_id) { 
    1095     $to_destroy = get_option('to_destroy'); 
    1096     if (!is_array($to_destroy)) 
    1097         $to_destroy = array(); 
     1094function wp_schedule_comment_delete($comment_id) { 
     1095    $to_delete = get_option('wp_scheduled_delete'); 
     1096    if ( !is_array($to_delete) ) 
     1097        $to_delete = array(); 
    10981098     
    1099     $to_destroy['comments'][$comment_id] = time(); 
     1099    $to_delete['comments'][$comment_id] = time(); 
    11001100     
    1101     update_option('to_destroy', $to_destroy); 
     1101    update_option('wp_scheduled_delete', $to_delete); 
    11021102} 
    11031103 
     
    11101110 * @return void 
    11111111 */ 
    1112 function wp_unschedule_comment_destruction($comment_id) { 
    1113     $to_destroy = get_option('to_destroy'); 
    1114     if (!is_array($to_destroy)) 
     1112function wp_unschedule_comment_delete($comment_id) { 
     1113    $to_delete = get_option('wp_scheduled_delete'); 
     1114    if ( !is_array($to_delete) ) 
    11151115        return; 
    11161116     
    1117     unset($to_destroy['comments'][$comment_id]); 
     1117    unset($to_delete['comments'][$comment_id]); 
    11181118     
    1119     update_option('to_destroy', $to_destroy); 
     1119    update_option('wp_scheduled_delete', $to_delete); 
    11201120} 
    11211121 
  • trunk/wp-includes/cron.php

    r10969 r11741  
    395395} 
    396396 
    397 ?> 
     397add_action( 'wp_scheduled_delete', 'wp_scheduled_delete' ); 
     398if ( !wp_next_scheduled('wp_scheduled_delete') && !defined('WP_INSTALLING') ) 
     399    wp_schedule_event(time(), 'daily', 'wp_scheduled_delete'); 
  • trunk/wp-includes/functions.php

    r11736 r11741  
    33293329} 
    33303330 
    3331  
    3332  
    33333331/** 
    33343332 * Strip close comment and close php tags from file headers used by WP 
     
    33403338    return trim(preg_replace("/\s*(?:\*\/|\?>).*/", '', $str)); 
    33413339} 
    3342 ?> 
     3340 
     3341/** 
     3342 * Permanently deletes comments that have been scheduled for deleting. 
     3343 * Will do the same for posts, pages, etc in the future. 
     3344 *  
     3345 * @access private 
     3346 * @since 2.9.0 
     3347 * 
     3348 * @return void 
     3349 */ 
     3350function wp_scheduled_delete() { 
     3351    $to_delete = get_option('wp_scheduled_delete'); 
     3352    if (!is_array($to_delete)) 
     3353        return; 
     3354 
     3355    if ( !isset($to_delete['comments']) || !is_array($to_delete['comments']) ) 
     3356        $to_delete['comments'] = array(); 
     3357 
     3358    $delete_delay = defined('EMPTY_TRASH_TIMEOUT') ? (int) EMPTY_TRASH_TIMEOUT : (60*60*24*30); 
     3359    $deletetimestamp = time() - $delete_delay; 
     3360    foreach ($to_delete['comments'] as $comment_id => $timestamp) { 
     3361        if ($timestamp < $deletetimestamp) { 
     3362            wp_delete_comment($comment_id); 
     3363            unset($to_delete['comments'][$comment_id]); 
     3364        } 
     3365    } 
     3366 
     3367    update_option('wp_scheduled_delete', $to_delete); 
     3368} 
  • trunk/wp-includes/pluggable.php

    r11731 r11741  
    17681768endif; 
    17691769 
    1770 /** 
    1771  * Destroys comments which have previously been scheduled for destruction. 
    1772  * Will do the same for posts, pages, etc in the future. 
    1773  *  
    1774  * @access private 
    1775  * @since 2.9.0 
    1776  * 
    1777  * @return void 
    1778  */ 
    1779 function _scheduled_destruction() { 
    1780     $to_destroy = get_option('to_destroy'); 
    1781     if (!is_array($to_destroy)) 
    1782         return; 
    1783  
    1784     $deletetimestamp = time()-(60*60*24*30); 
    1785     foreach ($to_destroy['comments'] as $comment_id => $timestamp) { 
    1786         if ($timestamp < $deletetimestamp) { 
    1787             wp_delete_comment($comment_id); 
    1788             unset($to_destroy['comments'][$comment_id]); 
    1789         } 
    1790     } 
    1791  
    1792     update_option('to_destroy', $to_destroy); 
    1793 } 
    1794 add_action( '_scheduled_destruction', '_scheduled_destruction' ); 
    1795 if ( !wp_next_scheduled('_scheduled_destruction') && !defined('WP_INSTALLING') ) 
    1796     wp_schedule_event(time(), 'daily', '_scheduled_destruction'); 
    1797  
    1798  
Note: See TracChangeset for help on using the changeset viewer.