Skip to:
Content

bbPress.org


Ignore:
Timestamp:
12/31/2012 02:26:17 PM (11 years ago)
Author:
johnjamesjacoby
Message:

Rejig the post_status logic in bbp_has_topics() and bbp_has_replies() to use the 'perm' query variable when appropriate. This allows unfamiliar topic and reply statuses to work as intended. Also allows post authors to view their own private content. Fixes #2088.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/includes/replies/template-tags.php

    r4648 r4673  
    6969    /** Defaults **************************************************************/
    7070
    71     // What are the default allowed statuses (based on user caps)
    72     if ( bbp_get_view_all( 'edit_others_replies' ) ) {
    73         $post_statuses = array( bbp_get_public_status_id(), bbp_get_closed_status_id(), bbp_get_spam_status_id(), bbp_get_trash_status_id() );
    74     } else {
    75         $post_statuses = array( bbp_get_public_status_id(), bbp_get_closed_status_id() );
    76     }
    77 
    78     // Add support for private status
    79     if ( current_user_can( 'read_private_replies' ) ) {
    80         $post_statuses[] = bbp_get_private_status_id();
    81     }
    82 
     71    // Other defaults
    8372    $default_reply_search = !empty( $_REQUEST['rs'] ) ? $_REQUEST['rs'] : false;
    8473    $default_post_parent  = ( bbp_is_single_topic() ) ? bbp_get_topic_id() : 'any';
    8574    $default_post_type    = ( bbp_is_single_topic() && bbp_show_lead_topic() ) ? bbp_get_reply_post_type() : array( bbp_get_topic_post_type(), bbp_get_reply_post_type() );
    86     $default_post_status  = join( ',', $post_statuses );
    8775
    8876    // Default query args
     
    9078        'post_type'      => $default_post_type,         // Only replies
    9179        'post_parent'    => $default_post_parent,       // Of this topic
    92         'post_status'    => $default_post_status,       // Of this status
    9380        'posts_per_page' => bbp_get_replies_per_page(), // This many
    9481        'paged'          => bbp_get_paged(),            // On this page
     
    9784        's'              => $default_reply_search,      // Maybe search
    9885    );
     86
     87    // What are the default allowed statuses (based on user caps)
     88    if ( bbp_get_view_all() ) {
     89
     90        // Default view=all statuses
     91        $post_statuses = array(
     92            bbp_get_public_status_id(),
     93            bbp_get_closed_status_id(),
     94            bbp_get_spam_status_id(),
     95            bbp_get_trash_status_id()
     96        );
     97
     98        // Add support for private status
     99        if ( current_user_can( 'read_private_replies' ) ) {
     100            $post_statuses[] = bbp_get_private_status_id();
     101        }
     102
     103        // Join post statuses together
     104        $default['post_status'] = join( ',', $post_statuses );
     105
     106    // Lean on the 'perm' query var value of 'readable' to provide statuses
     107    } else {
     108        $default['perm'] = 'readable';
     109    }
    99110
    100111    /** Setup *****************************************************************/
Note: See TracChangeset for help on using the changeset viewer.