I’m hoping to customize my activity feed so that it displays the usual textbox (to input the profile update), a “+” button, and a submit button. When clicked, the “+” button would open a full list of members, so users can tag/mention whichever user they click (so they don’t have to type @mention into their message).
I figured the easiest way to do this would be to add a custom field to the activity feed form. I could create a popup that would display all members, and then feed the chosen member through after post submission, so it would display alongside the post.
I tried following the following tutorial, but my post data would not save:
https://buddypress.org/support/topic/adding-a-second-element-for-posting-with-an-activity/
Does anyone have any ideas for this? Are there any plugins that might achieve something similar?
Thanks!
Have you tested with 2015 theme ? Does @mention appear near profile avatar ?
If it does, ask on your (premium) theme support.
OK, so I had a panic the other day thinking the latest BuddyPress update had caused something dire to go wrong with my site because for some reason it went into maintenance mode for ages after I clicked update and I couldn’t even access wp-admin. But after several minutes that seemed to self-resolve. Not sure if this is related but since the udate an new issue is occurring in groups.
When a user @mentions/public messages another user all the text following their @name is now highlighted and linking to their profiles.
Also the @names are appearing with /a at the end.
So my username is @julia but is appearing as @julia/a when someone mentions me in a group post and all the text following that is linked to my profile.
Thanks in advance guys. π
You could use this plugin — https://github.com/r-a-y/buddypress-usernames-only — to override the Display name so that only the username shows. I find this makes a lot of sense in communities where @mentions are a prevalent means of connecting. By default the Display name on the profile will still be the Nice Name, rather than the username, but you can change that by adding this snippet to your wp-config.php file
define( 'BP_SHOW_DISPLAYNAME_ON_PROFILE', false );
Hi @danpb,
I found a snippet in my theme functions.php that causes the missing link to profile in all @mentions in bbpress. When I delete the following code all @mentions in the bbpress topics and replies are shown.
Can you have a look at the following code. Maybe you can see, why it deletes the mention links to the profiles…?
// replies visible only for logged in users
function bb_auth_reply_view( $reply_id ) {
$reply_id = bbp_get_reply_id( $reply_id );
// Check if password is required
if ( post_password_required( $reply_id ) )
return get_the_password_form();
$content = get_post_field( 'post_content', $reply_id );
// first topic reply shouldn't be hiding
$rep_position = bbp_get_reply_position($reply_id);
// if user is not logged in and not the first post topic
if( !is_user_logged_in() && $rep_position > 0 ) {
return "replies only for logged in users!";
} else {
// return normal
return $content;
}
}
add_filter( 'bbp_get_reply_content', 'bb_auth_reply_view' );
Hi danbp,
I can not find a setting to allow explicit @mention. I allowed the activity stream in buddypress. And @mentions are working fine in there.
The notifications if someone is mentioned in the bbpress forums are working fine, too. I even have a dropdown field with suggestions for @mention in bbpress.
The only thing is the missing link to the profile behind the @mention in replies…
forums and buddypress sites are exluded from caching…
Thanks
Matthias
Hi @danpb,
now I’m using your code and the plugin, but my forum still shows no links in @mention
I just was searching in the bbpress support forum and it seems that it is a built in feature. But I don’t know why it is not working on my install?
Here is how @mention are shown in my forum. No link to the user profile at all
Any suggestions to solve the problem?
Thanks
Matthias
On a profile header, it’s not intended to link to the profile, as you’re already on a profile when you see @username !
This is there as reminder for members who want to sent a message to that user.
When on any activity page and you use @mention in a notice, you get a userlist depending the first letter you type after @. But never a link to a profile.
Or do you mean that @mentions is not active, whithout any links on it ?
In buddypress forums the @username autolinks to the usernames profile.
Is this normal behavior or a plugin?
The @mention link to profile does not work in my bbpress forum. It works in my buddypress activitiy stream.
Any ideas to get @mention link to profile working in my bbpress site?
Thanks
Matthias
Post comments are outside of the user notification. @mention scope is handling site and user activities. A post is also an activity, but @mention in it is not an activity. It’s just a link to a profile in a post.
When you go to message settings on your profile, you can see the whole items covered by mention and email notification. Blog post are not included.
To remove @username near the header avatar on profile page, use this (in bp-custom.php)
function bpfr_remove_mention_from_profile() {
// hide the hardcoded @ sign and username
echo '<style> h2.user-nicename { display:none; } </style>';
if( bp_is_user() && ! bp_get_member_user_id() ) {
$user_id = 'displayed: '. bp_displayed_user_id();
} else {
$user_id = 'get_member_user: '. bp_get_member_user_id();
}
remove_filter( 'bp_get_displayed_user_mentionname', bp_activity_get_user_mentionname( bp_displayed_user_id() ) );
}
add_filter( 'bp_get_displayed_user_mentionname', 'bpfr_remove_mention_from_profile' );
To remove the mention sub tab from profile page, use this (in bp-custom.php):
function bpfr_hide_mention( $retval = 1 ) {
$retval = false;
// condition
if ( bp_is_user() && ! bp_is_my_profile() ) {
$retval = true;
}
return $retval;
}
function bpfr_hide_mention_nav() {
// stop if condition is not ok
if ( ! bpfr_hide_mention() ) {
return;
}
// otherwise we remove the nav item
//bp subnav items
bp_core_remove_subnav_item( 'activity', 'mentions' );
}
add_action( 'bp_ready', 'bpfr_hide_mention_nav' );
To unlink @mention (this removes only the link not the mentionned username) AND remove the public message button, use this (in bp-custom.php):
add_filter( 'bp_activity_do_mentions', '__return_false' );
To allow the new BP 2.1 @mention tool in bbPress, use this (in bp-custom.php):
function bpfr_bbpress_maybe_load_mentions_scripts( $retval = false ) {
if ( function_exists( 'bbpress' ) && is_bbpress() ) {
$retval = true;
}
return $retval;
}
add_filter( 'bp_activity_maybe_load_mentions_scripts', 'bpfr_bbpress_maybe_load_mentions_scripts' );
Tested with WP 4.1 – BP 2.1.1 – bbP 2.5.4
Hi Henry
I went to ‘plugins’/buddypress/settings, and found the following (I note that “account settings” is not ticked – could this be it?)
I have bolded the ones that are ticked currently.
Settings:
Component Description
Component Description
Extended Profiles Customize your community with fully editable profile fields that allow your users to describe themselves.
Account Settings Allow your users to modify their account and notification settings directly from within their profiles.
Friend Connections Let your users make connections so they can track the activity of others and focus on the people they care about the most.
Private Messaging Allow your users to talk to each other directly and in private. Not just limited to one-on-one discussions, messages can be sent between any number of members.
Activity Streams Global, personal, and group activity streams with threaded commenting, direct posting, favoriting, and @mentions, all with full RSS feed and email notification support.
Notifications Notify members of relevant activity with a toolbar bubble and/or via email, and allow them to customize their notification settings.
User Groups Groups allow your users to organize themselves into specific public, private or hidden sections with separate activity streams and member listings.
Site Tracking Record activity for new posts and comments from your site.
BuddyPress Core Itβs what makes time travel BuddyPress possible!
Community Members Everything in a BuddyPress community revolves around its members.
Could it be a plugin βconflictβ?
I don’t think, but it’s possible. To know the answer, check it out, you’re the master on your site !
Have you tested by writing a notice where you mentionned a member ?
The snippet removes only the link from @mention, but doesn’t remove or sanitize this part. If somebody writes @ something, you’ll see @ something but without the link to profile.
And for almost any activity modification, the code isn’t retroactive. Past activities are stored with the old version and the new one are stored with your modification.
Thank you @danbp for your answer.
I don’t know why but even with your code in bp-custom.php user link to profile are still there on old and new @mentions
Could it be a plugin “conflict”?
Have you tried BuddyPress 2.1.1? In one word, it is awesome.
People may disagree, but I feel that with 2.0 and 2.1, BuddyPress has finally started coming into its own. A few of the features added/improved in these versions are:
- Completely reworked and totally cool @mentions
- New profile field types: URL, Number
- Automatically downloaded translations
- User Profile editing via Dashboard > Users
- User management – Pending and Spam
- Much, much faster
Now, time to gear up for BuddyPress 2.2, scheduled for release on Christmas eve. Some key items billed for this release are:
- #787 Link profile field data more smartly
- #2086 Make slugs translatable
- #5451 Groups query overhaul
What would you like to see in 2.2? I’ll kick open the floodgates with my Christmas Wishlist (are you listening Santa a.k.a. @johnjamesjacoby @boonebgorges @djpaul @imath ?)
- #4132 Account activation revamp and #5583 Simplify registration
- #4539 Member photo galleries
- #5564 Member search / Directory filters
- #4126 Allow admin to select fields to display in user “excerps” on Groups’ user list page
- #5500 Date xprofile field enhancement
- #5502 Custom xprofile field: Address and #5496 Friends/Members near me
- #5625 Use wp_editor for “multi line text area” xprofile field in frontend
- #4357: Merge BuddyPress & bbPress user profiles
Hi,
I would like to disable completely the mentions feature, even if someone put accidentaly a β@β before a username for exemple βjackβ I donβt want the result β@jackβ to link to jack profile, is this possible?
I was able to disable mentions tabs etc. but not the link to profile created when someone put a “@” before a name.
Any ideas for this?
thank you very much for your time and help π
Hi @iburnthings,
Try this. Add the snippet to your child-theme functions.php or to bp-custom.php
/* Remove @mention from profile header */
function bpfr_remove_mention_from_profile() {
echo '<style> h2.user-nicename { display:none; } </style>';
if( bp_is_user() && ! bp_get_member_user_id() ) {
$user_id = 'displayed: '. bp_displayed_user_id();
} else {
$user_id = 'get_member_user: '. bp_get_member_user_id();
}
remove_filter( 'bp_get_displayed_user_mentionname', bp_activity_get_user_mentionname( bp_displayed_user_id() ) );
}
add_filter( 'bp_get_displayed_user_mentionname', 'bpfr_remove_mention_from_profile' );
To change the default landing tab, from (activity) to (profile), use this:
/* Change BuddyPress default Members landing tab. */
define('BP_DEFAULT_COMPONENT', 'profile' );
WP 4.0
BP 2.1.1
Xprofiles 2.0.2
I need BP Activities module to be turned on for my rating plugin to work but I do not want the user profile to have the name displayed as @user
I also want to disable the activity tab and make ‘profile’ or ‘reviews’ my default tab that displays on
/members/user/
I’ve found a few code solutions online and attempted to implement them but they were from older versions and didn’t work. (2010 was the post date on each see below)
I’m getting more familiar with reviewing code and removing snippets, finding CSS, classes, functions etc but I’m still a novice.
I tried this:
http://premium.wpmudev.org/forums/topic/buddypress-social-remove-activity
And
How to Remove @mentions from BuddyPress
I’ve never done this, but…
I believe @mention uses a member’s login name – so it is unique.
I also believe you can change that so their user_nicename is used by putting:
( 'BP_ENABLE_USERNAME_COMPATIBILITY_MODE', false );
in bp-custom.php
Note: user_login, user_nicename and display_name are all the same unless changed in wp-admin or a user’s profile. But that change only applies to display_name afaik.
So if you want the functionality of @mentions, I believe you need to expose user_login.
@[name] is set via \buddypress\bp-members\bp-members-functions.php -> bp_core_get_username() which has a filter
apply_filters( 'bp_core_get_username', $username );
You could experiment with that filter and see what breaks :}
Hey guys, hoping to get some suggestions on an issue I’m having on my site where members who Register with the WordPress Social Login plugin wind up having their @mention be whatever name is on the social account they register with, which some people are not comfortable with preferring anonymity. This isn’t just a plugin issue though, because other members have created accounts and put their name in their profile when they were registering, not realizing it was going to be displayed prominently on their profile as an @mention.
I would prefer to continue using the BuddyPress @mention feature, but going into the database and changing it each time a member is not comfortable is time-consuming.
Is there a plugin or another way to do this?
How is the @mention chosen? Is it automatically the member’s first and last name when they register?
I am using the most current versions of WordPress and BuddyPress: 4.0 and 2.1
It’s all about the @mentions on my community site, the members love the new dropdown, by the way!
But a lot of the members still grumble that going to Profile > Activity > Mentions is a bit a of a cumbersome way to access all the @mentions they’ve had since their last visit to the site. I’d ideally like to add something like an @mention widget to my sidebar. Maybe also for their Friends and Forums feeds too, so they can get quick and easy access to all the activity that is most relevant to them without having to go via their profiles.
Does anything like that exist, or is it possible (bearing in mind I’m not a website developer)?
Thanks π
That is the BIG question ! If you read the comment i mentionned, it says “converted space”.
In fact, as stated before, @mention use $username combined with $user_id
This works in almost every situation, i think.
If your username (pseudo) is henrywrigth, first name henry, last name wright, the display name would be automatically henrywright. As display_name is the first and last name, not the username.
Same thing if you chosee HW102 as username (pseudo) and first name henry, last name wright, the display name would be automatically henry wright.
On frontend, we’ll see HW102 and on mouseover, we’ll see henrywright. (with converted space)
On backend, we have HW102 (username) and Henry Wright (NAME)
NAME is the BP combination of WP’s first+last name on a profile.
And you always mention somebody by the username.
I hope it’s OK to post something like this…
I’m brand new to Buddypress and not a professional developer. I’m moving a community from a Facebook group to my new Buddpress site. A lot of my members are not very net-savvy and are unfamiliar with how other community sites/forums work. So, I’m trying to offer familiar functions that they’ve seen on Facebook. The forum is going to be the main hub of the site, so I need to get it look good and easy to use.
Set up has gone well do far, but the forum is just looking a bit dull.
Is there a better way I can display the forum to show the activity?
Are there any other plugins or shortcodes people would recommend to make the forums as similar as possible to what my members have been used to in the Facebook group? (I’m only just getting to grips with shortcodes, so I’m afraid I’d need pretty basic instructions)
I have a Latest Activity feed on the site homepage which shows all activity:
This looks a bit more compelling than the forum page, but it would be nice if it could have things like reply buttons or ‘Go to forum’ to make it more obvious how people can get in the conversations.
I’m also having trouble getting the Private Message function set up. I do have it selected in Buddypress settings, but it’s not working (error page comes up). Any ideas?
Just one more thing, people are getting confused about how to @mention each other due to @names being different from the usernames which appear under member’s profile photos. Because my members are used to a Facebook group they expect to be able to @ message using user names. At the moment, as a temporary work around, I’ve installed some shortcode which displays the @name below the user name, but it’s not ideal (and also seems to display the ip address which I don’t like):
Suggestions on all of the above would be great and anything else I can do to make my site’s community elements more similar to Facebook really. Thanks. π
@megainfo
Rtmedia enables image attachments to the Buddy Press activity feed. When an image is attached it calls wp-admin/admin-ajax.php which returns the post with an image preview like this:
<li class="activity rtmedia_update activity-item date-recorded-1403887126 message" id="activity-38">
<div class="avatar">
<a href="http://www.domain.com/members/mike/">
<img src="http://www.domain.com/wp-content/uploads/avatars/1/677f1907f1aac6aeb3ce3d4ef60e01d2-bpthumb.jpg" class="avatar user-1-avatar avatar-120 photo" width="120" height="120" alt="Profile picture of Mike" /> </a>
</div>
<div class="activity-content">
<div class="activity-header">
<p><a href="http://www.domain.com/members/mike/" title="Mike">Mike</a> posted an update <a href="http://www.domain.com/activity/p/38/" title="View Discussion"><span class="time-since">right now</span></a></p>
</div>
<div class="activity-inner">
<div class="rtmedia-activity-container">
<div class="rtmedia-activity-text">x</div>
<ul class="rtmedia-list large-block-grid-3 rtmedia-activity-media-length-1">
<li class="rtmedia-list-item media-type-photo"><a href="http://www.domain.com/members/mike/media/12/" rel="nofollow">
<div class="rtmedia-item-thumbnail"><img src="http://www.domain.com/wp-content/uploads/rtMedia/users/1/2014/06/Cool-2-320x240.jpg" /></div>
<div class="rtmedia-item-title">Cool-2</div>
<p></a>
<div class="rtmedia-item-actions"></div>
</li>
</ul>
</div>
</div>
<div class="activity-meta">
<a href="?ac=38/#ac-form-38" class="link acomment-reply bp-primary-action" id="acomment-comment-38">Comment <span>0</span></a>
<a href="http://www.domain.com/activity/favorite/38/?_wpnonce=77f7732c12" class="link secondary fav bp-secondary-action" title="Mark as Favorite">Favorite</a>
<a href="http://www.domain.com/activity/delete/38?_wpnonce=e58c2e1f2f" class="button item-button bp-secondary-action delete-activity confirm" rel="nofollow">Delete</a>
</div>
</div>
<div class="activity-comments">
<form action="http://www.domain.com/activity/reply/" method="post" id="ac-form-38" class="ac-form">
<div class="ac-reply-avatar"><img src="http://www.domain.com/wp-content/uploads/avatars/1/677f1907f1aac6aeb3ce3d4ef60e01d2-bpthumb.jpg" class="avatar user-1-avatar avatar-120 photo" width="120" height="120" alt="Profile picture of Mike" /></div>
<div class="ac-reply-content">
<div class="ac-textarea">
<textarea id="ac-input-38" class="ac-input" name="ac_input_38"></textarea>
</div>
<input type="submit" name="ac_form_submit" class="tiny button radius" value="Post" /> or press esc to cancel. <input type="hidden" name="comment_form_id" value="38" />
</div>
<input type="hidden" id="_wpnonce_new_activity_comment" name="_wpnonce_new_activity_comment" value="203136d3e9" /><input type="hidden" name="_wp_http_referer" value="/wp-admin/admin-ajax.php" />
</form>
</div>
<div class="clearfix"></div>
</li>
However, if BuddyPress Activity Privacy is enabled, it only returns the text without the image like this:
<li class="activity activity_update activity-item date-recorded-1403887180 message" id="activity-39">
<div class="avatar">
<a href="http://www.domain.com/members/mike/">
<img src="http://www.domain.com/wp-content/uploads/avatars/1/677f1907f1aac6aeb3ce3d4ef60e01d2-bpthumb.jpg" class="avatar user-1-avatar avatar-120 photo" width="120" height="120" alt="Profile picture of Mike" /> </a>
</div>
<div class="activity-content">
<div class="activity-header">
<p><a href="http://www.domain.com/members/mike/" title="Mike">Mike</a> posted an update <a href="http://www.domain.com/activity/p/39/" title="View Discussion"><span class="time-since">right now</span></a></p>
</div>
<div class="activity-inner">
<p>bv</p>
</div>
<div class="activity-meta">
<a href="?ac=39/#ac-form-39" class="link acomment-reply bp-primary-action" id="acomment-comment-39">Comment <span>0</span></a>
<a href="http://www.domain.com/activity/favorite/39/?_wpnonce=77f7732c12" class="link secondary fav bp-secondary-action" title="Mark as Favorite">Favorite</a>
<a href="http://www.domain.com/activity/delete/39?_wpnonce=e58c2e1f2f" class="button item-button bp-secondary-action delete-activity confirm" rel="nofollow">Delete</a>
<select class="bp-ap-selectbox"><option class="fa fa-public" selected='selected' value="public"> Anyone</option><option class="fa fa-loggedin" value="loggedin"> Logged In Users</option><option class="fa fa-friends" value="friends"> My Friends</option><option class="fa fa-mentionedonly" value="mentionedonly"> @mentioned only</option><option class="fa fa-adminsonly" value="adminsonly"> Admins Only</option><option class="fa fa-onlyme" value="onlyme"> Only me</option></select>
</div>
</div>
<div class="activity-comments">
<form action="http://www.domain.com/activity/reply/" method="post" id="ac-form-39" class="ac-form">
<div class="ac-reply-avatar"><img src="http://www.domain.com/wp-content/uploads/avatars/1/677f1907f1aac6aeb3ce3d4ef60e01d2-bpthumb.jpg" class="avatar user-1-avatar avatar-120 photo" width="120" height="120" alt="Profile picture of Mike" /></div>
<div class="ac-reply-content">
<div class="ac-textarea">
<textarea id="ac-input-39" class="ac-input" name="ac_input_39"></textarea>
</div>
<input type="submit" name="ac_form_submit" class="tiny button radius" value="Post" /> or press esc to cancel. <input type="hidden" name="comment_form_id" value="39" />
</div>
<input type="hidden" id="_wpnonce_new_activity_comment" name="_wpnonce_new_activity_comment" value="203136d3e9" /><input type="hidden" name="_wp_http_referer" value="/wp-admin/admin-ajax.php" />
</form>
</div>
<div class="clearfix"></div>
</li>
The user must refresh the page before the attachment appears in the activity feed. Because the attachment does not appear immediately the users think it didn’t upload and delete their activity before refreshing the page.
Iβm sure this is being caused by BuddyPress Activity Privacy because I am able to toggle this behavior by activating and disabling the plugin.
http://wordpress.org/support/topic/activity-feed-bug-w-rtmedia