Search Results for 'private message button'
-
AuthorSearch Results
-
March 10, 2011 at 9:11 am #107386
In reply to: Replacing bp_add_friend_button with icon
4colourprogress
ParticipantOkay well I tried hooking the icon by adding another generic button div but it still wont acknowledge it as a link. I’m guessing it’s something to do with the fuction, but if I’m not suppost to put the code in that file then where should I be putting it ?
`
<a href="”>
<img src="http://www.pixelcove.co.uk/images/addcontact.png" title="Follow “><a href="”>
<img src="http://www.pixelcove.co.uk/images/messagecontact.png" title="Message “>`
December 19, 2010 at 11:59 pm #100969In reply to: Cancel Friendship Button in 1.2 Default Theme
glittereyes
ParticipantI agree to this! For now, how can I switch the places between the cancel friendship button with send private message buttons?
October 22, 2010 at 7:21 pm #96119In reply to: Member profile buttons unavailable
r-a-y
Keymaster@intimez – Just checked Private Messages for Friends Only and the plugin still works fine on BP 1.2.6.
BP 1.2.6 made some changes to the way buttons are rendered.
If you modified the member header in your child theme, you’ll need to look at the changes made to /members/single/member-header.php and apply them.
June 29, 2010 at 1:25 pm #83392In reply to: Removing Groups From Forums
lincme.co.uk
Member@alanchrishughes; What we’ve done – and it’s making sense to a few testers so far – is to ditch the forums and just use groups. So people know, for example, that they can create a cycling group, or a business group, or a flower arranging group. They understand that they can post messages in their group, and invite others to join in, accept new members, etc., and also that if they want things in the group to remain only there then they can make it private.
Apart from the varying negative reactions I see from people regarding forums and blogs, one of the things which puts people off with forums is the layout style. They don’t want to ‘go into’ a new area and then have to sub-navigate, as they frequently become lost and end up hitting the Home button and starting again. Or worse still, the browser’s Close button, because it’s just another minor stress in life they can do without. Seeing an activity stream, and then entering a group knowing that it’s much the same thing, but either publicly displayed or kept private, they can handle. (Funnily enough, one tester said today when looking at the activity stream, “This is a really great idea…a local forum”).
Personally, I’m very much pulling away from all the “Oh how cool is this?!” side of technology, as you may notice from other posts I’ve made. It’s not because I’m ready for pipe and slippers yet, nor because I don’t like it all, but simply because those who are or become site and software developers are usually far removed from those they’re developing for, yet they don’t realise it. ‘Screen blindness’, perhaps. Developers are producing highly complex helicopters, while what most people really want are bog-standard 4-gear cars. Some are even happy with a horse and cart! (Afterthought; I guess the trick is to produce the complex helicopter, but make it so simple to fly that all you need is a steering wheel and 4 gears. I know; the analogy falls down hard if stretched further!)
May 16, 2010 at 8:39 pm #78395nessradio
ParticipantOk I just find the solution… It’s because of my wordpress template… I had a js file which was conflict with the crop button
May 15, 2010 at 1:25 am #78240nessradio
ParticipantSo in my case I find the problem of why “upload avatar” doesn’t work.
It’s because of the BuddyPress Template pack plugin. When I use the bp default theme everything works perfectly.
When I use any wordpress theme that I made compatible with BuddyPress using the plugin bp Template pack I find exactly the same problem: Avatar Upload, private message, register… all of that doesn’t work… as soon as you click on the button “Submit” or “Crop” you go back to the same page and nothing happen?! It’s like the information wasn’t given at all…
There is a conflict somewhere that I can’t find!
Any Ideas???[EDIT] Ok I solved the problem!!!
Ok so if none of the solution you have in this topic works for you it’s probably because you have a conflict between a js script in your default theme and a js script in your wordpress theme… take a minute tu disable all the js action in your wordpress theme ton test if it’s coming from there…May 13, 2010 at 6:58 pm #78047In reply to: Unable to create groups or forums
Scott B
ParticipantI am also unable to create any groups on my installation. Details:
1. Ubuntu 10.04 fresh install dedicated to WPMU+BP only, on a corporate intranet.
2. WP-MU 2.9.2, BP 1.2.3, + LDAP user authentication.
3. Site blog uses BP default theme, user blogs use Kubrick.
4. No other plugins enabled.
5. From “groups” tab, click on “Create a Group”, which takes me to “site/groups/create/step/group-details/”. After entering Group Name and Group Description, clicking on “Create Group and Continue ->” just takes me back to /group-details/, Step 1, as if I had hit the refresh button instead of “Create Groups and Continue”.
6. Have verified that after every attempt, the wp_bp_groups table in the MySQL database is empty.Any ideas?
EDIT: forgot to mention, WPMU is set up for subdirectory blogs (“blogs.corp.lan/blogname”). User account authentication, blog creation, etc., work just fine, as well as BP user activity, mentions. But user private messages don’t work (separate issue, it appears).
May 8, 2010 at 11:58 pm #77273In reply to: Here come the spammers!!!
foxly
ParticipantPART 2 – DEFEATING SPAMMERS
In the last post I covered why and how spammers attack BP installations. This post will cover how I propose to counter them.
Fast Attacks -vs- Slow Attacks
There are two basic kinds of spam attacks that get run on social networks: “fast” or “flood” attacks, and “slow” attacks.
In a fast attack, the spammer signs up for an account on the site, then sends thousands of messages as quickly as possible.
Obviously, the site admin will be deluged with complaints about the spam user and quickly delete their account …but in the hours (or days) it takes the admin to respond, hundreds and hundreds of people will read the spam messages. Then the spammer signs up for another account, and repeats the process.
In a “slow” attack, the spammer signs up for *hundreds* of accounts on the system, often over a period of many months, and only sends out spam messages one at a time …often days, weeks, or months apart.
“Slow” attacks are very difficult to counter using automation …at least without annoying legitimate users.
The best way people have come up with so far is just a “report spam” button which, when clicked, reports the member to an admin so they can investigate it and if necessary delete the account. This will be implemented as part of @francescolaffi ‘s BP content moderation plugin in a couple of months.
Unfortunately, a “report spam” button doesn’t work well against “fast” attacks.
This is because:
a) There is a delay while the admin responds to manually submitted spam reports, or,
b) When a consensus scheme is used (if X users report a member their account gets suspended), there is a delay while enough votes are accumulated to flag the member as a spammer.During that time, people are reading the spam messages and the spammer is winning.
Goals of Proposed BP Core Anti-Spam Mods
The goal of the proposed core modifications is to counter “fast” attacks by the following means:
1) To make it difficult for a spammer to create large numbers of member accounts using automated means.
2) To make it difficult for a spammer that already has a member account to use automated means to:
a) send large volumes of PM’s
b) send large numbers of friend requests
c) create large numbers of groups
d) create large numbers of group posts
e) post large numbers of comments
f) post large numbers of status updates3) To accomplish 1) and 2) without being annoying to legitimate users.
4) To make the system configurable, so it can be adapted to the needs of the site …for example: visually impaired users, or display on mobile phones.
5) To make the system “on by default” and “secure by default”
How We Can Accomplish This
1) New User Sign-up
a) Add a captcha on the new account sign-up screen.
b) If the “user” gets the captcha wrong on the first try, require *TWO* captchas to be solved before they can proceed. (If the odds of a bot solving ONE captcha with OCR are 1 in 100, the odds of the bot solving TWO captchas with OCR are 1 in 10,000. This is a technique Gmail uses.)…set X to be a random number on each installation between 3 and 7…
c) If the user gets X captchas wrong in a row, block their IP for a random amount of time (15 minutes to 2 hours). (This is what Craigslist does)
d) If the user fails X captchas *again* after being blocked, permanently ban their IP and post it to akismet.
e) If a locally banned IP tries to sign-up, don’t throw an “error page”. Completely ignore the request and don’t send anything.
f) If an akismet banned IP tries to sign up, require *TWO* captchas to be solved on the first try, and if they get X captchas wrong in a row, permanently ban their IP and repost it to akismet.
g) Add an option field to the admin menu that limits the number of accounts that can be created per IP address. By default, set it at 2.2) Existing User Sign-In
a) Use a “normal” password box on first sign-in attempt.
b) If the member gets their password wrong on the first try, require them to solve a captcha on the second try. Offer password recovery option.
c) If the member gets their password wrong on the second try, require *TWO* captchas to be solved before they can proceed. Offer password recovery option.…set X to be a random number on each installation between 3 and 7…
d) If the user gets X logins / captchas wrong in a row, block the visitor’s IP for a random amount of time (15 minutes to 2 hours).
3) Private Messages
a) Add a field to the user table that allows PM limiting to be bypassed or set to a unique value on a user-per-user basis.
b) Add three option fields on the admin menu: allow “X” messages to be sent every 24 hours, averaged over the past “Y” hours with “Z” hysteresis
…when BP is installed, randomly set X, Y, and Z to allow a daily maximum of between 18 and 24 messages, averaged over between 2 and 24 hours, +/- 3 messages.
c) If the maximum is exceeded, require the member to solve a captcha before they can send another PM.
d) If they get the first captcha wrong, require them to solve two captchas before they can send another PM.…set R to be a random number on each installation between 3 and 7…
e) If the user gets R captchas wrong in a row, block their IP for a random amount of time (15 minutes to 2 hours). (This is what Craigslist does)
f) If the user fails R captchas *again* after being blocked, permanently ban their IP and post it to akismet.
g) If a locally banned IP tries to visit the site, don’t throw an “error page”. Completely ignore the request and don’t send anything.Consider how difficult the algorithm above makes it to send automated messages. A spammer can’t just send “12 messages a day” or “1 message an hour” and avoid triggering the system. Every BP installation will have a unique combination that will cause it to trip. Yet for a “normal” user, the system will hardly ever trip, and if it does, it takes all of 5 seconds to enter a captcha and continue. And the system can be bypassed entirely for edge cases, like paid advertisers or site news.
3) Friend Requests
a) Create a config option in BuddyPress that allows the admin to remove the member’s directory with one click. Disable the member directory by “default” on new installs. In my experience, the only people that use the member’s directory (in its default state, on a socially oriented site) are Spammers, Marketers, and Competitors. There’s a reason Facebook, MySpace, LinkedIn, and Twitter do not have “global” member directories.
b) Implement same scheme as private messages.4) Group Creation
a) Add a field to the user table that allows Group limiting to be bypassed or set to a unique value on a user-per-user basis.
b) Add an option field on the admin menu that sets a maximum number of groups that can be created by a user. By default, set it at 5.5) Group Posts
a) Add a field to the user table that allows group post limiting to be bypassed or set to a unique value on a user-per-user basis.
b) Create a “whitelist” field on the admin page that allows “trusted” media sharing URL’s like YouTube, Revver, Flickr, etc to be bypassed in spam protection.
c) Create an option that automatically “scrubs” URL’s and email addresses from group posts if they are not on the whitelist. Not just “nofollow” …complete removal. This will stop 90% of abuse dead in its tracks, because most spammers are just trying to get traffic to a site or replies to an email.
d) If the system detects a URL or email address embedded in a message, and it’s not on the whitelist, require a captcha to be solved before allowing the post.
e) If they get the first captcha wrong, require them to solve two captchas before approving the post.…set R to be a random number on each installation between 3 and 7…
f) If the user gets R captchas wrong in a row, block their IP for a random amount of time (15 minutes to 2 hours).
g) If the user fails R captchas *again* after being blocked, permanently ban their IP and post it to akismet.
h) If a locally banned IP tries to visit the site, don’t throw an “error page”. Completely ignore the request and don’t send anything.i) For posts that do not contain a URL or email address, run the post through akismet. If it passes, approve the post. If it fails, require a captcha to be solved before allowing the post.
j) If they get the first captcha wrong, require them to solve two captchas before approving the post.
k) If the user gets R captchas wrong in a row, block their IP for a random amount of time (15 minutes to 2 hours).
l) If the user fails R captchas *again* after being blocked, permanently ban their IP and post it to akismet.
m) If a locally banned IP tries to visit the site, don’t throw an “error page”. Completely ignore the request and don’t send anything.6) Comments
a) Create an admin option that only allows users to comment on their *friend’s* items. Activate it by default on new BP installations.
7) Status Updates
a) Add a field to the user table that allows status update limiting to be bypassed or set to a unique value on a user-per-user basis.
b) Create a “whitelist” field on the admin page that allows “trusted” media sharing URL’s like YouTube, Revver, Flickr, etc to be bypassed in spam protection.
c) Create an option that automatically “scrubs” URL’s and email addresses from status updates if they are not on the whitelist. Not just “nofollow” …complete removal. This will stop 90% of abuse dead in its tracks, because most spammers are just trying to get traffic to a site or replies to an email.
d) If the system detects a URL or email address embedded in a message, and it’s not on the whitelist, require a captcha to be solved before allowing the activity stream post.
e) If they get the first captcha wrong, require them to solve two captchas before approving the activity stream post.…set R to be a random number on each installation between 3 and 7…
f) If the user gets R captchas wrong in a row, block their IP for a random amount of time (15 minutes to 2 hours).
g) If the user fails R captchas *again* after being blocked, permanently ban their IP and post it to akismet.
h) If a locally banned IP tries to visit the site, don’t throw an “error page”. Completely ignore the request and don’t send anything.i) For activity stream posts that do not contain a URL or email address, run the post through akismet. If it passes, approve the post. If it fails, require a captcha to be solved before allowing the post.
j) If they get the first captcha wrong, require them to solve two captchas before approving the post.
k) If the user gets R captchas wrong in a row, block their IP for a random amount of time (15 minutes to 2 hours).
l) If the user fails R captchas *again* after being blocked, permanently ban their IP and post it to akismet.
m) If a locally banned IP tries to visit the site, don’t throw an “error page”. Completely ignore the request and don’t send anything.8 ) In All Cases
a) When a member account is banned, or repeatedly triggers spam protection measures, send an alert to the site administrator.
b) Allow admin alerts to be disabled if necessary, example: DDOS attack against the site.9) CONCLUSION
While the list of modifications above may look incredibly complicated, really, it’s not.
I’d say “worst case” it’s about a week of work to research and make these modifications. Then we can push it out into beta testing with all the other new code to give it a proper shakedown.
I’m sure there are plenty of ways the algorithms above could be improved, so please go ahead and post your feedback!
Thanks!
^F^
May 3, 2010 at 7:05 pm #76485In reply to: Private Message Spam and Abuse
r-a-y
KeymasterTry this until a more, full-featured privacy component is available.
Remove send private message button for non-friends:
http://blog.etiviti.com/2010/03/buddypress-hack-remove-send-private-message-for-non-friends/April 26, 2010 at 9:44 am #75226In reply to: Adding contact form to members profile.
@mercime
Participant“I would like the Members profile to have a contact button which when clicked allows the users to send an email to the member?”
Actually, when a logged-in user sends “Private Message” to another member, the latter receives the message in his/her email inbox. Or did you need a contact form for online visitors who are not logged in so they could touch base with any member of your community?April 14, 2010 at 5:59 pm #73521In reply to: BP Album+ || New Features Requests and Discussion
jordashtalon
Member2. I know you use the FB metaphor about creating an album first but I’d make the media add process a logical next step. Right now you create the album and the process just kinda stalls.
3. The member tags field will cause my folks to do nothing. I’d suggest making it more FB like. You click a button that says “tag this photo” and a list pops up of your friends to tag with. Now, I know there isn’t yet the ability to tag faces, but it needs to be clear that you can tag your friends in pics (maybe something along the lines of the auto suggest in the private message area?
@Mike Pratt
I like those ideas.
April 14, 2010 at 4:29 am #73454In reply to: BP Album+ || New Features Requests and Discussion
Mike Pratt
Participanttesting v 0.1.9.2 Excellent progress so far. I have not been able to break this build (yea!) but I have a bunch of usability comments to add and, hopefully, help with.
1. I’d consider giving admins the ability to decide what users are presented with when they upload media e.g. whether they have to deal with visibility options at such a granularity. My site is behind a wall so “public” will only throw them off. This is minor, I know.
2. I know you use the FB metaphor about creating an album first but I’d make the media add process a logical next step. Right now you create the album and the process just kinda stalls.
3. The member tags field will cause my folks to do nothing. I’d suggest making it more FB like. You click a button that says “tag this photo” and a list pops up of your friends to tag with. Now, I know there isn’t yet the ability to tag faces, but it needs to be clear that you can tag your friends in pics (maybe something along the lines of the auto suggest in the private message area?
Will send more feedback as I go thru. Many Thanks so far.
March 31, 2010 at 11:43 am #71033In reply to: BP Album+ || New Features Requests and Discussion
21cdb
ParticipantI really like to follow your development and i raelly appriciate how transparent you’re keeping the developmet and how much your are listining to the demands of us users.
Keep it up this way!
I wrote a short user story:
1) An administrator: I would like to see all albums even if they set to private or not. I would like to hide pictures with inappropriate content. They shouldn’t be visible for site members anymore, but the owner should see them darkened out with a message overlaying the picture “This picture was removed due to inappropriate content” – something like this.
2) An anonymous user off the Internet: Should only be able to see the “public” pictures.
3) A logged-in member viewing their own profile: Should have an Main Menu Item “Albums” or even better “Photos” that shows all of his pictures and all pictures of his friends (newest Uploads on top – so they can easily discover whats new). There should be an “Upload Photos” button on this page (After clicking you will be ask if you would like to upload a single picture or if you would like to create an album). The Page should also hold a subnav with some Options as “Photos of my friends – Photos i’m tagged on – My uploaded Photos – Upload Photos”
4) A logged-in member viewing a friend’s profile: Should have an Main Menu Item “Albums/Photos” with all of the photos uploaded by “John Doe” and a subnav with “Photos John Doe is tagged on”.
5) A logged-in member viewing a stranger’s profile: Should have an Main Menu Item “Albums/Photos” with all public pictures the “stranger” uploaded.
I was also thinking of pictures uploaded to groups. I guess it should be enough if there would be an “Album/Photos” Menu Item in the mainnav of the group. This page should hold all group pictures and an “Upload Photos” button.
That should be enough for the beginning.
March 31, 2010 at 12:34 am #70953In reply to: New Code: show forum posts since last visit
stwc
ParticipantWhat is all this extending people want to do with forums (is bbPress) I am having trouble wrapping my head around what was deemed “weak forum functionality” What is it supposed to do that it already isn’t?
From my perspective only: I’m working on migrating a busy community of about 1000 users from Vanilla. Now Vanilla itself is just that — basic, but nice and solid forum structure. Unfortunately, Mark, the guy behind it, fractured the vibrant development community around extensions when he jumped the gun on the 2.0 release, reworked the extension repository, badly, in my opinion, and now things are in disarray, sadly, and the 2.0 version, nice as it looks, just isn’t coming very fast, while the 1.x versions, still apparently being maintained and moved forward, have a floundering and disjointed developer community kind of wondering what’s going on. It’s a bit sad to see, as it’s a great little app. It’s just that I think there was a big mistake made in the way that the community website around it (like this one here) was changed, and lost focus on users. It’s gotten better since, the developer site, but I think momentum might have been lost.
So, anyway. My users have come to expect some basic functionality from a forum, most of which ihas been added through extensions to Vanilla. Things like:
- Attaching inline images to posts
- Easy quoting of posts in replies
- Minor, standard forum structural stuff like new comments since last visit, links to last reply/replier and so on
- Inline PMs (which, in my case, will be moved to BP private messages when I do the jump)
- Individual hread pagination/navigation in the forum view
- Ways to thank (ie vote up, ‘like’, whatever) posts
- Buttons on textareas for basic tinyMCE-like functionality
And lots of other little niceties like that. I am determined to make the transition from Vanilla to BP as smooth and seamless as possible for my users (many of whom are developers and sophisticated web users, many of whom aren’t), and so the little things have been much on my mind. I want to provide them with a core forum experience that replicates as closely as possible what they’ve been used to for the past few years, but with all the other BP goodness and blog hosting with WPMU and all the rest extending it.
Pretty much all of that is now covered by plugins (or even core BP stuff) from etiviti (rich!) and Boone and others, thank goodness. But until literally the last couple of weeks, a lot of the plugin functionality to fill in those gaps, available on standalone bbPress installs through plugins written for bbPress, wasn’t available in Buddypress’s integrated version. So I am deeply thankful to folks working on that stuff and porting it to work natively in BP.
So, for me, it’s not that there’s anything intrinsically wrong with BP’s forum functionality as provided by bbPress, but there are just a whole bunch of nice little things that people don’t think about much until they’re no longer there that I want to make sure my userbase doesn’t miss if we make the move.
Again — that’s just my own personal story with the site I’m currently working on. And yes, I am well aware that Buddypress isn’t about replicating or extending the kind of bog-standard forum style we’re all used to, it’s kneedeep in the MyFace-y Spacebook-y Twitteriffic social networking hoohah that is so au courant these days. All good.
In my case, it’s not a matter of everything looking like a nail because I have a hammer in my hand, honestly. If all my work with BP to tweak it towards something that will please my users doesn’t pan out, I won’t end up using it for this particular project I’m working on right now — but I’m so close I can taste it.
Learning BP is an end in itself, as well.
January 15, 2010 at 5:55 pm #60859In reply to: Wire Posts in bp 1.2
David Lewis
ParticipantWhen you send a private message you see their name in a button beside the textarea. When you send a public message you get a textarea pre-populated with @username. I think if you instead got a textarea with their name in a button beside the textarea… just like a private message… that would be more consistent. It would also be less prone to user error. For instance, I can envision someone wanting to public message “Jim Smith” clicking the button and seeing “@unibomber” in the textarea and thinking… what the?! And then deleting the offending weird text. It sounds ridiculous… but sit down with some non-computer savvy users and you will be amazed :o)
That said… it sounds like you’re aware of that and will be putting some thought into it in future releases. So that’s great.
I guess the question is… if we your don’t rely on the @ shorthand… how would someone make mention of someone else without using the “Public Message” button? Could there be some kind of auto-complete text box for targeting your comments? Or would the @ shorthand simply remain as-is and be considered a “power user” feature.
Just thinking out loud :o)
January 1, 2010 at 7:42 pm #59885In reply to: Soon to release bp group control plugin
Anonymous User 96400
Inactivesetting up different group types is fairly easy. You just have to attach some groupmeta to the group, that basically let you add as many types as you’d like. Then you just check the metadata to figure out what type of group you’re in. Using the groups API you can then add different functionality for different groups.
I’ve written a types-plugin for one of my sites. It doesn’t have an interface, though. The 3 types I needed are hardcoded into it, so it’s really not suited for a release at the moment. There’s also a lot of more stuff, like a shopping cart, part of that plugin. So, I’ve stripped the functions needed for group types out (hopefully al of them).
First we need to add the addtional fields to our registration form:
function sv_add_registration_group_types()
{
?>
<div id="account-type" class="register-section">
<h3 class="transform"><?php _e( 'Choose your account type (required)', 'group-types' ) ?></h3>
<script type="text/javascript" defer="defer">
jQuery(document).ready(function(){
jQuery("#account-type-normal_user").attr("checked", true);
jQuery("#group-details").hide();
jQuery("#account-type-type_one,#account-type-type_two,#account-type-type_three").click(function(){
if (jQuery(this).is(":checked")) {
jQuery("#group-details").slideDown("slow");
} else {
jQuery("#group-details").slideUp("slow");
}
});
jQuery("#account-type-normal_user").click(function(){
if (jQuery(this).is(":checked")) {
jQuery("#group-details").slideUp("slow");
} else {
jQuery("#group-details").slideDown("slow");
}
});
});
</script>
<?php do_action( 'bp_account_type_errors' ) ?>
<label><input type="radio" name="account_type" id="account-type-normal_user" value="normal_user" checked="checked" /><?php _e( 'User', 'group-types' ) ?></label>
<label><input type="radio" name="account_type" id="account-type-type_one" value="type_one" /><?php _e( 'Type 1', 'group-types' ) ?></label>
<label><input type="radio" name="account_type" id="account-type-type_two" value="type_two" /><?php _e( 'Type 2', 'group-types' ) ?></label>
<label><input type="radio" name="account_type" id="account-type-type_three" value="type_three" /><?php _e( 'Type 3', 'group-types' ) ?></label>
<div id="group-details">
<p><?php _e( 'We will automatically create a group for your business or organization. This group will be tailored to your needs! You can change the description and the news later in the admin section of your group.', 'group-types' ); ?></p>
<?php do_action( 'bp_group_name_errors' ) ?>
<label for="group_name"><?php _e( 'Group Name', 'scuba' ) ?> <?php _e( '(required)', 'buddypress' ) ?></label>
<input type="text" name="group_name" id="group_name" value="" />
<br /><small><?php _e( 'We suggest you use the name of your business or organization', 'group-types' ) ?></small>
<label for="group_desc"><?php _e( 'Group Description', 'scuba' ) ?></label>
<textarea rows="5" cols="40" name="group_desc" id="group_desc"></textarea>
<br /><small><?php _e( 'This description will be visible on your group profile, so it could be used to present your mission statement for example.', 'group-types' ) ?></small>
<label for="group_news"><?php _e( 'Group News', 'scuba' ) ?></label>
<textarea rows="5" cols="40" name="group_news" id="group_news"></textarea>
<br /><small><?php _e( 'Enter any news that you want potential members to see.', 'group-types' ) ?></small>
</div>
</div>
<?php
}
add_action( 'bp_before_registration_submit_buttons', 'sv_add_registration_group_types' );Then we have to validate things and add some usermeta when a regitration happens:
/**
* Add custom userdata from register.php
* @since 1.0
*/
function sv_add_to_signup( $usermeta )
{
$usermeta['account_type'] = $_POST['account_type'];
if( isset( $_POST['group_name'] ) )
$usermeta['group_name'] = $_POST['group_name'];
if( isset( $_POST['group_desc'] ) )
$usermeta['group_desc'] = $_POST['group_desc'];
if( isset( $_POST['group_news'] ) )
$usermeta['group_news'] = $_POST['group_news'];
return $usermeta;
}
add_filter( 'bp_signup_usermeta', 'sv_add_to_signup' );
/**
* Update usermeta with custom registration data
* @since 1.0
*/
function sv_user_activate_fields( $user )
{
update_usermeta( $user['user_id'], 'account_type', $user['meta']['account_type'] );
if( isset( $user['meta']['group_name'] ) )
update_usermeta( $user['user_id'], 'group_name', $user['meta']['group_name'] );
if( isset( $user['meta']['group_desc'] ) )
update_usermeta( $user['user_id'], 'group_desc', $user['meta']['group_desc'] );
if( isset( $user['meta']['group_news'] ) )
update_usermeta( $user['user_id'], 'group_news', $user['meta']['group_news'] );
return $user;
}
add_filter( 'bp_core_activate_account', 'sv_user_activate_fields' );
/**
* Perform checks for custom registration data
* @since 1.0
*/
function sv_check_additional_signup()
{
global $bp;
if( empty( $_POST['account_type'] ) )
$bp->signup->errors['account_type'] = __( 'You need to choose your account type', 'group-types' );
if( empty( $_POST['group_name'] ) && $_POST['account_type'] != 'normal_user' )
$bp->signup->errors['group_name'] = __( 'You need to pick a group name', 'group-types' );
if( ! empty( $_POST['group_name'] ) && $_POST['account_type'] != 'normal_user' )
{
$slug = sanitize_title_with_dashes( $_POST['group_name'] );
$exist = groups_check_group_exists( $slug );
if( $exist )
$bp->signup->errors['group_name'] = __( 'This name is not available. If you feel this is a mistake, please <a href="/contact">contact us</a>.', 'group-types' );
}
}
add_action( 'bp_signup_validate', 'sv_check_additional_signup' );And then we set up the group for the user (there are some constants in this function, so you’ll need to change that):
/**
* Create custom groups for skools, biz and org accounts
* @since 1.0
*/
function sv_init_special_groups( $user )
{
global $bp;
// get account type
$type = get_usermeta( $user['user_id'], 'account_type' );
if( $type == 'normal_user' )
{
// Do nothing
}
elseif( $type == 'type_one' || $type == 'type_two' || $type == 'type_three' )
{
// get some more data from sign up
$group_name = get_usermeta( $user['user_id'], 'group_name' );
$group_desc = get_usermeta( $user['user_id'], 'group_desc' );
$group_news = get_usermeta( $user['user_id'], 'group_news' );
$slug = sanitize_title_with_dashes( $group_name );
// create dive skool group
$group_id = groups_create_group( array(
'creator_id' => $user['user_id'],
'name' => $group_name,
'slug' => $slug,
'description' => $group_desc,
'news' => $group_news,
'status' => 'public',
'enable_wire' => true,
'enable_forum' => true,
'date_created' => gmdate('Y-m-d H:i:s')
)
);
// add the type to our group
groups_update_groupmeta( $group_id, 'group_type', $type );
// delete now useless data
delete_usermeta( $user['user_id'], 'group_name' );
delete_usermeta( $user['user_id'], 'group_desc' );
delete_usermeta( $user['user_id'], 'group_news' );
// include PHPMailer
require_once( SV_MAILER . 'class.phpmailer.php' );
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->Host = SV_SMTP;
$auth = get_userdata( $user['user_id'] );
$profile_link = $bp->root_domain . '/' . $bp->groups->slug . '/' . $slug . '/admin';
$message = sprintf( __( 'Hello %s,
we have created a group for your business or organization. To get more out of your presence on Yoursitenamehere please take some time to set it up properly.
Please follow this link to fill in the rest of your profile: %s
We wish you all the best. Should you have any questions regarding your new group, please contact us at support@yoursitenamehere.com.
Your Yoursitenamehere Team', 'group-types' ), $auth->display_name, $profile_link );
$mail->SetFrom("support@yoursitenamehere.com","Yoursitenamehere");
$mail->AddAddress( $auth->user_email );
$mail->Subject = __( 'Your new group pages on Yoursitenamehere', 'group-types' );
$mail->Body = $message;
$mail->WordWrap = 75;
$mail->Send();
}
}
add_action( 'bp_core_account_activated', 'sv_init_special_groups' );When you write a group extension we’ll have to swap the activation call with a function like the one below to be able to check for group types.
/**
* Replacement activation function for group extension classes
*/
function activate_type_one()
{
global $bp;
$type = groups_get_groupmeta( $bp->groups->current_group->id, 'group_type' );
if( $type == 'type_one' )
{
$extension = new Group_Type_One;
add_action( "wp", array( &$extension, "_register" ), 2 );
}
}
add_action( 'plugins_loaded', 'activate_type_one' );The last thing we need to do is add our group type names to group and directory pages:
/**
* Modify the group type status
*/
function sv_get_group_type( $type, $group = false )
{
global $groups_template;
if( ! $group )
$group =& $groups_template->group;
$gtype = groups_get_groupmeta( $group->id, 'group_type' );
if( $gtype == 'type_one' )
$name = __( 'Type 1', 'group-types' );
elseif( $gtype == 'type_two' )
$name = __( 'Type 2', 'group-types' );
elseif( $gtype == 'type_three' )
$name = __( 'Type 3', 'group-types' );
else
$name = __( 'User Group', 'group-types' );
if( 'public' == $group->status )
{
$type = sprintf( __( "%s (public)", "group-types" ), $name );
}
elseif( 'hidden' == $group->status )
{
$type = sprintf( __( "%s (hidden)", "group-types" ), $name );
}
elseif( 'private' == $group->status )
{
$type = sprintf( __( "%s (private)", "group-types" ), $name );
}
else
{
$type = ucwords( $group->status ) . ' ' . __( 'Group', 'buddypress' );
}
return $type;
}
add_filter( 'bp_get_group_type', 'sv_get_group_type' );
/**
* Modify the group type status on directory pages
*/
function sv_get_the_site_group_type()
{
global $site_groups_template;
return sv_get_group_type( '', $site_groups_template->group );
}
add_filter( 'bp_get_the_site_group_type', 'sv_get_the_site_group_type' );It’s quite a bit of code, but it should get you started. This hasn’t been tested with 1.2 btw.
September 1, 2009 at 12:05 am #51858In reply to: How to make a safe community?
Jeff Sayre
ParticipantNo, the privacy component will not be included in v1.1. It is on the roadmap to be a core feature of v1.2.
But, first, we need to do some private alpha testing. Then some non-private beta testing–meaning available to all. Once all the kinks are worked out of it, Andy will evaluate it and decide if it meets the criteria to be merged into the BuddyPress codebase as a core component.
Will there also be a feature like “hiding my activities” ?
The privacy component will offer a user a full suite of privacy control options for:
- profile privacy filtering at the field level
- privacy filtering activity stream by action
- privacy filtering friends list and hiding the “Add Friend” button
- privacy filtering the groups list
- deciding who can instant message you
- privacy filtering for blogs
- privacy filtering wire posts and deciding who can post on your wire
There are also features for Site Admins that allow them to determine which privacy components are enabled (by default, all are enabled).
July 7, 2009 at 4:59 am #48709In reply to: Bug (?): private message to two members
Greg
ParticipantI went over to testbp.org and this issue repros there too. When sending a message to two people where the first one is added to the “to” line using the “send message” button and the second person is added manually, the message only goes to the first.
@JJJ, did you follow exactly the repro steps that I provided?
@Burt, thanks – I used the auto-upgrade and had forgotten the about the theme directory gymnastics that one needs to do at the end of an install.
December 18, 2008 at 1:57 am #34558In reply to: messages not working
mfgmk
ParticipantOy, just upgraded to 1.0b1 and still have the same problem with messages not working. Here’s what I did for the upgrade:
trial 1) overwrote all plugins with the latest releases (combo download), tested site — messaging didn’t work;
trial 2) deleted all mu-plugins, re-downloaded 1.0b1 (in case the d/l botched the first time), uploaded everything it in their proper locations, tested site — messaging still didn’t work.
I tested private messaging by doing the following:
trial 1) My Account >> Messages >> Compose >> write a message >> Send — pressing Send cleared all fields (Send To, Subject, Message);
trial 2) My Account >> Friends >> My Friends >> click on friend’s profile >> Send Message >> write a message >> Send — pressing Send cleared all fields again;
trial 3) do the same stuff as trial 2 but with a different friend — still the same problem.
Here’s the funny part, when I checked off “This is a notice to all users” the Send button did work. One other piece of information that might help troubleshoot this is that I have this text “(Use username – autocomplete coming soon)” next to the Send To label.
-
AuthorSearch Results