[buddypress-trac] [BuddyPress Trac] #7628: BuddyPress Theme compatibility not working properly when default_subnav_slug is not specified for a component
buddypress-trac
noreply at wordpress.org
Mon Nov 20 01:14:57 UTC 2017
#7628: BuddyPress Theme compatibility not working properly when
default_subnav_slug is not specified for a component
--------------------------+-----------------------------
Reporter: sbrajesh | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Members | Version:
Severity: minor | Keywords:
--------------------------+-----------------------------
BuddyPress allows registering a component(nav) without specifying the
default_subnav_slug. In the current implementation if you do not specify
default_subnav_slug, the theme compatibility does not work properly.
It treats the component page as members directory instead of user section.
The reason is the condition check in class-bp-members-theme-compat.php
Intstead of checking for directory first, It should test for the user
first. I other words, changing the order of conditions in is_members()
fixes the issue.
The code
{{{
public function is_members() {
// Bail if not looking at the members component or a
user's page.
if ( ! bp_is_members_component() && ! bp_is_user() ) {
return;
}
// Members Directory.
if ( ! bp_current_action() && ! bp_current_item() ) {
bp_update_is_directory( true, 'members' );
/**
* Fires if looking at Members directory when
needing theme compat.
*
* @since 1.5.0
*/
do_action( 'bp_members_screen_index' );
add_filter( 'bp_get_buddypress_template',
array( $this, 'directory_template_hierarchy' ) );
add_action(
'bp_template_include_reset_dummy_post_data', array( $this,
'directory_dummy_post' ) );
add_filter( 'bp_replace_the_content',
array( $this, 'directory_content' ) );
// User page.
} elseif ( bp_is_user() ) {
// If we're on a single activity permalink page,
we shouldn't use the members
// template, so stop here!
if ( bp_is_active( 'activity' ) &&
bp_is_single_activity() ) {
return;
}
/**
* Fires if looking at Members user page when
needing theme compat.
*
* @since 1.5.0
*/
do_action( 'bp_members_screen_display_profile' );
add_filter( 'bp_get_buddypress_template',
array( $this, 'single_template_hierarchy' ) );
add_action(
'bp_template_include_reset_dummy_post_data', array( $this,
'single_dummy_post' ) );
add_filter( 'bp_replace_the_content',
array( $this, 'single_dummy_content' ) );
}
}
}}}
needs to be changed to this
{{{
public function is_members() {
// Bail if not looking at the members component or a
user's page.
if ( ! bp_is_members_component() && ! bp_is_user() ) {
return;
}
// User page.
if ( bp_is_user() ) {
// If we're on a single activity permalink page,
we shouldn't use the members
// template, so stop here!
if ( bp_is_active( 'activity' ) &&
bp_is_single_activity() ) {
return;
}
/**
* Fires if looking at Members user page when
needing theme compat.
*
* @since 1.5.0
*/
do_action( 'bp_members_screen_display_profile' );
add_filter( 'bp_get_buddypress_template',
array( $this, 'single_template_hierarchy' ) );
add_action(
'bp_template_include_reset_dummy_post_data', array( $this,
'single_dummy_post' ) );
add_filter( 'bp_replace_the_content',
array( $this, 'single_dummy_content' ) );
// Members Directory.
} elseif ( ! bp_current_action() && ! bp_current_item() )
{
bp_update_is_directory( true, 'members' );
/**
* Fires if looking at Members directory when
needing theme compat.
*
* @since 1.5.0
*/
do_action( 'bp_members_screen_index' );
add_filter( 'bp_get_buddypress_template',
array( $this, 'directory_template_hierarchy' ) );
add_action(
'bp_template_include_reset_dummy_post_data', array( $this,
'directory_dummy_post' ) );
add_filter( 'bp_replace_the_content',
array( $this, 'directory_content' ) );
}
}
}}}
It will be nice to have a fix in 3.0
Thank you.
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/7628>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac
More information about the buddypress-trac
mailing list