Skip to:
Content

bbPress.org

Changeset 6710


Ignore:
Timestamp:
09/19/2017 06:13:52 AM (3 years ago)
Author:
johnjamesjacoby
Message:

BuddyPress: improve targeting of single forum/topic filters.

This change simplifies the logic used when attaching-to and checking-for the current BuddyPress Group Forum & Topic pages, by conditionally filtering behind a singular bp_is_group() check.

Fixes #3165. Props thebrandonallen.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/includes/extend/buddypress/groups.php

    r6583 r6710  
    109109    private function setup_filters() {
    110110
    111         // Ensure bbp_is_single_forum() returns true on group forums.
    112         add_filter( 'bbp_is_single_forum',       array( $this, 'is_single_forum' ) );
    113 
    114         // Ensure bbp_is_single_topic() returns true on group forum topics.
    115         add_filter( 'bbp_is_single_topic',       array( $this, 'is_single_topic' ) );
    116 
    117111        // Group forum pagination
    118112        add_filter( 'bbp_topic_pagination',      array( $this, 'topic_pagination'   ) );
     
    142136
    143137        // Only add these filters if inside a group forum
    144         if ( bp_is_single_item() && bp_is_groups_component() && bp_is_current_action( 'forum' ) ) {
     138        if ( bp_is_single_item() && bp_is_group() && bp_is_current_action( $this->slug ) ) {
     139
     140            // Ensure bbp_is_single_forum() returns true on group forums.
     141            add_filter( 'bbp_is_single_forum', array( $this, 'is_single_forum' ) );
     142
     143            // Ensure bbp_is_single_topic() returns true on group forum topics.
     144            add_filter( 'bbp_is_single_topic', array( $this, 'is_single_topic' ) );
    145145
    146146            // Allow group member to view private/hidden forums
     
    166166
    167167        // Additional BuddyPress specific single-forum conditionals
    168         if ( false === $retval ) {
    169             if ( bp_is_group() && bp_is_action_variable( $this->forum_slug, 0 ) ) {
    170                 $retval = true;
    171             }
     168        if ( ( false === $retval ) && ! bp_is_action_variable( $this->topic_slug, 0 ) ) {
     169            $retval = true;
    172170        }
    173171
     
    188186
    189187        // Additional BuddyPress specific single-topic conditionals
    190         if ( false === $retval ) {
    191             if ( bp_is_group() && bp_is_action_variable( $this->topic_slug, 0 ) && bp_action_variable( 1 ) ) {
    192                 $retval = true;
    193             }
     188        if ( ( false === $retval ) && bp_is_action_variable( $this->topic_slug, 0 ) && bp_action_variable( 1 ) ) {
     189            $retval = true;
    194190        }
    195191
     
    266262                if ( bbp_group_is_banned() ) {
    267263                    $caps = array( 'do_not_allow' );
    268 
    269                 } else if ( bbp_group_is_member() || bbp_group_is_mod() || bbp_group_is_admin() ) {
     264                } elseif ( bbp_group_is_member() || bbp_group_is_mod() || bbp_group_is_admin() ) {
    270265                    $caps = array( 'participate' );
    271266                }
     
    11961191    public function form_permissions( $retval = false ) {
    11971192
    1198         // Bail if not a group
    1199         if ( ! bp_is_group() ) {
    1200             return $retval;
    1201         }
    1202 
    12031193        // Bail if user is not logged in
    12041194        if ( ! is_user_logged_in() ) {
Note: See TracChangeset for help on using the changeset viewer.