Skip to:
Content

bbPress.org

Changeset 5509


Ignore:
Timestamp:
09/11/2014 03:00:44 PM (10 years ago)
Author:
johnjamesjacoby
Message:

Administrative support for un/approving replies. Props netweb. See #2645.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/includes/admin/replies.php

    r5466 r5509  
    159159                '<p>' . __( 'Hovering over a row in the replies list will display action links that allow you to manage your reply. You can perform the following actions:', 'bbpress' ) . '</p>' .
    160160                '<ul>' .
    161                     '<li>' . __( '<strong>Edit</strong> takes you to the editing screen for that reply. You can also reach that screen by clicking on the reply title.',                                                                                 'bbpress' ) . '</li>' .
    162                     //'<li>' . __( '<strong>Quick Edit</strong> provides inline access to the metadata of your reply, allowing you to update reply details without leaving this screen.',                                                                  'bbpress' ) . '</li>' .
    163                     '<li>' . __( '<strong>Trash</strong> removes your reply from this list and places it in the trash, from which you can permanently delete it.',                                                                                       'bbpress' ) . '</li>' .
    164                     '<li>' . __( '<strong>Spam</strong> removes your reply from this list and places it in the spam queue, from which you can permanently delete it.',                                                                                   'bbpress' ) . '</li>' .
    165                     '<li>' . __( '<strong>Preview</strong> will show you what your draft reply will look like if you publish it. View will take you to your live site to view the reply. Which link is available depends on your reply&#8217;s status.', 'bbpress' ) . '</li>' .
     161                    '<li>' . __( '<strong>Edit</strong> takes you to the editing screen for that reply. You can also reach that screen by clicking on the reply title.',                  'bbpress' ) . '</li>' .
     162                    //'<li>' . __( '<strong>Quick Edit</strong> provides inline access to the metadata of your reply, allowing you to update reply details without leaving this screen.', 'bbpress' ) . '</li>' .
     163                    '<li>' . __( '<strong>Trash</strong> removes your reply from this list and places it in the trash, from which you can permanently delete it.',                        'bbpress' ) . '</li>' .
     164                    '<li>' . __( '<strong>Spam</strong> removes your reply from this list and places it in the spam queue, from which you can permanently delete it.',                    'bbpress' ) . '</li>' .
     165                    '<li>' . __( '<strong>View</strong> will take you to your live site to view the reply.',                                                                              'bbpress' ) . '</li>' .
     166                    '<li>' . __( '<strong>Approve</strong> will change the status from pending to publish.',                                                                              'bbpress' ) . '</li>' .
    166167                '</ul>'
    167168        ) );
     
    433434            .status-spam {
    434435                background-color: #faeaea;
     436            }
     437
     438            .status-pending {
     439                background-color: #fef7f1;
    435440            }
    436441
     
    469474
    470475        // Only proceed if GET is a reply toggle action
    471         if ( bbp_is_get_request() && !empty( $_GET['action'] ) && in_array( $_GET['action'], array( 'bbp_toggle_reply_spam' ) ) && !empty( $_GET['reply_id'] ) ) {
     476        if ( bbp_is_get_request() && ! empty( $_GET['action'] ) && in_array( $_GET['action'], array( 'bbp_toggle_reply_spam', 'bbp_toggle_reply_approve' ) ) && ! empty( $_GET['reply_id'] ) ) {
    472477            $action    = $_GET['action'];            // What action is taking place?
    473478            $reply_id  = (int) $_GET['reply_id'];    // What's the reply id?
     
    487492
    488493            switch ( $action ) {
     494                case 'bbp_toggle_reply_approve' :
     495                    check_admin_referer( 'approve-reply_' . $reply_id );
     496
     497                    $is_approve = bbp_is_reply_pending( $reply_id );
     498                    $message    = $is_approve ? 'approved' : 'unapproved';
     499                    $success    = $is_approve ? bbp_approve_reply( $reply_id ) : bbp_unapprove_reply( $reply_id );
     500
     501                    break;
     502
    489503                case 'bbp_toggle_reply_spam' :
    490504                    check_admin_referer( 'spam-reply_' . $reply_id );
     
    497511            }
    498512
    499             $success = wp_update_post( $post_data );
    500513            $message = array( 'bbp_reply_toggle_notice' => $message, 'reply_id' => $reply->ID );
    501514
     
    537550
    538551        // Only proceed if GET is a reply toggle action
    539         if ( bbp_is_get_request() && !empty( $_GET['bbp_reply_toggle_notice'] ) && in_array( $_GET['bbp_reply_toggle_notice'], array( 'spammed', 'unspammed' ) ) && !empty( $_GET['reply_id'] ) ) {
     552        if ( bbp_is_get_request() && ! empty( $_GET['bbp_reply_toggle_notice'] ) && in_array( $_GET['bbp_reply_toggle_notice'], array( 'spammed', 'unspammed', 'approved', 'unapproved' ) ) && ! empty( $_GET['reply_id'] ) ) {
    540553            $notice     = $_GET['bbp_reply_toggle_notice'];         // Which notice?
    541554            $reply_id   = (int) $_GET['reply_id'];                  // What's the reply id?
     
    566579                        ? sprintf( __( 'There was a problem unmarking the reply "%1$s" as spam.', 'bbpress' ), $reply_title )
    567580                        : sprintf( __( 'Reply "%1$s" successfully unmarked as spam.',             'bbpress' ), $reply_title );
     581                    break;
     582
     583                case 'approved' :
     584                    $message = ( $is_failure === true )
     585                        ? sprintf( __( 'There was a problem approving the reply "%1$s".', 'bbpress' ), $reply_title )
     586                        : sprintf( __( 'Reply "%1$s" successfully approved.',             'bbpress' ), $reply_title );
     587                    break;
     588
     589                case 'unapproved' :
     590                    $message = ( $is_failure === true )
     591                        ? sprintf( __( 'There was a problem unapproving the reply "%1$s".', 'bbpress' ), $reply_title )
     592                        : sprintf( __( 'Reply "%1$s" successfully unapproved.',             'bbpress' ), $reply_title );
    568593                    break;
    569594            }
     
    770795        // Only show the actions if the user is capable of viewing them
    771796        if ( current_user_can( 'moderate', $reply->ID ) ) {
     797
     798            // Show the 'approve' link on pending posts only and 'unapprove' on published posts only
     799            $approve_uri = wp_nonce_url( add_query_arg( array( 'reply_id' => $reply->ID, 'action' => 'bbp_toggle_reply_approve' ), remove_query_arg( array( 'bbp_reply_toggle_notice', 'reply_id', 'failed', 'super' ) ) ), 'approve-reply_' . $reply->ID );
     800            if ( bbp_is_reply_published( $reply->ID ) ) {
     801                $actions['unapproved'] = '<a href="' . esc_url( $approve_uri ) . '" title="' . esc_attr__( 'Unapprove this reply', 'bbpress' ) . '">' . _x( 'Unapprove', 'Unapprove reply', 'bbpress' ) . '</a>';
     802            } elseif ( ! bbp_is_reply_private( $reply->ID ) ) {
     803                $actions['approved']   = '<a href="' . esc_url( $approve_uri ) . '" title="' . esc_attr__( 'Approve this reply',   'bbpress' ) . '">' . _x( 'Approve',   'Approve reply',   'bbpress' ) . '</a>';
     804            }
     805
    772806            if ( in_array( $reply->post_status, array( bbp_get_public_status_id(), bbp_get_spam_status_id() ) ) ) {
    773807                $spam_uri  = wp_nonce_url( add_query_arg( array( 'reply_id' => $reply->ID, 'action' => 'bbp_toggle_reply_spam' ), remove_query_arg( array( 'bbp_reply_toggle_notice', 'reply_id', 'failed', 'super' ) ) ), 'spam-reply_'  . $reply->ID );
Note: See TracChangeset for help on using the changeset viewer.