Search Results for 'private message button'
-
AuthorSearch Results
-
March 31, 2010 at 12:34 am #70953
In reply to: New Code: show forum posts since last visit
stwcParticipantWhat 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 LewisParticipantWhen 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 96400Inactivesetting 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 SayreParticipantNo, 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
GregParticipantI 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
mfgmkParticipantOy, 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