Replies
- giulietta on March 13, 2018 at 4:58 pm in reply to: problem with bp-community activity-on-user-profile changing the activity subnav #13807
Hi,
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();
}
} - giulietta on March 13, 2018 at 12:33 am in reply to: [Resolved] load newest following activity auto refresh… #13804
Dear Brajesh,
please, don’t forget about me…
Kisses!
Giuly - giulietta on February 28, 2018 at 6:21 pm in reply to: [Resolved] load newest following activity auto refresh… #13623
Dear Brajesh,
do you remember me? 😉
Kisses!
Giulietta - giulietta on February 16, 2018 at 1:26 pm in reply to: [Resolved] load newest following activity auto refresh… #13456
You are the kindest person in the universe!!!
- giulietta on February 6, 2018 at 1:33 pm in reply to: problem with bp-community activity-on-user-profile changing the activity subnav #13279
Dear 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!
Giulietta - giulietta on May 29, 2017 at 8:46 pm in reply to: [Resolved] load newest button with BP CommunityActivity on profile #9360
Dear Brajesh,
thank you thank you thank you so much!!!
Your fix works perfectly!!!
You can consider this topic solved!
Many kisses!
Giulietta - giulietta on May 26, 2017 at 2:32 pm in reply to: [Resolved] load newest button with BP CommunityActivity on profile #9324
Dear Brajesh,
take your time, it is not urgent and you are just making me a favor…
Best regards!
Giulietta - giulietta on May 26, 2017 at 1:18 pm in reply to: [Resolved] load newest button with BP CommunityActivity on profile #9321
Dear Brajesh,
sorry for annoying you… did you find any solution for my problem?
Thanks in advance!
Giulietta - giulietta on May 22, 2017 at 4:15 pm in reply to: [Resolved] load newest button with BP CommunityActivity on profile #9272
Dear Brajesh,
thank you for your quick and kind answer. I hope you will find some suggestions to solve my problem.
Best wishes!
Giulietta