Great idea…think of the customization options that this could bring…
Logged in users could see activity from their friends, groups, blogs they “follow”, and even sitewide posts by certain category or tag.
Maybe there would be defaults where certain “top news” posts are displayed to everyone. (which would be incredible for my real estate site)
It could be like an igoogle page…
I’m noticing so much noise in the default streams to the point of it being a turn off to log into a site. If people want you in their stream they will add you. Just like on twitter.
As simple solution that would work for my site would be to have an administrator (or editor) select which activities show up on the stream.
This tweak would basically turn any community into a magazine/news site and it would turn down the “noise” in big communities.
Haven’t tried changing it yet, but I would start with adding some filters/changing parameters
https://codex.buddypress.org/developer-docs/custom-buddypress-loops/the-activity-stream-loop/
define( 'BP_DEFAULT_COMPONENT', 'profile' );
I was thinking maybe there was a function like above that could switch them
@Modemlooper
It sounds like what you are wanting people to see by default is their profile activity tab. Why not just hook into the routing somewhere and redirect the home link to the user’s profile home?
You would have to do something like:
1. Create a dummy page that is set to home in settings->reading so that blog and activity have their own tabs.
2. Intercept loading of the home page and load the user’s profile instead.
This is just a direction to go in, it may not be possible.
/* Bounce user to their profile when logging in */
function custom_login_redirect_to_profile( $url, $isset, $user ) {
return bp_core_get_user_domain( $user->ID );
}
add_filter( 'login_redirect', 'custom_login_redirect_to_profile', 11, 3 );
You could also make a child theme of your own, and use home.php as members/single/activity.php. Or instead of using home.php, make a custom page template and assign that page as your front page.
It’s not about the front page after login. It’s about the default views of landing pages being overloaded with noise. People do not like this.
Instead of showing the all members activity as the landing when you click the activity tab it would make more sense to show your friends only first. This is the default way that FB and twitter works.
so the sub nav would be some thing like this instead. So that the major noise is not the focus. If you are new to site and you click activity the prompt should say. “You don’t have any friends why not add some or ‘link’ view the site wide activity”
My Friends (1)
My Groups (5)
My Favorites (1)
My Links (4)
@admin Mentions
All Members (3)
in bp-activity-templatetags.php within the buddypress plugin folder, I found the following ‘scopes’:
if ( 'just-me' == $scope || 'friends' == $scope || 'groups' == $scope || 'favorites' == $scope || 'mentions' == $scope ) {
Each of these has a case and it discribes which scope needs to grab each activity feed.
So now all we need to know is how to set a scope within lets say the “activity-loop.php” in your theme folder and then it will grab the “friends” scope and the “friends” activity feed.
I don’t know how or where to call the scope but I’m going to take a wild guess and say that it’s here:
<?php if ( bp_has_activities( bp_ajax_querystring( 'activity' ) ) ) : ?>
Within activity-loop.php.
Let me know if this helped, or just confused everyone.
Thanks
Sorry about bumping an ancient thread but @modemlooper , did you ever find a solution?
Moving the ‘All Members’ tab to end?
Did moving the “All Members” tab to the end of the list then make “My Friends” the default display?
how to do it was mentioned on here. I just ended up canning the main activity stream on the site I was building.
Hi guys, I just searched and followed the links here.
I tried moving the code for the “All activity” tab in a child theme, and managed to move the tab to the right of “@mentions” tab.
The problem is although “My friends” tab is now the first tab and appears to be active by default (I added class=”selected” for it), but the rss feed area still displays sitewide activties.
In my understanding, buddypress loads “all activities” when the activity page is opened, and by clicking tabs or setting filter in the dropdown menu, it filters the loaded activites.
So I guess if there is code for filtering and displaying only “my friends” activities, so we could add the code right after bp loads all activities.
Does this sounds reasonable? Anyone has any idea?
In /activity/activity-loop.php replace:
“
with this:
`<?php
$ajax = bp_ajax_querystring( ‘activity’);
$qs = !empty($ajax)? $ajax : ‘activity&scope=groups&object=groups’;
if ( bp_has_activities( $qs ) ) :
?>
`
This also works for other loops like groups-loop.php.
Info about the parameters that can be used in $qs are described in the bp_has_activities() documentation