Dear support,
using bp-community activity-on-user-profile plugin,
when I change the subnav default of Buddypress Activity from Personal to all_activity
using the following code:
————————–
function buddydev_set_default_nav() {
bp_core_new_nav_default (
array(
‘parent_slug’ => buddypress()->activity->id,
‘subnav_slug’ => ‘all-activity’,
‘screen_function’ => ‘bp_community_activity_screen’
)
);
}
add_action( ‘bp_setup_nav’, ‘buddydev_set_default_nav’, 20 );
———————————————–
the page used by buddypress to show the site activity stream stops working correctly. Instead of showing the activity stream it shows the article comments.
Is there any possibility to have buddypress-all_activity subnav as default but the page used by buddypress to show the site activity stream working correctly?
Thanks in advance for you kind support.
GiuliettaDear support,
after some new tests I found that the problem I showed is not caused by the plugin. It is a problem between the buddypress function bp_core_new_nav_default and the theme used. Hence I will move this tread to buddypress section.
I apologize for this.
Best wishes!
GiuliettaHi giulietta ,
Thank you for testing.Please let the theme authors know about the issue and they will be able to help you.
Regards
BrajeshHi,
if you need to have buddypress-all_activity subnav as default subnav but the page used by buddypress to show the site activity stream working correctly you can substitute the original file:
/plugins/buddypress/bp-activity/classes/class-bp-activity-component.php
with this one. I think it is not an elegant way to do that but it works!!!<?php
/**
* BuddyPress Activity Streams Loader.
*
* An activity stream component, for users, groups, and site tracking.
*
* @package BuddyPress
* @subpackage ActivityCore
* @since 1.5.0
* EDITED BY GIULIETTA TO HAVE ALL-ACTIVITY SUBNAV AS DEFAUL SUBNAV OF ACTIVITY NAV!!!
*/// Exit if accessed directly.
defined( ‘ABSPATH’ ) || exit;/**
* Main Activity Class.
*
* @since 1.5.0
*/
class BP_Activity_Component extends BP_Component {/**
* Start the activity component setup process.
*
* @since 1.5.0
*/
public function __construct() {
parent::start(
‘activity’,
__( ‘Activity Streams’, ‘buddypress’ ),
buddypress()->plugin_dir,
array(
‘adminbar_myaccount_order’ => 10,
‘search_query_arg’ => ‘activity_search’,
‘features’ => array( ’embeds’ )
)
);
}/**
* Include component files.
*
* @since 1.5.0
*
* @see BP_Component::includes() for a description of arguments.
*
* @param array $includes See BP_Component::includes() for a description.
*/
public function includes( $includes = array() ) {// Files to include.
$includes = array(
‘cssjs’,
‘actions’,
‘screens’,
‘filters’,
‘adminbar’,
‘template’,
‘functions’,
‘cache’
);// Notifications support.
if ( bp_is_active( ‘notifications’ ) ) {
$includes[] = ‘notifications’;
}// Load Akismet support if Akismet is configured.
$akismet_key = bp_get_option( ‘wordpress_api_key’ );/** This filter is documented in bp-activity/bp-activity-akismet.php */
if ( defined( ‘AKISMET_VERSION’ ) && class_exists( ‘Akismet’ ) && ( ! empty( $akismet_key ) || defined( ‘WPCOM_API_KEY’ ) ) && apply_filters( ‘bp_activity_use_akismet’, bp_is_akismet_active() ) ) {
$includes[] = ‘akismet’;
}// Embeds – only applicable for WP 4.5+
if ( version_compare( $GLOBALS[‘wp_version’], ‘4.5’, ‘>=’ ) && bp_is_active( $this->id, ’embeds’ ) ) {
$includes[] = ’embeds’;
}if ( is_admin() ) {
$includes[] = ‘admin’;
}parent::includes( $includes );
}/**
* Set up component global variables.
*
* The BP_ACTIVITY_SLUG constant is deprecated, and only used here for
* backwards compatibility.
*
* @since 1.5.0
*
* @see BP_Component::setup_globals() for a description of arguments.
*
* @param array $args See BP_Component::setup_globals() for a description.
*/
public function setup_globals( $args = array() ) {
$bp = buddypress();// Define a slug, if necessary.
if ( ! defined( ‘BP_ACTIVITY_SLUG’ ) ) {
define( ‘BP_ACTIVITY_SLUG’, $this->id );
}// Global tables for activity component.
$global_tables = array(
‘table_name’ => $bp->table_prefix . ‘bp_activity’,
‘table_name_meta’ => $bp->table_prefix . ‘bp_activity_meta’,
);// Metadata tables for groups component.
$meta_tables = array(
‘activity’ => $bp->table_prefix . ‘bp_activity_meta’,
);// Fetch the default directory title.
$default_directory_titles = bp_core_get_directory_page_default_titles();
$default_directory_title = $default_directory_titles[$this->id];// All globals for activity component.
// Note that global_tables is included in this array.
$args = array(
‘slug’ => BP_ACTIVITY_SLUG,
‘root_slug’ => isset( $bp->pages->activity->slug ) ? $bp->pages->activity->slug : BP_ACTIVITY_SLUG,
‘has_directory’ => true,
‘directory_title’ => isset( $bp->pages->activity->title ) ? $bp->pages->activity->title : $default_directory_title,
‘notification_callback’ => ‘bp_activity_format_notifications’,
‘search_string’ => __( ‘Search Activity…’, ‘buddypress’ ),
‘global_tables’ => $global_tables,
‘meta_tables’ => $meta_tables,
);parent::setup_globals( $args );
}/**
* Set up component navigation.
*
* @since 1.5.0
*
* @see BP_Component::setup_nav() for a description of arguments.
*
* @param array $main_nav Optional. See BP_Component::setup_nav() for description.
* @param array $sub_nav Optional. See BP_Component::setup_nav() for description.
*/
public function setup_nav( $main_nav = array(), $sub_nav = array() ) {// Stop if there is no user displayed or logged in.
if ( ! is_user_logged_in() && ! bp_displayed_user_id() ) {
return;
}// Determine user to use.
if ( bp_displayed_user_domain() ) {
$user_domain = bp_displayed_user_domain();
$displayed_user_domain = bp_displayed_user_domain();
} elseif ( bp_loggedin_user_domain() ) {
$user_domain = bp_loggedin_user_domain();
$loggedin_user_domain = bp_loggedin_user_domain();
} else {
return;
}$slug = bp_get_activity_slug();
$activity_link = trailingslashit( $user_domain . $slug );// Add ‘Activity’ to the main navigation.
if (bp_is_my_profile()) {
$main_nav = array(
‘name’ => _x( ‘Activity’, ‘Profile activity screen nav’, ‘buddypress’ ),
‘slug’ => $slug,
‘position’ => 5,
‘screen_function’ => ‘bp_community_activity_screen’,
‘default_subnav_slug’ => ‘all-activity’,
‘item_css_id’ => $this->id
);
} else {
$main_nav = array(
‘name’ => _x( ‘Activity’, ‘Profile activity screen nav’, ‘buddypress’ ),
‘slug’ => $slug,
‘position’ => 10,
‘screen_function’ => ‘bp_activity_screen_my_activity’,
‘default_subnav_slug’ => ‘just-me’,
‘item_css_id’ => $this->id
);
}// Add the subnav items to the activity nav item if we are using a theme that supports this.
$sub_nav[] = array(
‘name’ => _x( ‘Personal’, ‘Profile activity screen sub nav’, ‘buddypress’ ),
‘slug’ => ‘just-me’,
‘parent_url’ => $activity_link,
‘parent_slug’ => $slug,
‘screen_function’ => ‘bp_activity_screen_my_activity’,
‘position’ => 10
);// Check @mentions.
if ( bp_activity_do_mentions() ) {
$sub_nav[] = array(
‘name’ => _x( ‘Mentions’, ‘Profile activity screen sub nav’, ‘buddypress’ ),
‘slug’ => ‘mentions’,
‘parent_url’ => $activity_link,
‘parent_slug’ => $slug,
‘screen_function’ => ‘bp_activity_screen_mentions’,
‘position’ => 20,
‘item_css_id’ => ‘activity-mentions’
);
}// Favorite activity items.
if ( bp_activity_can_favorite() ) {
$sub_nav[] = array(
‘name’ => _x( ‘Favorites’, ‘Profile activity screen sub nav’, ‘buddypress’ ),
‘slug’ => ‘favorites’,
‘parent_url’ => $activity_link,
‘parent_slug’ => $slug,
‘screen_function’ => ‘bp_activity_screen_favorites’,
‘position’ => 30,
‘item_css_id’ => ‘activity-favs’
);
}// Additional menu if friends is active.
if ( bp_is_active( ‘friends’ ) ) {
$sub_nav[] = array(
‘name’ => _x( ‘Friends’, ‘Profile activity screen sub nav’, ‘buddypress’ ),
‘slug’ => bp_get_friends_slug(),
‘parent_url’ => $activity_link,
‘parent_slug’ => $slug,
‘screen_function’ => ‘bp_activity_screen_friends’,
‘position’ => 40,
‘item_css_id’ => ‘activity-friends’
) ;
}// Additional menu if groups is active.
if ( bp_is_active( ‘groups’ ) ) {
$sub_nav[] = array(
‘name’ => _x( ‘Groups’, ‘Profile activity screen sub nav’, ‘buddypress’ ),
‘slug’ => bp_get_groups_slug(),
‘parent_url’ => $activity_link,
‘parent_slug’ => $slug,
‘screen_function’ => ‘bp_activity_screen_groups’,
‘position’ => 50,
‘item_css_id’ => ‘activity-groups’
);
}parent::setup_nav( $main_nav, $sub_nav );
}/**
* Set up the component entries in the WordPress Admin Bar.
*
* @since 1.5.0
*
* @see BP_Component::setup_nav() for a description of the $wp_admin_nav
* parameter array.
*
* @param array $wp_admin_nav See BP_Component::setup_admin_bar() for a
* description.
*/
public function setup_admin_bar( $wp_admin_nav = array() ) {// Menus for logged in user.
if ( is_user_logged_in() ) {// Setup the logged in user variables.
$activity_link = trailingslashit( bp_loggedin_user_domain() . bp_get_activity_slug() );// Unread message count.
if ( bp_activity_do_mentions() ) {
$count = bp_get_total_mention_count_for_user( bp_loggedin_user_id() );
if ( !empty( $count ) ) {
$title = sprintf(
/* translators: %s: Unread mention count for the current user */
_x( ‘Mentions %s’, ‘Toolbar Mention logged in user’, ‘buddypress’ ),
‘<span class=”count”>’ . bp_core_number_format( $count ) . ‘</span>’
);
} else {
$title = _x( ‘Mentions’, ‘Toolbar Mention logged in user’, ‘buddypress’ );
}
}// Add the “Activity” sub menu.
$wp_admin_nav[] = array(
‘parent’ => buddypress()->my_account_menu_id,
‘id’ => ‘my-account-‘ . $this->id,
‘title’ => _x( ‘Activity’, ‘My Account Activity sub nav’, ‘buddypress’ ),
‘href’ => $activity_link
);// Personal.
$wp_admin_nav[] = array(
‘parent’ => ‘my-account-‘ . $this->id,
‘id’ => ‘my-account-‘ . $this->id . ‘-personal’,
‘title’ => _x( ‘Personal’, ‘My Account Activity sub nav’, ‘buddypress’ ),
‘href’ => $activity_link,
‘position’ => 10
);// Mentions.
if ( bp_activity_do_mentions() ) {
$wp_admin_nav[] = array(
‘parent’ => ‘my-account-‘ . $this->id,
‘id’ => ‘my-account-‘ . $this->id . ‘-mentions’,
‘title’ => $title,
‘href’ => trailingslashit( $activity_link . ‘mentions’ ),
‘position’ => 20
);
}// Favorite activity items.
if ( bp_activity_can_favorite() ) {
$wp_admin_nav[] = array(
‘parent’ => ‘my-account-‘ . $this->id,
‘id’ => ‘my-account-‘ . $this->id . ‘-favorites’,
‘title’ => _x( ‘Favorites’, ‘My Account Activity sub nav’, ‘buddypress’ ),
‘href’ => trailingslashit( $activity_link . ‘favorites’ ),
‘position’ => 30
);
}// Friends?
if ( bp_is_active( ‘friends’ ) ) {
$wp_admin_nav[] = array(
‘parent’ => ‘my-account-‘ . $this->id,
‘id’ => ‘my-account-‘ . $this->id . ‘-friends’,
‘title’ => _x( ‘Friends’, ‘My Account Activity sub nav’, ‘buddypress’ ),
‘href’ => trailingslashit( $activity_link . bp_get_friends_slug() ),
‘position’ => 40
);
}// Groups?
if ( bp_is_active( ‘groups’ ) ) {
$wp_admin_nav[] = array(
‘parent’ => ‘my-account-‘ . $this->id,
‘id’ => ‘my-account-‘ . $this->id . ‘-groups’,
‘title’ => _x( ‘Groups’, ‘My Account Activity sub nav’, ‘buddypress’ ),
‘href’ => trailingslashit( $activity_link . bp_get_groups_slug() ),
‘position’ => 50
);
}
}parent::setup_admin_bar( $wp_admin_nav );
}/**
* Set up the title for pages and <title>.
*
* @since 1.5.0
*
*/
public function setup_title() {// Adjust title based on view.
if ( bp_is_activity_component() ) {
$bp = buddypress();if ( bp_is_my_profile() ) {
$bp->bp_options_title = _x( ‘My Activity’, ‘Page and <title>’, ‘buddypress’ );
} else {
$bp->bp_options_avatar = bp_core_fetch_avatar( array(
‘item_id’ => bp_displayed_user_id(),
‘type’ => ‘thumb’,
‘alt’ => sprintf( __( ‘Profile picture of %s’, ‘buddypress’ ), bp_get_displayed_user_fullname() )
) );
$bp->bp_options_title = bp_get_displayed_user_fullname();
}
}parent::setup_title();
}/**
* Setup cache groups.
*
* @since 2.2.0
*/
public function setup_cache_groups() {// Global groups.
wp_cache_add_global_groups( array(
‘bp_activity’,
‘bp_activity_comments’,
‘activity_meta’
) );parent::setup_cache_groups();
}
}
You must be logged in to reply to this topic.