BuddyPress - Version 1.5.5

Version Description

  • Security upgrade
  • Fixes over 10 bugs
Download this release

Release Info

Developer boonebgorges
Plugin Icon 128x128 BuddyPress
Version 1.5.5
Comparing to
See all releases

Code changes from version 1.5.4 to 1.5.5

bp-activity/bp-activity-classes.php CHANGED
@@ -133,17 +133,14 @@ Class BP_Activity_Activity {
133
  $where_conditions['hidden_sql'] = "a.hide_sitewide = 0";
134
 
135
  // Exclude specified items
136
- if ( $exclude )
 
137
  $where_conditions['exclude'] = "a.id NOT IN ({$exclude})";
 
138
 
139
  // The specific ids to which you want to limit the query
140
  if ( !empty( $in ) ) {
141
- if ( is_array( $in ) ) {
142
- $in = implode ( ',', array_map( 'absint', $in ) );
143
- } else {
144
- $in = implode ( ',', array_map( 'absint', explode ( ',', $in ) ) );
145
- }
146
-
147
  $where_conditions['in'] = "a.id IN ({$in})";
148
  }
149
 
@@ -155,8 +152,13 @@ Class BP_Activity_Activity {
155
 
156
  $where_sql = 'WHERE ' . join( ' AND ', $where_conditions );
157
 
158
- if ( $per_page && $page ) {
159
- $pag_sql = $wpdb->prepare( "LIMIT %d, %d", intval( ( $page - 1 ) * $per_page ), intval( $per_page ) );
 
 
 
 
 
160
  $activities = $wpdb->get_results( apply_filters( 'bp_activity_get_user_join_filter', $wpdb->prepare( "{$select_sql} {$from_sql} {$where_sql} ORDER BY a.date_recorded {$sort} {$pag_sql}" ), $select_sql, $from_sql, $where_sql, $sort, $pag_sql ) );
161
  } else {
162
  $activities = $wpdb->get_results( apply_filters( 'bp_activity_get_user_join_filter', $wpdb->prepare( "{$select_sql} {$from_sql} {$where_sql} ORDER BY a.date_recorded {$sort}" ), $select_sql, $from_sql, $where_sql, $sort ) );
133
  $where_conditions['hidden_sql'] = "a.hide_sitewide = 0";
134
 
135
  // Exclude specified items
136
+ if ( !empty( $exclude ) ) {
137
+ $exclude = implode( ',', wp_parse_id_list( $exclude ) );
138
  $where_conditions['exclude'] = "a.id NOT IN ({$exclude})";
139
+ }
140
 
141
  // The specific ids to which you want to limit the query
142
  if ( !empty( $in ) ) {
143
+ $in = implode( ',', wp_parse_id_list( $in ) );
 
 
 
 
 
144
  $where_conditions['in'] = "a.id IN ({$in})";
145
  }
146
 
152
 
153
  $where_sql = 'WHERE ' . join( ' AND ', $where_conditions );
154
 
155
+ if ( !empty( $per_page ) && !empty( $page ) ) {
156
+
157
+ // Make sure page values are absolute integers
158
+ $page = absint( $page );
159
+ $per_page = absint( $per_page );
160
+
161
+ $pag_sql = $wpdb->prepare( "LIMIT %d, %d", absint( ( $page - 1 ) * $per_page ), $per_page );
162
  $activities = $wpdb->get_results( apply_filters( 'bp_activity_get_user_join_filter', $wpdb->prepare( "{$select_sql} {$from_sql} {$where_sql} ORDER BY a.date_recorded {$sort} {$pag_sql}" ), $select_sql, $from_sql, $where_sql, $sort, $pag_sql ) );
163
  } else {
164
  $activities = $wpdb->get_results( apply_filters( 'bp_activity_get_user_join_filter', $wpdb->prepare( "{$select_sql} {$from_sql} {$where_sql} ORDER BY a.date_recorded {$sort}" ), $select_sql, $from_sql, $where_sql, $sort ) );
bp-activity/bp-activity-notifications.php CHANGED
@@ -53,8 +53,9 @@ function bp_activity_at_message_notification( $activity_id, $receiver_user_id )
53
  if ( 'no' != bp_get_user_meta( $receiver_user_id, 'notification_activity_new_mention', true ) ) {
54
  $poster_name = bp_core_get_user_displayname( $activity->user_id );
55
 
56
- $message_link = bp_activity_get_permalink( $activity_id );
57
- $settings_link = bp_core_get_user_domain( $receiver_user_id ) . bp_get_settings_slug() . '/notifications/';
 
58
 
59
  $poster_name = stripslashes( $poster_name );
60
  $content = bp_activity_filter_kses( strip_tags( stripslashes( $activity->content ) ) );
@@ -138,9 +139,10 @@ function bp_activity_new_comment_notification( $comment_id, $commenter_id, $para
138
  $original_activity = new BP_Activity_Activity( $activity_id );
139
 
140
  if ( $original_activity->user_id != $commenter_id && 'no' != bp_get_user_meta( $original_activity->user_id, 'notification_activity_new_reply', true ) ) {
141
- $poster_name = bp_core_get_user_displayname( $commenter_id );
142
- $thread_link = bp_activity_get_permalink( $activity_id );
143
- $settings_link = bp_core_get_user_domain( $original_activity->user_id ) . bp_get_settings_slug() . '/notifications/';
 
144
 
145
  $poster_name = stripslashes( $poster_name );
146
  $content = bp_activity_filter_kses( stripslashes($content) );
@@ -183,9 +185,10 @@ To view your original update and all comments, log in and visit: %3$s
183
  $parent_comment = new BP_Activity_Activity( $parent_id );
184
 
185
  if ( $parent_comment->user_id != $commenter_id && $original_activity->user_id != $parent_comment->user_id && 'no' != bp_get_user_meta( $parent_comment->user_id, 'notification_activity_new_reply', true ) ) {
186
- $poster_name = bp_core_get_user_displayname( $commenter_id );
187
- $thread_link = bp_activity_get_permalink( $activity_id );
188
- $settings_link = bp_core_get_user_domain( $parent_comment->user_id ) . bp_get_settings_slug() . '/notifications/';
 
189
 
190
  // Set up and send the message
191
  $ud = bp_core_get_core_userdata( $parent_comment->user_id );
53
  if ( 'no' != bp_get_user_meta( $receiver_user_id, 'notification_activity_new_mention', true ) ) {
54
  $poster_name = bp_core_get_user_displayname( $activity->user_id );
55
 
56
+ $message_link = bp_activity_get_permalink( $activity_id );
57
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
58
+ $settings_link = bp_core_get_user_domain( $receiver_user_id ) . $settings_slug . '/notifications/';
59
 
60
  $poster_name = stripslashes( $poster_name );
61
  $content = bp_activity_filter_kses( strip_tags( stripslashes( $activity->content ) ) );
139
  $original_activity = new BP_Activity_Activity( $activity_id );
140
 
141
  if ( $original_activity->user_id != $commenter_id && 'no' != bp_get_user_meta( $original_activity->user_id, 'notification_activity_new_reply', true ) ) {
142
+ $poster_name = bp_core_get_user_displayname( $commenter_id );
143
+ $thread_link = bp_activity_get_permalink( $activity_id );
144
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
145
+ $settings_link = bp_core_get_user_domain( $original_activity->user_id ) . $settings_slug . '/notifications/';
146
 
147
  $poster_name = stripslashes( $poster_name );
148
  $content = bp_activity_filter_kses( stripslashes($content) );
185
  $parent_comment = new BP_Activity_Activity( $parent_id );
186
 
187
  if ( $parent_comment->user_id != $commenter_id && $original_activity->user_id != $parent_comment->user_id && 'no' != bp_get_user_meta( $parent_comment->user_id, 'notification_activity_new_reply', true ) ) {
188
+ $poster_name = bp_core_get_user_displayname( $commenter_id );
189
+ $thread_link = bp_activity_get_permalink( $activity_id );
190
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
191
+ $settings_link = bp_core_get_user_domain( $parent_comment->user_id ) . $settings_slug . '/notifications/';
192
 
193
  // Set up and send the message
194
  $ud = bp_core_get_core_userdata( $parent_comment->user_id );
bp-blogs/bp-blogs-template.php CHANGED
@@ -554,7 +554,7 @@ function bp_blogs_validate_blog_signup() {
554
  if ( is_subdomain_install() )
555
  $domain = $blogname . '.' . preg_replace( '|^www\.|', '', $current_site->domain );
556
 
557
- wpmu_create_blog( $domain, $path, $blog_title, $current_user->id, $meta, $wpdb->siteid );
558
  bp_blogs_confirm_blog_signup($domain, $path, $blog_title, $current_user->user_login, $current_user->user_email, $meta);
559
  return true;
560
  }
554
  if ( is_subdomain_install() )
555
  $domain = $blogname . '.' . preg_replace( '|^www\.|', '', $current_site->domain );
556
 
557
+ wpmu_create_blog( $domain, $path, $blog_title, $current_user->ID, $meta, $wpdb->siteid );
558
  bp_blogs_confirm_blog_signup($domain, $path, $blog_title, $current_user->user_login, $current_user->user_email, $meta);
559
  return true;
560
  }
bp-core/admin/bp-core-schema.php CHANGED
@@ -205,8 +205,14 @@ function bp_core_install_extended_profiles() {
205
  $charset_collate = bp_core_set_charset();
206
  $bp_prefix = bp_core_get_table_prefix();
207
 
208
- bp_update_option( 'bp-xprofile-base-group-name', _x( 'Base', 'First XProfile group name', 'buddypress' ) );
209
- bp_update_option( 'bp-xprofile-fullname-field-name', _x( 'Name', 'XProfile fullname field name', 'buddypress' ) );
 
 
 
 
 
 
210
 
211
  $sql[] = "CREATE TABLE {$bp_prefix}bp_xprofile_groups (
212
  id bigint(20) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
205
  $charset_collate = bp_core_set_charset();
206
  $bp_prefix = bp_core_get_table_prefix();
207
 
208
+ // These values should only be updated if they are not already present
209
+ if ( !$base_group_name = bp_get_option( 'bp-xprofile-base-group-name' ) ) {
210
+ bp_update_option( 'bp-xprofile-base-group-name', _x( 'Base', 'First XProfile group name', 'buddypress' ) );
211
+ }
212
+
213
+ if ( !$fullname_field_name = bp_get_option( 'bp-xprofile-fullname-field-name' ) ) {
214
+ bp_update_option( 'bp-xprofile-fullname-field-name', _x( 'Name', 'XProfile fullname field name', 'buddypress' ) );
215
+ }
216
 
217
  $sql[] = "CREATE TABLE {$bp_prefix}bp_xprofile_groups (
218
  id bigint(20) unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
bp-core/bp-core-avatars.php CHANGED
@@ -662,6 +662,11 @@ function bp_core_avatar_upload_path() {
662
  if ( defined( 'BP_AVATAR_UPLOAD_PATH' ) ) {
663
  $basedir = BP_AVATAR_UPLOAD_PATH;
664
  } else {
 
 
 
 
 
665
  // Get upload directory information from current site
666
  $upload_dir = wp_upload_dir();
667
 
@@ -671,11 +676,10 @@ function bp_core_avatar_upload_path() {
671
 
672
  } else {
673
  $basedir = $upload_dir['basedir'];
674
-
675
- // If multisite, and current blog does not match root blog, make adjustments
676
- if ( is_multisite() && bp_get_root_blog_id() != get_current_blog_id() )
677
- $basedir = get_blog_option( bp_get_root_blog_id(), 'upload_path' );
678
  }
 
 
 
679
  }
680
 
681
  // Stash in $bp for later use
662
  if ( defined( 'BP_AVATAR_UPLOAD_PATH' ) ) {
663
  $basedir = BP_AVATAR_UPLOAD_PATH;
664
  } else {
665
+ if ( !bp_is_root_blog() ) {
666
+ // Switch dynamically in order to support BP_ENABLE_MULTIBLOG
667
+ switch_to_blog( bp_get_root_blog_id() );
668
+ }
669
+
670
  // Get upload directory information from current site
671
  $upload_dir = wp_upload_dir();
672
 
676
 
677
  } else {
678
  $basedir = $upload_dir['basedir'];
 
 
 
 
679
  }
680
+
681
+ // Will bail if not switched
682
+ restore_current_blog();
683
  }
684
 
685
  // Stash in $bp for later use
bp-core/bp-core-filters.php CHANGED
@@ -2,6 +2,13 @@
2
  // Exit if accessed directly
3
  if ( !defined( 'ABSPATH' ) ) exit;
4
 
 
 
 
 
 
 
 
5
  /**
6
  * bp_core_exclude_pages()
7
  *
2
  // Exit if accessed directly
3
  if ( !defined( 'ABSPATH' ) ) exit;
4
 
5
+ // Add some filters to feedback messages
6
+ add_filter( 'bp_core_render_message_content', 'wptexturize' );
7
+ add_filter( 'bp_core_render_message_content', 'convert_smilies' );
8
+ add_filter( 'bp_core_render_message_content', 'convert_chars' );
9
+ add_filter( 'bp_core_render_message_content', 'wpautop' );
10
+ add_filter( 'bp_core_render_message_content', 'shortcode_unautop' );
11
+
12
  /**
13
  * bp_core_exclude_pages()
14
  *
bp-core/bp-core-functions.php CHANGED
@@ -552,11 +552,14 @@ add_action( 'bp_actions', 'bp_core_setup_message', 5 );
552
  function bp_core_render_message() {
553
  global $bp;
554
 
555
- if ( isset( $bp->template_message ) && $bp->template_message ) :
556
- $type = ( 'success' == $bp->template_message_type ) ? 'updated' : 'error'; ?>
 
557
 
558
  <div id="message" class="<?php echo $type; ?>">
559
- <p><?php echo stripslashes( esc_attr( $bp->template_message ) ); ?></p>
 
 
560
  </div>
561
 
562
  <?php
552
  function bp_core_render_message() {
553
  global $bp;
554
 
555
+ if ( !empty( $bp->template_message ) ) :
556
+ $type = ( 'success' == $bp->template_message_type ) ? 'updated' : 'error';
557
+ $content = apply_filters( 'bp_core_render_message_content', $bp->template_message, $type ); ?>
558
 
559
  <div id="message" class="<?php echo $type; ?>">
560
+
561
+ <?php echo $content; ?>
562
+
563
  </div>
564
 
565
  <?php
bp-core/css/buddybar.dev.css CHANGED
@@ -198,4 +198,8 @@ body#bp-default #admin-bar-logo {
198
  -moz-border-radius: 3px;
199
  -webkit-border-radius: 3px;
200
  border-radius: 3px;
 
 
 
 
201
  }
198
  -moz-border-radius: 3px;
199
  -webkit-border-radius: 3px;
200
  border-radius: 3px;
201
+ }
202
+ #wp-admin-bar-user-info img.avatar {
203
+ height: 64px;
204
+ width: 64px;
205
  }
bp-core/deprecated/1.5.php CHANGED
@@ -321,8 +321,9 @@ function groups_at_message_notification( $content, $poster_user_id, $group_id, $
321
  if ( 'no' != bp_get_user_meta( $receiver_user_id, 'notification_activity_new_mention', true ) ) {
322
  $poster_name = bp_core_get_user_displayname( $poster_user_id );
323
 
324
- $message_link = bp_activity_get_permalink( $activity_id );
325
- $settings_link = bp_core_get_user_domain( $receiver_user_id ) . bp_get_settings_slug() . '/notifications/';
 
326
 
327
  $poster_name = stripslashes( $poster_name );
328
  $content = bp_groups_filter_kses( stripslashes( $content ) );
321
  if ( 'no' != bp_get_user_meta( $receiver_user_id, 'notification_activity_new_mention', true ) ) {
322
  $poster_name = bp_core_get_user_displayname( $poster_user_id );
323
 
324
+ $message_link = bp_activity_get_permalink( $activity_id );
325
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
326
+ $settings_link = bp_core_get_user_domain( $receiver_user_id ) . $settings_slug . '/notifications/';
327
 
328
  $poster_name = stripslashes( $poster_name );
329
  $content = bp_groups_filter_kses( stripslashes( $content ) );
bp-forums/bp-forums-functions.php CHANGED
@@ -542,8 +542,8 @@ function bp_forums_get_post_extras( $posts ) {
542
  foreach ( (array)$poster_details as $poster ) {
543
  if ( $poster->user_id == $posts[$i]->poster_id ) {
544
  $posts[$i]->poster_email = $poster->user_email;
545
- $posts[$i]->poster_login = $poster->user_nicename;
546
- $posts[$i]->poster_nicename = $poster->user_login;
547
  $posts[$i]->poster_name = $poster->display_name;
548
  }
549
  }
542
  foreach ( (array)$poster_details as $poster ) {
543
  if ( $poster->user_id == $posts[$i]->poster_id ) {
544
  $posts[$i]->poster_email = $poster->user_email;
545
+ $posts[$i]->poster_login = $poster->user_login;
546
+ $posts[$i]->poster_nicename = $poster->user_nicename;
547
  $posts[$i]->poster_name = $poster->display_name;
548
  }
549
  }
bp-friends/bp-friends-notifications.php CHANGED
@@ -14,9 +14,9 @@ function friends_notification_new_request( $friendship_id, $initiator_id, $frien
14
  $initiator_ud = get_userdata( $initiator_id );
15
 
16
  $all_requests_link = bp_core_get_user_domain( $friend_id ) . bp_get_friends_slug() . '/requests/';
17
- $settings_link = bp_core_get_user_domain( $friend_id ) . bp_get_settings_slug() . '/notifications';
18
-
19
- $initiator_link = bp_core_get_user_domain( $initiator_id );
20
 
21
  // Set up and send the message
22
  $to = $ud->user_email;
@@ -57,8 +57,9 @@ function friends_notification_accepted_request( $friendship_id, $initiator_id, $
57
 
58
  $ud = get_userdata( $initiator_id );
59
 
60
- $friend_link = bp_core_get_user_domain( $friend_id );
61
- $settings_link = bp_core_get_user_domain( $initiator_id ) . bp_get_settings_slug() . '/notifications';
 
62
 
63
  // Set up and send the message
64
  $to = $ud->user_email;
14
  $initiator_ud = get_userdata( $initiator_id );
15
 
16
  $all_requests_link = bp_core_get_user_domain( $friend_id ) . bp_get_friends_slug() . '/requests/';
17
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
18
+ $settings_link = bp_core_get_user_domain( $friend_id ) . $settings_slug . '/notifications';
19
+ $initiator_link = bp_core_get_user_domain( $initiator_id );
20
 
21
  // Set up and send the message
22
  $to = $ud->user_email;
57
 
58
  $ud = get_userdata( $initiator_id );
59
 
60
+ $friend_link = bp_core_get_user_domain( $friend_id );
61
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
62
+ $settings_link = bp_core_get_user_domain( $initiator_id ) . $settings_slug . '/notifications';
63
 
64
  // Set up and send the message
65
  $to = $ud->user_email;
bp-groups/bp-groups-notifications.php CHANGED
@@ -18,8 +18,9 @@ function groups_notification_group_updated( $group_id ) {
18
  // Set up and send the message
19
  $to = $ud->user_email;
20
 
21
- $group_link = site_url( bp_get_groups_root_slug(). '/' . $group->slug );
22
- $settings_link = bp_core_get_user_domain( $user_id ) . bp_get_settings_slug() . '/notifications/';
 
23
 
24
  $message = sprintf( __(
25
  'Group details for the group "%1$s" were updated:
@@ -59,8 +60,9 @@ function groups_notification_new_membership_request( $requesting_user_id, $admin
59
  $requesting_ud = bp_core_get_core_userdata($requesting_user_id);
60
 
61
  $group_requests = bp_get_group_permalink( $group ) . 'admin/membership-requests';
62
- $profile_link = bp_core_get_user_domain( $requesting_user_id );
63
- $settings_link = bp_core_get_user_domain( $requesting_user_id ) . bp_get_settings_slug() . '/notifications/';
 
64
 
65
  // Set up and send the message
66
  $to = $ud->user_email;
@@ -108,8 +110,9 @@ function groups_notification_membership_request_completed( $requesting_user_id,
108
 
109
  $ud = bp_core_get_core_userdata($requesting_user_id);
110
 
111
- $group_link = bp_get_group_permalink( $group );
112
- $settings_link = bp_core_get_user_domain( $requesting_user_id ) . bp_get_settings_slug() . '/notifications/';
 
113
 
114
  // Set up and send the message
115
  $to = $ud->user_email;
@@ -165,11 +168,11 @@ function groups_notification_promoted_member( $user_id, $group_id ) {
165
  if ( 'no' == bp_get_user_meta( $user_id, 'notification_groups_admin_promotion', true ) )
166
  return false;
167
 
168
- $group = new BP_Groups_Group( $group_id );
169
- $ud = bp_core_get_core_userdata($user_id);
170
-
171
- $group_link = bp_get_group_permalink( $group );
172
- $settings_link = bp_core_get_user_domain( $user_id ) . bp_get_settings_slug() . '/notifications/';
173
 
174
  // Set up and send the message
175
  $to = $ud->user_email;
18
  // Set up and send the message
19
  $to = $ud->user_email;
20
 
21
+ $group_link = site_url( bp_get_groups_root_slug(). '/' . $group->slug );
22
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
23
+ $settings_link = bp_core_get_user_domain( $user_id ) . $settings_slug . '/notifications/';
24
 
25
  $message = sprintf( __(
26
  'Group details for the group "%1$s" were updated:
60
  $requesting_ud = bp_core_get_core_userdata($requesting_user_id);
61
 
62
  $group_requests = bp_get_group_permalink( $group ) . 'admin/membership-requests';
63
+ $profile_link = bp_core_get_user_domain( $requesting_user_id );
64
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
65
+ $settings_link = bp_core_get_user_domain( $requesting_user_id ) . $settings_slug . '/notifications/';
66
 
67
  // Set up and send the message
68
  $to = $ud->user_email;
110
 
111
  $ud = bp_core_get_core_userdata($requesting_user_id);
112
 
113
+ $group_link = bp_get_group_permalink( $group );
114
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
115
+ $settings_link = bp_core_get_user_domain( $requesting_user_id ) . $settings_slug . '/notifications/';
116
 
117
  // Set up and send the message
118
  $to = $ud->user_email;
168
  if ( 'no' == bp_get_user_meta( $user_id, 'notification_groups_admin_promotion', true ) )
169
  return false;
170
 
171
+ $group = new BP_Groups_Group( $group_id );
172
+ $ud = bp_core_get_core_userdata($user_id);
173
+ $group_link = bp_get_group_permalink( $group );
174
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
175
+ $settings_link = bp_core_get_user_domain( $user_id ) . $settings_slug . '/notifications/';
176
 
177
  // Set up and send the message
178
  $to = $ud->user_email;
bp-languages/buddypress.pot CHANGED
@@ -4,7 +4,7 @@ msgid ""
4
  msgstr ""
5
  "Project-Id-Version: BuddyPress \n"
6
  "Report-Msgid-Bugs-To: http://wppolyglots.wordpress.com\n"
7
- "POT-Creation-Date: 2012-02-10 18:36:41+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -21,7 +21,7 @@ msgid "There was an error when deleting that activity"
21
  msgstr ""
22
 
23
  #: bp-activity/bp-activity-actions.php:206
24
- #: bp-themes/bp-default/_inc/ajax.php:160
25
  msgid "Please enter some content to post."
26
  msgstr ""
27
 
@@ -34,7 +34,7 @@ msgid "There was an error when posting your update, please try again."
34
  msgstr ""
35
 
36
  #: bp-activity/bp-activity-actions.php:268
37
- #: bp-themes/bp-default/_inc/ajax.php:202
38
  msgid "Please do not leave the comment area blank."
39
  msgstr ""
40
 
@@ -43,8 +43,8 @@ msgid "Reply Posted!"
43
  msgstr ""
44
 
45
  #: bp-activity/bp-activity-actions.php:281
46
- #: bp-themes/bp-default/_inc/ajax.php:207
47
- #: bp-themes/bp-default/_inc/ajax.php:218
48
  msgid "There was an error posting that reply, please try again."
49
  msgstr ""
50
 
@@ -157,11 +157,11 @@ msgstr ""
157
  msgid "My Activity"
158
  msgstr ""
159
 
160
- #: bp-activity/bp-activity-notifications.php:66
161
  msgid "%s mentioned you in an update"
162
  msgstr ""
163
 
164
- #: bp-activity/bp-activity-notifications.php:69 bp-core/deprecated/1.5.php:336
165
  msgid ""
166
  "%1$s mentioned you in the group \"%2$s\":\n"
167
  "\n"
@@ -172,7 +172,7 @@ msgid ""
172
  "---------------------\n"
173
  msgstr ""
174
 
175
- #: bp-activity/bp-activity-notifications.php:79
176
  msgid ""
177
  "%1$s mentioned you in an update:\n"
178
  "\n"
@@ -183,25 +183,25 @@ msgid ""
183
  "---------------------\n"
184
  msgstr ""
185
 
186
- #: bp-activity/bp-activity-notifications.php:90
187
- #: bp-activity/bp-activity-notifications.php:164
188
- #: bp-activity/bp-activity-notifications.php:209 bp-core/deprecated/1.5.php:346
189
  #: bp-friends/bp-friends-notifications.php:36
190
- #: bp-friends/bp-friends-notifications.php:76
191
- #: bp-groups/bp-groups-notifications.php:32
192
- #: bp-groups/bp-groups-notifications.php:83
193
- #: bp-groups/bp-groups-notifications.php:139
194
- #: bp-groups/bp-groups-notifications.php:187
195
- #: bp-groups/bp-groups-notifications.php:241
196
- #: bp-messages/bp-messages-notifications.php:44
197
  msgid "To disable these notifications please log in and go to: %s"
198
  msgstr ""
199
 
200
- #: bp-activity/bp-activity-notifications.php:152
201
  msgid "%s replied to one of your updates"
202
  msgstr ""
203
 
204
- #: bp-activity/bp-activity-notifications.php:154
205
  msgid ""
206
  "%1$s replied to one of your updates:\n"
207
  "\n"
@@ -212,11 +212,11 @@ msgid ""
212
  "---------------------\n"
213
  msgstr ""
214
 
215
- #: bp-activity/bp-activity-notifications.php:194
216
  msgid "%s replied to one of your comments"
217
  msgstr ""
218
 
219
- #: bp-activity/bp-activity-notifications.php:199
220
  msgid ""
221
  "%1$s replied to one of your comments:\n"
222
  "\n"
@@ -583,7 +583,7 @@ msgstr ""
583
  msgid "<a href=\"%1$s\">%2$s</a> is your new site. <a href=\"%3$s\">Login</a> as \"%4$s\" using your existing password."
584
  msgstr ""
585
 
586
- #: bp-blogs/bp-blogs-template.php:587 bp-core/bp-core-filters.php:320
587
  #: bp-themes/bp-default/blogs/create.php:21
588
  #: bp-themes/bp-default/blogs/index.php:23
589
  msgid "Create a Site"
@@ -601,7 +601,7 @@ msgstr ""
601
  msgid "%s's Recent Comments"
602
  msgstr ""
603
 
604
- #: bp-blogs/bp-blogs-template.php:617 bp-core/deprecated/1.5.php:396
605
  #: bp-forums/bp-forums-template.php:1313 bp-groups/bp-groups-template.php:2261
606
  #: bp-members/bp-members-template.php:674 bp-themes/bp-default/header.php:35
607
  #: bp-themes/bp-default/searchform.php:5
@@ -825,12 +825,12 @@ msgstr ""
825
  msgid "Associate WordPress Pages with the following BuddyPress Registration pages."
826
  msgstr ""
827
 
828
- #: bp-core/admin/bp-core-schema.php:208
829
  msgctxt "First XProfile group name"
830
  msgid "Base"
831
  msgstr ""
832
 
833
- #: bp-core/admin/bp-core-schema.php:209
834
  msgctxt "XProfile fullname field name"
835
  msgid "Name"
836
  msgstr ""
@@ -1158,7 +1158,7 @@ msgid "Installation was successful. The available options have now been updated,
1158
  msgstr ""
1159
 
1160
  #: bp-core/admin/bp-core-update.php:1234 bp-core/bp-core-functions.php:252
1161
- #: bp-members/bp-members-signup.php:572
1162
  msgid "BuddyPress"
1163
  msgstr ""
1164
 
@@ -1334,11 +1334,11 @@ msgstr[1] ""
1334
  msgid "Are you sure?"
1335
  msgstr ""
1336
 
1337
- #: bp-core/bp-core-filters.php:163 bp-core/bp-core-filters.php:187
1338
  msgid "[User Set]"
1339
  msgstr ""
1340
 
1341
- #: bp-core/bp-core-filters.php:206
1342
  msgid ""
1343
  "Thanks for registering! To complete the activation of your account and blog, please click the following link:\n"
1344
  "\n"
@@ -1351,11 +1351,11 @@ msgid ""
1351
  "%2$s"
1352
  msgstr ""
1353
 
1354
- #: bp-core/bp-core-filters.php:207
1355
  msgid "Activate %s"
1356
  msgstr ""
1357
 
1358
- #: bp-core/bp-core-filters.php:239 bp-members/bp-members-signup.php:574
1359
  msgid ""
1360
  "Thanks for registering! To complete the activation of your account please click the following link:\n"
1361
  "\n"
@@ -1363,39 +1363,39 @@ msgid ""
1363
  "\n"
1364
  msgstr ""
1365
 
1366
- #: bp-core/bp-core-filters.php:240 bp-members/bp-members-signup.php:575
1367
  msgid "Activate Your Account"
1368
  msgstr ""
1369
 
1370
  #. translators: "displayed user's name | canonicalised component name"
1371
  #. translators: "group name | group nav section name"
1372
 
1373
- #: bp-core/bp-core-filters.php:286 bp-core/bp-core-filters.php:292
1374
  msgid "%1$s | %2$s"
1375
  msgstr ""
1376
 
1377
  #. translators: "component item name | component nav section name | root
1378
  #. component name"
1379
 
1380
- #: bp-core/bp-core-filters.php:297
1381
  msgid "%1$s | %2$s | %3$s"
1382
  msgstr ""
1383
 
1384
- #: bp-core/bp-core-filters.php:302 bp-core/bp-core-filters.php:304
1385
  msgid "%s Directory"
1386
  msgstr ""
1387
 
1388
- #: bp-core/bp-core-filters.php:308
1389
  #: bp-themes/bp-default/registration/register.php:23
1390
  msgid "Create an Account"
1391
  msgstr ""
1392
 
1393
- #: bp-core/bp-core-filters.php:312
1394
  #: bp-themes/bp-default/registration/activate.php:24
1395
  msgid "Activate your Account"
1396
  msgstr ""
1397
 
1398
- #: bp-core/bp-core-filters.php:316 bp-themes/bp-default/groups/create.php:18
1399
  #: bp-themes/bp-default/groups/index.php:23
1400
  msgid "Create a Group"
1401
  msgstr ""
@@ -1416,80 +1416,80 @@ msgstr ""
1416
  msgid "Each BuddyPress Component needs its own WordPress page. The following WordPress Pages have more than one component associated with them: %2$s. <a href=\"%1$s\" class=\"button-secondary\">Repair</a>"
1417
  msgstr ""
1418
 
1419
- #: bp-core/bp-core-functions.php:601
1420
  msgid "sometime"
1421
  msgstr ""
1422
 
1423
- #: bp-core/bp-core-functions.php:602
1424
  msgid "right now"
1425
  msgstr ""
1426
 
1427
- #: bp-core/bp-core-functions.php:603
1428
  msgid "%s ago"
1429
  msgstr ""
1430
 
1431
- #: bp-core/bp-core-functions.php:607
1432
  msgid "year"
1433
  msgstr ""
1434
 
1435
- #: bp-core/bp-core-functions.php:607
1436
  msgid "years"
1437
  msgstr ""
1438
 
1439
- #: bp-core/bp-core-functions.php:608
1440
  msgid "month"
1441
  msgstr ""
1442
 
1443
- #: bp-core/bp-core-functions.php:608
1444
  msgid "months"
1445
  msgstr ""
1446
 
1447
- #: bp-core/bp-core-functions.php:609
1448
  msgid "week"
1449
  msgstr ""
1450
 
1451
- #: bp-core/bp-core-functions.php:609
1452
  msgid "weeks"
1453
  msgstr ""
1454
 
1455
- #: bp-core/bp-core-functions.php:610
1456
  msgid "day"
1457
  msgstr ""
1458
 
1459
- #: bp-core/bp-core-functions.php:610
1460
  msgid "days"
1461
  msgstr ""
1462
 
1463
- #: bp-core/bp-core-functions.php:611
1464
  msgid "hour"
1465
  msgstr ""
1466
 
1467
- #: bp-core/bp-core-functions.php:611
1468
  msgid "hours"
1469
  msgstr ""
1470
 
1471
- #: bp-core/bp-core-functions.php:612
1472
  msgid "minute"
1473
  msgstr ""
1474
 
1475
- #: bp-core/bp-core-functions.php:612
1476
  msgid "minutes"
1477
  msgstr ""
1478
 
1479
- #: bp-core/bp-core-functions.php:613
1480
  msgid "second"
1481
  msgstr ""
1482
 
1483
- #: bp-core/bp-core-functions.php:613
1484
  msgid "seconds"
1485
  msgstr ""
1486
 
1487
- #: bp-core/bp-core-functions.php:670
1488
  msgctxt "Separator in time since"
1489
  msgid ","
1490
  msgstr ""
1491
 
1492
- #: bp-core/bp-core-functions.php:733
1493
  msgid "not recently active"
1494
  msgstr ""
1495
 
@@ -1649,7 +1649,7 @@ msgstr ""
1649
  msgid "Yahoo Messenger"
1650
  msgstr ""
1651
 
1652
- #: bp-core/deprecated/1.5.php:334
1653
  msgid "%1$s mentioned you in the group \"%2$s\""
1654
  msgstr ""
1655
 
@@ -1901,7 +1901,7 @@ msgstr ""
1901
  msgid "Viewing post %1$s to %2$s (%3$s total posts)"
1902
  msgstr ""
1903
 
1904
- #: bp-friends/bp-friends-actions.php:29 bp-themes/bp-default/_inc/ajax.php:429
1905
  msgid "Friendship could not be requested."
1906
  msgstr ""
1907
 
@@ -1917,7 +1917,7 @@ msgstr ""
1917
  msgid "You already have a pending friendship request with this user"
1918
  msgstr ""
1919
 
1920
- #: bp-friends/bp-friends-actions.php:64 bp-themes/bp-default/_inc/ajax.php:419
1921
  msgid "Friendship could not be canceled."
1922
  msgstr ""
1923
 
@@ -1942,7 +1942,7 @@ msgid "%d friends accepted your friendship requests"
1942
  msgstr ""
1943
 
1944
  #: bp-friends/bp-friends-activity.php:79
1945
- #: bp-friends/bp-friends-notifications.php:66
1946
  msgid "%s accepted your friendship request"
1947
  msgstr ""
1948
 
@@ -2005,7 +2005,7 @@ msgid ""
2005
  "---------------------\n"
2006
  msgstr ""
2007
 
2008
- #: bp-friends/bp-friends-notifications.php:68
2009
  msgid ""
2010
  "%1$s accepted your friend request.\n"
2011
  "\n"
@@ -2086,7 +2086,7 @@ msgstr ""
2086
 
2087
  #: bp-friends/bp-friends-template.php:323
2088
  #: bp-friends/bp-friends-template.php:324
2089
- #: bp-themes/bp-default/_inc/ajax.php:431
2090
  msgid "Friendship Requested"
2091
  msgstr ""
2092
 
@@ -2097,7 +2097,7 @@ msgstr ""
2097
 
2098
  #: bp-friends/bp-friends-template.php:355
2099
  #: bp-friends/bp-friends-template.php:356
2100
- #: bp-themes/bp-default/_inc/ajax.php:421
2101
  msgid "Add Friend"
2102
  msgstr ""
2103
 
@@ -2340,7 +2340,7 @@ msgid "Admin"
2340
  msgstr ""
2341
 
2342
  #: bp-groups/bp-groups-loader.php:314 bp-groups/bp-groups-template.php:1580
2343
- #: bp-groups/bp-groups-template.php:1581 bp-themes/bp-default/_inc/ajax.php:506
2344
  msgid "Request Membership"
2345
  msgstr ""
2346
 
@@ -2373,7 +2373,7 @@ msgstr ""
2373
  msgid "Group Details Updated"
2374
  msgstr ""
2375
 
2376
- #: bp-groups/bp-groups-notifications.php:24
2377
  msgid ""
2378
  "Group details for the group \"%1$s\" were updated:\n"
2379
  "\n"
@@ -2382,11 +2382,11 @@ msgid ""
2382
  "---------------------\n"
2383
  msgstr ""
2384
 
2385
- #: bp-groups/bp-groups-notifications.php:68
2386
  msgid "Membership request for group: %s"
2387
  msgstr ""
2388
 
2389
- #: bp-groups/bp-groups-notifications.php:70
2390
  msgid ""
2391
  "%1$s wants to join the group \"%2$s\".\n"
2392
  "\n"
@@ -2400,11 +2400,11 @@ msgid ""
2400
  "---------------------\n"
2401
  msgstr ""
2402
 
2403
- #: bp-groups/bp-groups-notifications.php:119
2404
  msgid "Membership request for group \"%s\" accepted"
2405
  msgstr ""
2406
 
2407
- #: bp-groups/bp-groups-notifications.php:120
2408
  msgid ""
2409
  "Your membership request for the group \"%1$s\" has been accepted.\n"
2410
  "\n"
@@ -2413,11 +2413,11 @@ msgid ""
2413
  "---------------------\n"
2414
  msgstr ""
2415
 
2416
- #: bp-groups/bp-groups-notifications.php:129
2417
  msgid "Membership request for group \"%s\" rejected"
2418
  msgstr ""
2419
 
2420
- #: bp-groups/bp-groups-notifications.php:130
2421
  msgid ""
2422
  "Your membership request for the group \"%1$s\" has been rejected.\n"
2423
  "\n"
@@ -2426,19 +2426,19 @@ msgid ""
2426
  "---------------------\n"
2427
  msgstr ""
2428
 
2429
- #: bp-groups/bp-groups-notifications.php:155
2430
  msgid "an administrator"
2431
  msgstr ""
2432
 
2433
- #: bp-groups/bp-groups-notifications.php:158
2434
  msgid "a moderator"
2435
  msgstr ""
2436
 
2437
- #: bp-groups/bp-groups-notifications.php:177
2438
  msgid "You have been promoted in the group: \"%s\""
2439
  msgstr ""
2440
 
2441
- #: bp-groups/bp-groups-notifications.php:179
2442
  msgid ""
2443
  "You have been promoted to %1$s for the group: \"%2$s\".\n"
2444
  "\n"
@@ -2447,11 +2447,11 @@ msgid ""
2447
  "---------------------\n"
2448
  msgstr ""
2449
 
2450
- #: bp-groups/bp-groups-notifications.php:227
2451
  msgid "You have an invitation to the group: \"%s\""
2452
  msgstr ""
2453
 
2454
- #: bp-groups/bp-groups-notifications.php:229
2455
  msgid ""
2456
  "One of your friends %1$s has invited you to the group: \"%2$s\".\n"
2457
  "\n"
@@ -2783,12 +2783,12 @@ msgid "New Topic"
2783
  msgstr ""
2784
 
2785
  #: bp-groups/bp-groups-template.php:1539 bp-groups/bp-groups-template.php:1540
2786
- #: bp-themes/bp-default/_inc/ajax.php:482
2787
  msgid "Leave Group"
2788
  msgstr ""
2789
 
2790
  #: bp-groups/bp-groups-template.php:1562 bp-groups/bp-groups-template.php:1563
2791
- #: bp-themes/bp-default/_inc/ajax.php:504
2792
  msgid "Join Group"
2793
  msgstr ""
2794
 
@@ -2872,19 +2872,19 @@ msgstr ""
2872
  msgid "No groups matched the current filter."
2873
  msgstr ""
2874
 
2875
- #: bp-members/bp-members-actions.php:87
2876
  msgid "User marked as spammer. Spam users are visible only to site admins."
2877
  msgstr ""
2878
 
2879
- #: bp-members/bp-members-actions.php:89
2880
  msgid "User removed as spammer."
2881
  msgstr ""
2882
 
2883
- #: bp-members/bp-members-actions.php:136
2884
  msgid "%s has been deleted from the system."
2885
  msgstr ""
2886
 
2887
- #: bp-members/bp-members-actions.php:138
2888
  msgid "There was an error deleting %s from the system. Please try again."
2889
  msgstr ""
2890
 
@@ -2965,7 +2965,7 @@ msgstr ""
2965
  msgid "Delete %s's Account"
2966
  msgstr ""
2967
 
2968
- #: bp-members/bp-members-functions.php:671
2969
  msgid "<strong>ERROR</strong>: Your account has been marked as a spammer."
2970
  msgstr ""
2971
 
@@ -2989,59 +2989,59 @@ msgstr ""
2989
  msgid "This is a required field"
2990
  msgstr ""
2991
 
2992
- #: bp-members/bp-members-signup.php:199
2993
  msgid "Your account is now active!"
2994
  msgstr ""
2995
 
2996
- #: bp-members/bp-members-signup.php:308
2997
  msgid "Please enter a username"
2998
  msgstr ""
2999
 
3000
- #: bp-members/bp-members-signup.php:319
3001
  msgid "Only lowercase letters and numbers allowed"
3002
  msgstr ""
3003
 
3004
- #: bp-members/bp-members-signup.php:322
3005
  msgid "Username must be at least 4 characters"
3006
  msgstr ""
3007
 
3008
- #: bp-members/bp-members-signup.php:325
3009
  msgid "Sorry, usernames may not contain the character \"_\"!"
3010
  msgstr ""
3011
 
3012
- #: bp-members/bp-members-signup.php:332
3013
  msgid "Sorry, usernames must have letters too!"
3014
  msgstr ""
3015
 
3016
- #: bp-members/bp-members-signup.php:335
3017
  msgid "Please check your email address."
3018
  msgstr ""
3019
 
3020
- #: bp-members/bp-members-signup.php:338 bp-members/bp-members-signup.php:346
3021
  msgid "Sorry, that email address is not allowed!"
3022
  msgstr ""
3023
 
3024
- #: bp-members/bp-members-signup.php:351
3025
  msgid "Sorry, that username already exists!"
3026
  msgstr ""
3027
 
3028
- #: bp-members/bp-members-signup.php:355
3029
  msgid "Sorry, that email address is already used!"
3030
  msgstr ""
3031
 
3032
- #: bp-members/bp-members-signup.php:394
3033
  msgid "<strong>ERROR</strong>: Couldn&#8217;t register you... please contact the <a href=\"mailto:%s\">webmaster</a> !"
3034
  msgstr ""
3035
 
3036
- #: bp-members/bp-members-signup.php:479 bp-members/bp-members-signup.php:483
3037
  msgid "Invalid activation key"
3038
  msgstr ""
3039
 
3040
- #: bp-members/bp-members-signup.php:523
3041
  msgid "%s became a registered member"
3042
  msgstr ""
3043
 
3044
- #: bp-members/bp-members-signup.php:597
3045
  msgid "<strong>ERROR</strong>: Your account has not been activated. Check your email for the activation link."
3046
  msgstr ""
3047
 
@@ -3121,7 +3121,7 @@ msgid "There was an error deleting messages."
3121
  msgstr ""
3122
 
3123
  #: bp-messages/bp-messages-actions.php:104
3124
- #: bp-themes/bp-default/_inc/ajax.php:609
3125
  msgid "Messages deleted."
3126
  msgstr ""
3127
 
@@ -3194,11 +3194,11 @@ msgstr ""
3194
  msgid "My Messages"
3195
  msgstr ""
3196
 
3197
- #: bp-messages/bp-messages-notifications.php:30
3198
  msgid "New message from %s"
3199
  msgstr ""
3200
 
3201
- #: bp-messages/bp-messages-notifications.php:32
3202
  msgid ""
3203
  "%s sent you a new message:\n"
3204
  "\n"
@@ -3328,26 +3328,53 @@ msgid "%d Recipients"
3328
  msgstr ""
3329
 
3330
  #: bp-messages/bp-messages-template.php:857
3331
- #: bp-themes/bp-default/_inc/ajax.php:543
3332
  msgid "Sent %s"
3333
  msgstr ""
3334
 
3335
- #: bp-settings/bp-settings-actions.php:101
3336
- #: bp-settings/bp-settings-actions.php:142
3337
- #: bp-xprofile/bp-xprofile-screens.php:113
3338
- msgid "Changes saved."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3339
  msgstr ""
3340
 
3341
- #: bp-settings/bp-settings-actions.php:104
3342
- msgid "Your new passwords did not match."
3343
  msgstr ""
3344
 
3345
- #: bp-settings/bp-settings-actions.php:107
3346
- msgid "Your existing password is incorrect."
3347
  msgstr ""
3348
 
3349
- #: bp-settings/bp-settings-actions.php:110
3350
- msgid "Sorry, that email address is already used or is invalid."
 
 
 
 
 
 
 
 
 
3351
  msgstr ""
3352
 
3353
  #: bp-settings/bp-settings-loader.php:92 bp-settings/bp-settings-loader.php:158
@@ -3362,78 +3389,78 @@ msgstr ""
3362
  msgid "We're sorry, but we can't find the page that you're looking for. Perhaps searching will help."
3363
  msgstr ""
3364
 
3365
- #: bp-themes/bp-default/_inc/ajax.php:177
3366
  msgid "There was a problem posting your update, please try again."
3367
  msgstr ""
3368
 
3369
- #: bp-themes/bp-default/_inc/ajax.php:275
3370
- #: bp-themes/bp-default/_inc/ajax.php:310
3371
  msgid "There was a problem when deleting. Please try again."
3372
  msgstr ""
3373
 
3374
- #: bp-themes/bp-default/_inc/ajax.php:325
3375
  #: bp-themes/bp-default/activity/entry.php:72
3376
  #: bp-themes/bp-default/functions.php:158
3377
  msgid "Remove Favorite"
3378
  msgstr ""
3379
 
3380
- #: bp-themes/bp-default/_inc/ajax.php:334
3381
  #: bp-themes/bp-default/activity/entry.php:68
3382
  #: bp-themes/bp-default/functions.php:157
3383
  msgid "Favorite"
3384
  msgstr ""
3385
 
3386
- #: bp-themes/bp-default/_inc/ajax.php:393
3387
  #: bp-themes/bp-default/groups/create.php:234
3388
  #: bp-themes/bp-default/groups/single/send-invites.php:42
3389
  msgid "Remove Invite"
3390
  msgstr ""
3391
 
3392
- #: bp-themes/bp-default/_inc/ajax.php:434
3393
  msgid "Request Pending"
3394
  msgstr ""
3395
 
3396
- #: bp-themes/bp-default/_inc/ajax.php:446
3397
  msgid "There was a problem accepting that request. Please try again."
3398
  msgstr ""
3399
 
3400
- #: bp-themes/bp-default/_inc/ajax.php:457
3401
  msgid "There was a problem rejecting that request. Please try again."
3402
  msgstr ""
3403
 
3404
- #: bp-themes/bp-default/_inc/ajax.php:480
3405
  msgid "Error joining group"
3406
  msgstr ""
3407
 
3408
- #: bp-themes/bp-default/_inc/ajax.php:490
3409
  msgid "Error requesting membership"
3410
  msgstr ""
3411
 
3412
- #: bp-themes/bp-default/_inc/ajax.php:492
3413
  msgid "Membership Requested"
3414
  msgstr ""
3415
 
3416
- #: bp-themes/bp-default/_inc/ajax.php:501
3417
  msgid "Error leaving group"
3418
  msgstr ""
3419
 
3420
- #: bp-themes/bp-default/_inc/ajax.php:518
3421
  msgid "There was a problem closing the notice."
3422
  msgstr ""
3423
 
3424
- #: bp-themes/bp-default/_inc/ajax.php:560
3425
  msgid "There was a problem sending that reply. Please try again."
3426
  msgstr ""
3427
 
3428
- #: bp-themes/bp-default/_inc/ajax.php:570
3429
  msgid "There was a problem marking messages as unread."
3430
  msgstr ""
3431
 
3432
- #: bp-themes/bp-default/_inc/ajax.php:586
3433
  msgid "There was a problem marking messages as read."
3434
  msgstr ""
3435
 
3436
- #: bp-themes/bp-default/_inc/ajax.php:602
3437
  msgid "There was a problem deleting messages."
3438
  msgstr ""
3439
 
@@ -4145,7 +4172,7 @@ msgstr ""
4145
  #: bp-themes/bp-default/groups/single/forum/edit.php:60
4146
  #: bp-themes/bp-default/groups/single/forum/edit.php:76
4147
  #: bp-themes/bp-default/members/single/profile/edit.php:126
4148
- #: bp-themes/bp-default/members/single/settings/general.php:69
4149
  #: bp-themes/bp-default/members/single/settings/notifications.php:62
4150
  #: bp-xprofile/bp-xprofile-classes.php:274
4151
  msgid "Save Changes"
@@ -4504,31 +4531,31 @@ msgstr ""
4504
  msgid "General Settings"
4505
  msgstr ""
4506
 
4507
- #: bp-themes/bp-default/members/single/settings/general.php:56
4508
  msgid "Current Password <span>(required to update email or change current password)</span>"
4509
  msgstr ""
4510
 
4511
- #: bp-themes/bp-default/members/single/settings/general.php:57
4512
  msgid "Password Lost and Found"
4513
  msgstr ""
4514
 
4515
- #: bp-themes/bp-default/members/single/settings/general.php:57
4516
  msgid "Lost your password?"
4517
  msgstr ""
4518
 
4519
- #: bp-themes/bp-default/members/single/settings/general.php:59
4520
  msgid "Account Email"
4521
  msgstr ""
4522
 
4523
- #: bp-themes/bp-default/members/single/settings/general.php:62
4524
  msgid "Change Password <span>(leave blank for no change)</span>"
4525
  msgstr ""
4526
 
4527
- #: bp-themes/bp-default/members/single/settings/general.php:63
4528
  msgid "New Password"
4529
  msgstr ""
4530
 
4531
- #: bp-themes/bp-default/members/single/settings/general.php:64
4532
  msgid "Repeat New Password"
4533
  msgstr ""
4534
 
4
  msgstr ""
5
  "Project-Id-Version: BuddyPress \n"
6
  "Report-Msgid-Bugs-To: http://wppolyglots.wordpress.com\n"
7
+ "POT-Creation-Date: 2012-03-13 21:36:22+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
21
  msgstr ""
22
 
23
  #: bp-activity/bp-activity-actions.php:206
24
+ #: bp-themes/bp-default/_inc/ajax.php:172
25
  msgid "Please enter some content to post."
26
  msgstr ""
27
 
34
  msgstr ""
35
 
36
  #: bp-activity/bp-activity-actions.php:268
37
+ #: bp-themes/bp-default/_inc/ajax.php:217
38
  msgid "Please do not leave the comment area blank."
39
  msgstr ""
40
 
43
  msgstr ""
44
 
45
  #: bp-activity/bp-activity-actions.php:281
46
+ #: bp-themes/bp-default/_inc/ajax.php:222
47
+ #: bp-themes/bp-default/_inc/ajax.php:233
48
  msgid "There was an error posting that reply, please try again."
49
  msgstr ""
50
 
157
  msgid "My Activity"
158
  msgstr ""
159
 
160
+ #: bp-activity/bp-activity-notifications.php:67
161
  msgid "%s mentioned you in an update"
162
  msgstr ""
163
 
164
+ #: bp-activity/bp-activity-notifications.php:70 bp-core/deprecated/1.5.php:337
165
  msgid ""
166
  "%1$s mentioned you in the group \"%2$s\":\n"
167
  "\n"
172
  "---------------------\n"
173
  msgstr ""
174
 
175
+ #: bp-activity/bp-activity-notifications.php:80
176
  msgid ""
177
  "%1$s mentioned you in an update:\n"
178
  "\n"
183
  "---------------------\n"
184
  msgstr ""
185
 
186
+ #: bp-activity/bp-activity-notifications.php:91
187
+ #: bp-activity/bp-activity-notifications.php:166
188
+ #: bp-activity/bp-activity-notifications.php:212 bp-core/deprecated/1.5.php:347
189
  #: bp-friends/bp-friends-notifications.php:36
190
+ #: bp-friends/bp-friends-notifications.php:77
191
+ #: bp-groups/bp-groups-notifications.php:33
192
+ #: bp-groups/bp-groups-notifications.php:85
193
+ #: bp-groups/bp-groups-notifications.php:142
194
+ #: bp-groups/bp-groups-notifications.php:190
195
+ #: bp-groups/bp-groups-notifications.php:244
196
+ #: bp-messages/bp-messages-notifications.php:45
197
  msgid "To disable these notifications please log in and go to: %s"
198
  msgstr ""
199
 
200
+ #: bp-activity/bp-activity-notifications.php:154
201
  msgid "%s replied to one of your updates"
202
  msgstr ""
203
 
204
+ #: bp-activity/bp-activity-notifications.php:156
205
  msgid ""
206
  "%1$s replied to one of your updates:\n"
207
  "\n"
212
  "---------------------\n"
213
  msgstr ""
214
 
215
+ #: bp-activity/bp-activity-notifications.php:197
216
  msgid "%s replied to one of your comments"
217
  msgstr ""
218
 
219
+ #: bp-activity/bp-activity-notifications.php:202
220
  msgid ""
221
  "%1$s replied to one of your comments:\n"
222
  "\n"
583
  msgid "<a href=\"%1$s\">%2$s</a> is your new site. <a href=\"%3$s\">Login</a> as \"%4$s\" using your existing password."
584
  msgstr ""
585
 
586
+ #: bp-blogs/bp-blogs-template.php:587 bp-core/bp-core-filters.php:327
587
  #: bp-themes/bp-default/blogs/create.php:21
588
  #: bp-themes/bp-default/blogs/index.php:23
589
  msgid "Create a Site"
601
  msgid "%s's Recent Comments"
602
  msgstr ""
603
 
604
+ #: bp-blogs/bp-blogs-template.php:617 bp-core/deprecated/1.5.php:397
605
  #: bp-forums/bp-forums-template.php:1313 bp-groups/bp-groups-template.php:2261
606
  #: bp-members/bp-members-template.php:674 bp-themes/bp-default/header.php:35
607
  #: bp-themes/bp-default/searchform.php:5
825
  msgid "Associate WordPress Pages with the following BuddyPress Registration pages."
826
  msgstr ""
827
 
828
+ #: bp-core/admin/bp-core-schema.php:210
829
  msgctxt "First XProfile group name"
830
  msgid "Base"
831
  msgstr ""
832
 
833
+ #: bp-core/admin/bp-core-schema.php:214
834
  msgctxt "XProfile fullname field name"
835
  msgid "Name"
836
  msgstr ""
1158
  msgstr ""
1159
 
1160
  #: bp-core/admin/bp-core-update.php:1234 bp-core/bp-core-functions.php:252
1161
+ #: bp-members/bp-members-signup.php:583
1162
  msgid "BuddyPress"
1163
  msgstr ""
1164
 
1334
  msgid "Are you sure?"
1335
  msgstr ""
1336
 
1337
+ #: bp-core/bp-core-filters.php:170 bp-core/bp-core-filters.php:194
1338
  msgid "[User Set]"
1339
  msgstr ""
1340
 
1341
+ #: bp-core/bp-core-filters.php:213
1342
  msgid ""
1343
  "Thanks for registering! To complete the activation of your account and blog, please click the following link:\n"
1344
  "\n"
1351
  "%2$s"
1352
  msgstr ""
1353
 
1354
+ #: bp-core/bp-core-filters.php:214
1355
  msgid "Activate %s"
1356
  msgstr ""
1357
 
1358
+ #: bp-core/bp-core-filters.php:246 bp-members/bp-members-signup.php:585
1359
  msgid ""
1360
  "Thanks for registering! To complete the activation of your account please click the following link:\n"
1361
  "\n"
1363
  "\n"
1364
  msgstr ""
1365
 
1366
+ #: bp-core/bp-core-filters.php:247 bp-members/bp-members-signup.php:586
1367
  msgid "Activate Your Account"
1368
  msgstr ""
1369
 
1370
  #. translators: "displayed user's name | canonicalised component name"
1371
  #. translators: "group name | group nav section name"
1372
 
1373
+ #: bp-core/bp-core-filters.php:293 bp-core/bp-core-filters.php:299
1374
  msgid "%1$s | %2$s"
1375
  msgstr ""
1376
 
1377
  #. translators: "component item name | component nav section name | root
1378
  #. component name"
1379
 
1380
+ #: bp-core/bp-core-filters.php:304
1381
  msgid "%1$s | %2$s | %3$s"
1382
  msgstr ""
1383
 
1384
+ #: bp-core/bp-core-filters.php:309 bp-core/bp-core-filters.php:311
1385
  msgid "%s Directory"
1386
  msgstr ""
1387
 
1388
+ #: bp-core/bp-core-filters.php:315
1389
  #: bp-themes/bp-default/registration/register.php:23
1390
  msgid "Create an Account"
1391
  msgstr ""
1392
 
1393
+ #: bp-core/bp-core-filters.php:319
1394
  #: bp-themes/bp-default/registration/activate.php:24
1395
  msgid "Activate your Account"
1396
  msgstr ""
1397
 
1398
+ #: bp-core/bp-core-filters.php:323 bp-themes/bp-default/groups/create.php:18
1399
  #: bp-themes/bp-default/groups/index.php:23
1400
  msgid "Create a Group"
1401
  msgstr ""
1416
  msgid "Each BuddyPress Component needs its own WordPress page. The following WordPress Pages have more than one component associated with them: %2$s. <a href=\"%1$s\" class=\"button-secondary\">Repair</a>"
1417
  msgstr ""
1418
 
1419
+ #: bp-core/bp-core-functions.php:604
1420
  msgid "sometime"
1421
  msgstr ""
1422
 
1423
+ #: bp-core/bp-core-functions.php:605
1424
  msgid "right now"
1425
  msgstr ""
1426
 
1427
+ #: bp-core/bp-core-functions.php:606
1428
  msgid "%s ago"
1429
  msgstr ""
1430
 
1431
+ #: bp-core/bp-core-functions.php:610
1432
  msgid "year"
1433
  msgstr ""
1434
 
1435
+ #: bp-core/bp-core-functions.php:610
1436
  msgid "years"
1437
  msgstr ""
1438
 
1439
+ #: bp-core/bp-core-functions.php:611
1440
  msgid "month"
1441
  msgstr ""
1442
 
1443
+ #: bp-core/bp-core-functions.php:611
1444
  msgid "months"
1445
  msgstr ""
1446
 
1447
+ #: bp-core/bp-core-functions.php:612
1448
  msgid "week"
1449
  msgstr ""
1450
 
1451
+ #: bp-core/bp-core-functions.php:612
1452
  msgid "weeks"
1453
  msgstr ""
1454
 
1455
+ #: bp-core/bp-core-functions.php:613
1456
  msgid "day"
1457
  msgstr ""
1458
 
1459
+ #: bp-core/bp-core-functions.php:613
1460
  msgid "days"
1461
  msgstr ""
1462
 
1463
+ #: bp-core/bp-core-functions.php:614
1464
  msgid "hour"
1465
  msgstr ""
1466
 
1467
+ #: bp-core/bp-core-functions.php:614
1468
  msgid "hours"
1469
  msgstr ""
1470
 
1471
+ #: bp-core/bp-core-functions.php:615
1472
  msgid "minute"
1473
  msgstr ""
1474
 
1475
+ #: bp-core/bp-core-functions.php:615
1476
  msgid "minutes"
1477
  msgstr ""
1478
 
1479
+ #: bp-core/bp-core-functions.php:616
1480
  msgid "second"
1481
  msgstr ""
1482
 
1483
+ #: bp-core/bp-core-functions.php:616
1484
  msgid "seconds"
1485
  msgstr ""
1486
 
1487
+ #: bp-core/bp-core-functions.php:673
1488
  msgctxt "Separator in time since"
1489
  msgid ","
1490
  msgstr ""
1491
 
1492
+ #: bp-core/bp-core-functions.php:736
1493
  msgid "not recently active"
1494
  msgstr ""
1495
 
1649
  msgid "Yahoo Messenger"
1650
  msgstr ""
1651
 
1652
+ #: bp-core/deprecated/1.5.php:335
1653
  msgid "%1$s mentioned you in the group \"%2$s\""
1654
  msgstr ""
1655
 
1901
  msgid "Viewing post %1$s to %2$s (%3$s total posts)"
1902
  msgstr ""
1903
 
1904
+ #: bp-friends/bp-friends-actions.php:29 bp-themes/bp-default/_inc/ajax.php:465
1905
  msgid "Friendship could not be requested."
1906
  msgstr ""
1907
 
1917
  msgid "You already have a pending friendship request with this user"
1918
  msgstr ""
1919
 
1920
+ #: bp-friends/bp-friends-actions.php:64 bp-themes/bp-default/_inc/ajax.php:455
1921
  msgid "Friendship could not be canceled."
1922
  msgstr ""
1923
 
1942
  msgstr ""
1943
 
1944
  #: bp-friends/bp-friends-activity.php:79
1945
+ #: bp-friends/bp-friends-notifications.php:67
1946
  msgid "%s accepted your friendship request"
1947
  msgstr ""
1948
 
2005
  "---------------------\n"
2006
  msgstr ""
2007
 
2008
+ #: bp-friends/bp-friends-notifications.php:69
2009
  msgid ""
2010
  "%1$s accepted your friend request.\n"
2011
  "\n"
2086
 
2087
  #: bp-friends/bp-friends-template.php:323
2088
  #: bp-friends/bp-friends-template.php:324
2089
+ #: bp-themes/bp-default/_inc/ajax.php:467
2090
  msgid "Friendship Requested"
2091
  msgstr ""
2092
 
2097
 
2098
  #: bp-friends/bp-friends-template.php:355
2099
  #: bp-friends/bp-friends-template.php:356
2100
+ #: bp-themes/bp-default/_inc/ajax.php:457
2101
  msgid "Add Friend"
2102
  msgstr ""
2103
 
2340
  msgstr ""
2341
 
2342
  #: bp-groups/bp-groups-loader.php:314 bp-groups/bp-groups-template.php:1580
2343
+ #: bp-groups/bp-groups-template.php:1581 bp-themes/bp-default/_inc/ajax.php:556
2344
  msgid "Request Membership"
2345
  msgstr ""
2346
 
2373
  msgid "Group Details Updated"
2374
  msgstr ""
2375
 
2376
+ #: bp-groups/bp-groups-notifications.php:25
2377
  msgid ""
2378
  "Group details for the group \"%1$s\" were updated:\n"
2379
  "\n"
2382
  "---------------------\n"
2383
  msgstr ""
2384
 
2385
+ #: bp-groups/bp-groups-notifications.php:70
2386
  msgid "Membership request for group: %s"
2387
  msgstr ""
2388
 
2389
+ #: bp-groups/bp-groups-notifications.php:72
2390
  msgid ""
2391
  "%1$s wants to join the group \"%2$s\".\n"
2392
  "\n"
2400
  "---------------------\n"
2401
  msgstr ""
2402
 
2403
+ #: bp-groups/bp-groups-notifications.php:122
2404
  msgid "Membership request for group \"%s\" accepted"
2405
  msgstr ""
2406
 
2407
+ #: bp-groups/bp-groups-notifications.php:123
2408
  msgid ""
2409
  "Your membership request for the group \"%1$s\" has been accepted.\n"
2410
  "\n"
2413
  "---------------------\n"
2414
  msgstr ""
2415
 
2416
+ #: bp-groups/bp-groups-notifications.php:132
2417
  msgid "Membership request for group \"%s\" rejected"
2418
  msgstr ""
2419
 
2420
+ #: bp-groups/bp-groups-notifications.php:133
2421
  msgid ""
2422
  "Your membership request for the group \"%1$s\" has been rejected.\n"
2423
  "\n"
2426
  "---------------------\n"
2427
  msgstr ""
2428
 
2429
+ #: bp-groups/bp-groups-notifications.php:158
2430
  msgid "an administrator"
2431
  msgstr ""
2432
 
2433
+ #: bp-groups/bp-groups-notifications.php:161
2434
  msgid "a moderator"
2435
  msgstr ""
2436
 
2437
+ #: bp-groups/bp-groups-notifications.php:180
2438
  msgid "You have been promoted in the group: \"%s\""
2439
  msgstr ""
2440
 
2441
+ #: bp-groups/bp-groups-notifications.php:182
2442
  msgid ""
2443
  "You have been promoted to %1$s for the group: \"%2$s\".\n"
2444
  "\n"
2447
  "---------------------\n"
2448
  msgstr ""
2449
 
2450
+ #: bp-groups/bp-groups-notifications.php:230
2451
  msgid "You have an invitation to the group: \"%s\""
2452
  msgstr ""
2453
 
2454
+ #: bp-groups/bp-groups-notifications.php:232
2455
  msgid ""
2456
  "One of your friends %1$s has invited you to the group: \"%2$s\".\n"
2457
  "\n"
2783
  msgstr ""
2784
 
2785
  #: bp-groups/bp-groups-template.php:1539 bp-groups/bp-groups-template.php:1540
2786
+ #: bp-themes/bp-default/_inc/ajax.php:532
2787
  msgid "Leave Group"
2788
  msgstr ""
2789
 
2790
  #: bp-groups/bp-groups-template.php:1562 bp-groups/bp-groups-template.php:1563
2791
+ #: bp-themes/bp-default/_inc/ajax.php:554
2792
  msgid "Join Group"
2793
  msgstr ""
2794
 
2872
  msgid "No groups matched the current filter."
2873
  msgstr ""
2874
 
2875
+ #: bp-members/bp-members-actions.php:41
2876
  msgid "User marked as spammer. Spam users are visible only to site admins."
2877
  msgstr ""
2878
 
2879
+ #: bp-members/bp-members-actions.php:43
2880
  msgid "User removed as spammer."
2881
  msgstr ""
2882
 
2883
+ #: bp-members/bp-members-actions.php:76
2884
  msgid "%s has been deleted from the system."
2885
  msgstr ""
2886
 
2887
+ #: bp-members/bp-members-actions.php:78
2888
  msgid "There was an error deleting %s from the system. Please try again."
2889
  msgstr ""
2890
 
2965
  msgid "Delete %s's Account"
2966
  msgstr ""
2967
 
2968
+ #: bp-members/bp-members-functions.php:780
2969
  msgid "<strong>ERROR</strong>: Your account has been marked as a spammer."
2970
  msgstr ""
2971
 
2989
  msgid "This is a required field"
2990
  msgstr ""
2991
 
2992
+ #: bp-members/bp-members-signup.php:207
2993
  msgid "Your account is now active!"
2994
  msgstr ""
2995
 
2996
+ #: bp-members/bp-members-signup.php:319
2997
  msgid "Please enter a username"
2998
  msgstr ""
2999
 
3000
+ #: bp-members/bp-members-signup.php:330
3001
  msgid "Only lowercase letters and numbers allowed"
3002
  msgstr ""
3003
 
3004
+ #: bp-members/bp-members-signup.php:333
3005
  msgid "Username must be at least 4 characters"
3006
  msgstr ""
3007
 
3008
+ #: bp-members/bp-members-signup.php:336
3009
  msgid "Sorry, usernames may not contain the character \"_\"!"
3010
  msgstr ""
3011
 
3012
+ #: bp-members/bp-members-signup.php:343
3013
  msgid "Sorry, usernames must have letters too!"
3014
  msgstr ""
3015
 
3016
+ #: bp-members/bp-members-signup.php:346
3017
  msgid "Please check your email address."
3018
  msgstr ""
3019
 
3020
+ #: bp-members/bp-members-signup.php:349 bp-members/bp-members-signup.php:357
3021
  msgid "Sorry, that email address is not allowed!"
3022
  msgstr ""
3023
 
3024
+ #: bp-members/bp-members-signup.php:362
3025
  msgid "Sorry, that username already exists!"
3026
  msgstr ""
3027
 
3028
+ #: bp-members/bp-members-signup.php:366
3029
  msgid "Sorry, that email address is already used!"
3030
  msgstr ""
3031
 
3032
+ #: bp-members/bp-members-signup.php:405
3033
  msgid "<strong>ERROR</strong>: Couldn&#8217;t register you... please contact the <a href=\"mailto:%s\">webmaster</a> !"
3034
  msgstr ""
3035
 
3036
+ #: bp-members/bp-members-signup.php:490 bp-members/bp-members-signup.php:494
3037
  msgid "Invalid activation key"
3038
  msgstr ""
3039
 
3040
+ #: bp-members/bp-members-signup.php:534
3041
  msgid "%s became a registered member"
3042
  msgstr ""
3043
 
3044
+ #: bp-members/bp-members-signup.php:608
3045
  msgid "<strong>ERROR</strong>: Your account has not been activated. Check your email for the activation link."
3046
  msgstr ""
3047
 
3121
  msgstr ""
3122
 
3123
  #: bp-messages/bp-messages-actions.php:104
3124
+ #: bp-themes/bp-default/_inc/ajax.php:676
3125
  msgid "Messages deleted."
3126
  msgstr ""
3127
 
3194
  msgid "My Messages"
3195
  msgstr ""
3196
 
3197
+ #: bp-messages/bp-messages-notifications.php:31
3198
  msgid "New message from %s"
3199
  msgstr ""
3200
 
3201
+ #: bp-messages/bp-messages-notifications.php:33
3202
  msgid ""
3203
  "%s sent you a new message:\n"
3204
  "\n"
3328
  msgstr ""
3329
 
3330
  #: bp-messages/bp-messages-template.php:857
3331
+ #: bp-themes/bp-default/_inc/ajax.php:601
3332
  msgid "Sent %s"
3333
  msgstr ""
3334
 
3335
+ #: bp-settings/bp-settings-actions.php:151
3336
+ msgid "That email address is invalid. Check the formatting and try again."
3337
+ msgstr ""
3338
+
3339
+ #: bp-settings/bp-settings-actions.php:154
3340
+ msgid "That email address is currently unavailable for use."
3341
+ msgstr ""
3342
+
3343
+ #: bp-settings/bp-settings-actions.php:157
3344
+ msgid "That email address is already taken."
3345
+ msgstr ""
3346
+
3347
+ #: bp-settings/bp-settings-actions.php:160
3348
+ msgid "Email address cannot be empty."
3349
+ msgstr ""
3350
+
3351
+ #: bp-settings/bp-settings-actions.php:170
3352
+ msgid "Your current password is invalid."
3353
+ msgstr ""
3354
+
3355
+ #: bp-settings/bp-settings-actions.php:173
3356
+ msgid "The new password fields did not match."
3357
  msgstr ""
3358
 
3359
+ #: bp-settings/bp-settings-actions.php:176
3360
+ msgid "One of the password fields was empty."
3361
  msgstr ""
3362
 
3363
+ #: bp-settings/bp-settings-actions.php:185
3364
+ msgid "Your settings have been saved."
3365
  msgstr ""
3366
 
3367
+ #: bp-settings/bp-settings-actions.php:191
3368
+ msgid "No changes were made to your account."
3369
+ msgstr ""
3370
+
3371
+ #: bp-settings/bp-settings-actions.php:193
3372
+ msgid "No changes were made to this account."
3373
+ msgstr ""
3374
+
3375
+ #: bp-settings/bp-settings-actions.php:232
3376
+ #: bp-xprofile/bp-xprofile-screens.php:113
3377
+ msgid "Changes saved."
3378
  msgstr ""
3379
 
3380
  #: bp-settings/bp-settings-loader.php:92 bp-settings/bp-settings-loader.php:158
3389
  msgid "We're sorry, but we can't find the page that you're looking for. Perhaps searching will help."
3390
  msgstr ""
3391
 
3392
+ #: bp-themes/bp-default/_inc/ajax.php:189
3393
  msgid "There was a problem posting your update, please try again."
3394
  msgstr ""
3395
 
3396
+ #: bp-themes/bp-default/_inc/ajax.php:293
3397
+ #: bp-themes/bp-default/_inc/ajax.php:332
3398
  msgid "There was a problem when deleting. Please try again."
3399
  msgstr ""
3400
 
3401
+ #: bp-themes/bp-default/_inc/ajax.php:350
3402
  #: bp-themes/bp-default/activity/entry.php:72
3403
  #: bp-themes/bp-default/functions.php:158
3404
  msgid "Remove Favorite"
3405
  msgstr ""
3406
 
3407
+ #: bp-themes/bp-default/_inc/ajax.php:362
3408
  #: bp-themes/bp-default/activity/entry.php:68
3409
  #: bp-themes/bp-default/functions.php:157
3410
  msgid "Favorite"
3411
  msgstr ""
3412
 
3413
+ #: bp-themes/bp-default/_inc/ajax.php:425
3414
  #: bp-themes/bp-default/groups/create.php:234
3415
  #: bp-themes/bp-default/groups/single/send-invites.php:42
3416
  msgid "Remove Invite"
3417
  msgstr ""
3418
 
3419
+ #: bp-themes/bp-default/_inc/ajax.php:470
3420
  msgid "Request Pending"
3421
  msgstr ""
3422
 
3423
+ #: bp-themes/bp-default/_inc/ajax.php:487
3424
  msgid "There was a problem accepting that request. Please try again."
3425
  msgstr ""
3426
 
3427
+ #: bp-themes/bp-default/_inc/ajax.php:503
3428
  msgid "There was a problem rejecting that request. Please try again."
3429
  msgstr ""
3430
 
3431
+ #: bp-themes/bp-default/_inc/ajax.php:530
3432
  msgid "Error joining group"
3433
  msgstr ""
3434
 
3435
+ #: bp-themes/bp-default/_inc/ajax.php:540
3436
  msgid "Error requesting membership"
3437
  msgstr ""
3438
 
3439
+ #: bp-themes/bp-default/_inc/ajax.php:542
3440
  msgid "Membership Requested"
3441
  msgstr ""
3442
 
3443
+ #: bp-themes/bp-default/_inc/ajax.php:551
3444
  msgid "Error leaving group"
3445
  msgstr ""
3446
 
3447
+ #: bp-themes/bp-default/_inc/ajax.php:572
3448
  msgid "There was a problem closing the notice."
3449
  msgstr ""
3450
 
3451
+ #: bp-themes/bp-default/_inc/ajax.php:618
3452
  msgid "There was a problem sending that reply. Please try again."
3453
  msgstr ""
3454
 
3455
+ #: bp-themes/bp-default/_inc/ajax.php:631
3456
  msgid "There was a problem marking messages as unread."
3457
  msgstr ""
3458
 
3459
+ #: bp-themes/bp-default/_inc/ajax.php:650
3460
  msgid "There was a problem marking messages as read."
3461
  msgstr ""
3462
 
3463
+ #: bp-themes/bp-default/_inc/ajax.php:669
3464
  msgid "There was a problem deleting messages."
3465
  msgstr ""
3466
 
4172
  #: bp-themes/bp-default/groups/single/forum/edit.php:60
4173
  #: bp-themes/bp-default/groups/single/forum/edit.php:76
4174
  #: bp-themes/bp-default/members/single/profile/edit.php:126
4175
+ #: bp-themes/bp-default/members/single/settings/general.php:73
4176
  #: bp-themes/bp-default/members/single/settings/notifications.php:62
4177
  #: bp-xprofile/bp-xprofile-classes.php:274
4178
  msgid "Save Changes"
4531
  msgid "General Settings"
4532
  msgstr ""
4533
 
4534
+ #: bp-themes/bp-default/members/single/settings/general.php:58
4535
  msgid "Current Password <span>(required to update email or change current password)</span>"
4536
  msgstr ""
4537
 
4538
+ #: bp-themes/bp-default/members/single/settings/general.php:59
4539
  msgid "Password Lost and Found"
4540
  msgstr ""
4541
 
4542
+ #: bp-themes/bp-default/members/single/settings/general.php:59
4543
  msgid "Lost your password?"
4544
  msgstr ""
4545
 
4546
+ #: bp-themes/bp-default/members/single/settings/general.php:63
4547
  msgid "Account Email"
4548
  msgstr ""
4549
 
4550
+ #: bp-themes/bp-default/members/single/settings/general.php:66
4551
  msgid "Change Password <span>(leave blank for no change)</span>"
4552
  msgstr ""
4553
 
4554
+ #: bp-themes/bp-default/members/single/settings/general.php:67
4555
  msgid "New Password"
4556
  msgstr ""
4557
 
4558
+ #: bp-themes/bp-default/members/single/settings/general.php:68
4559
  msgid "Repeat New Password"
4560
  msgstr ""
4561
 
bp-loader.php CHANGED
@@ -4,7 +4,7 @@
4
  * Plugin URI: http://buddypress.org
5
  * Description: Social networking in a box. Build a social network for your company, school, sports team or niche community all based on the power and flexibility of WordPress.
6
  * Author: The BuddyPress Community
7
- * Version: 1.5.4
8
  * Author URI: http://buddypress.org/community/members/
9
  * Network: true
10
  */
@@ -17,7 +17,7 @@ global $wpdb;
17
 
18
  // Define the BuddyPress version
19
  if ( !defined( 'BP_VERSION' ) )
20
- define( 'BP_VERSION', '1.5.4' );
21
 
22
  // Define the database version
23
  if ( !defined( 'BP_DB_VERSION' ) )
4
  * Plugin URI: http://buddypress.org
5
  * Description: Social networking in a box. Build a social network for your company, school, sports team or niche community all based on the power and flexibility of WordPress.
6
  * Author: The BuddyPress Community
7
+ * Version: 1.5.5
8
  * Author URI: http://buddypress.org/community/members/
9
  * Network: true
10
  */
17
 
18
  // Define the BuddyPress version
19
  if ( !defined( 'BP_VERSION' ) )
20
+ define( 'BP_VERSION', '1.5.5' );
21
 
22
  // Define the database version
23
  if ( !defined( 'BP_DB_VERSION' ) )
bp-members/bp-members-actions.php CHANGED
@@ -10,15 +10,6 @@
10
  // Exit if accessed directly
11
  if ( !defined( 'ABSPATH' ) ) exit;
12
 
13
- /**
14
- * Listens to the $bp component and action variables to determine if the user is viewing the members
15
- * directory page. If they are, it will set up the directory and load the members directory template.
16
- *
17
- * @package BuddyPress Core
18
- * @global object $bp Global BuddyPress settings object
19
- * @uses wp_enqueue_script() Loads a JS script into the header of the page.
20
- * @uses bp_core_load_template() Loads a specific template file.
21
- */
22
  /**
23
  * When a site admin selects "Mark as Spammer/Not Spammer" from the admin menu
24
  * this action will fire and mark or unmark the user and their blogs as spam.
@@ -29,82 +20,31 @@ if ( !defined( 'ABSPATH' ) ) exit;
29
  * @global object $wpdb Global WordPress Database object
30
  */
31
  function bp_core_action_set_spammer_status( $user_id = 0 ) {
32
- global $wpdb;
33
-
34
- // Only super admins can currently spam users
35
- if ( !is_super_admin() || bp_is_my_profile() )
36
- return;
37
 
38
  // Use displayed user if it's not yourself
39
- if ( empty( $user_id ) && bp_is_user() )
40
- $user_id = bp_displayed_user_id();
41
-
42
- // Bail if no user ID
43
  if ( empty( $user_id ) )
44
- return;
45
-
46
- // Bail if user ID is super admin
47
- if ( is_super_admin( $user_id ) )
48
- return;
49
 
50
  if ( bp_is_current_component( 'admin' ) && ( in_array( bp_current_action(), array( 'mark-spammer', 'unmark-spammer' ) ) ) ) {
51
 
52
  // Check the nonce
53
  check_admin_referer( 'mark-unmark-spammer' );
54
 
55
- // Get the functions file
56
- if ( is_multisite() ) {
57
- require( ABSPATH . 'wp-admin/includes/ms.php' );
58
- }
59
-
60
  // To spam or not to spam
61
- $is_spam = bp_is_current_action( 'mark-spammer' ) ? 1 : 0;
62
 
63
- // Get the blogs for the user
64
- $blogs = get_blogs_of_user( $user_id, true );
65
 
66
- foreach ( (array) $blogs as $key => $details ) {
67
-
68
- // Do not mark the main or current root blog as spam
69
- if ( 1 == $details->userblog_id || bp_get_root_blog_id() == $details->userblog_id ) {
70
- continue;
71
- }
72
-
73
- // Update the blog status
74
- update_blog_status( $details->userblog_id, 'spam', $is_spam );
75
- }
76
-
77
- // Finally, mark this user as a spammer
78
- if ( is_multisite() ) {
79
- update_user_status( $user_id, 'spam', $is_spam );
80
- }
81
-
82
- // Always set single site status
83
- $wpdb->update( $wpdb->users, array( 'user_status' => $is_spam ), array( 'ID' => $user_id ) );
84
-
85
- // Add feedback message
86
- if ( $is_spam ) {
87
  bp_core_add_message( __( 'User marked as spammer. Spam users are visible only to site admins.', 'buddypress' ) );
88
  } else {
89
  bp_core_add_message( __( 'User removed as spammer.', 'buddypress' ) );
90
  }
91
 
92
- // Hide this user's activity
93
- if ( $is_spam && bp_is_active( 'activity' ) ) {
94
- bp_activity_hide_user_activity( $user_id );
95
- }
96
-
97
- // We need a special hook for is_spam so that components can delete data at spam time
98
- $bp_action = $is_spam ? 'bp_make_spam_user' : 'bp_make_ham_user';
99
- do_action( $bp_action, bp_displayed_user_id() );
100
-
101
- // Call multisite actions in single site mode for good measure
102
- if ( !is_multisite() ) {
103
- $wp_action = $is_spam ? 'make_spam_user' : 'make_ham_user';
104
- do_action( $wp_action, bp_displayed_user_id() );
105
- }
106
-
107
- // Allow plugins to do neat things
108
  do_action( 'bp_core_action_set_spammer_status', bp_displayed_user_id(), $is_spam );
109
 
110
  // Redirect back to where we came from
10
  // Exit if accessed directly
11
  if ( !defined( 'ABSPATH' ) ) exit;
12
 
 
 
 
 
 
 
 
 
 
13
  /**
14
  * When a site admin selects "Mark as Spammer/Not Spammer" from the admin menu
15
  * this action will fire and mark or unmark the user and their blogs as spam.
20
  * @global object $wpdb Global WordPress Database object
21
  */
22
  function bp_core_action_set_spammer_status( $user_id = 0 ) {
 
 
 
 
 
23
 
24
  // Use displayed user if it's not yourself
 
 
 
 
25
  if ( empty( $user_id ) )
26
+ $user_id = bp_displayed_user_id();
 
 
 
 
27
 
28
  if ( bp_is_current_component( 'admin' ) && ( in_array( bp_current_action(), array( 'mark-spammer', 'unmark-spammer' ) ) ) ) {
29
 
30
  // Check the nonce
31
  check_admin_referer( 'mark-unmark-spammer' );
32
 
 
 
 
 
 
33
  // To spam or not to spam
34
+ $status = bp_is_current_action( 'mark-spammer' ) ? 'spam' : 'ham';
35
 
36
+ // The heavy lifting
37
+ bp_core_process_spammer_status( $user_id, $status );
38
 
39
+ // Add feedback message. @todo - Error reporting
40
+ if ( 'spam' == $status ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  bp_core_add_message( __( 'User marked as spammer. Spam users are visible only to site admins.', 'buddypress' ) );
42
  } else {
43
  bp_core_add_message( __( 'User removed as spammer.', 'buddypress' ) );
44
  }
45
 
46
+ // Deprecated. Use bp_core_process_spammer_status.
47
+ $is_spam = 'spam' == $status;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  do_action( 'bp_core_action_set_spammer_status', bp_displayed_user_id(), $is_spam );
49
 
50
  // Redirect back to where we came from
bp-members/bp-members-functions.php CHANGED
@@ -407,7 +407,7 @@ function bp_core_get_user_displayname( $user_id_or_username ) {
407
 
408
  if ( !$fullname = wp_cache_get( 'bp_user_fullname_' . $user_id, 'bp' ) ) {
409
  if ( bp_is_active( 'xprofile' ) ) {
410
- $fullname = xprofile_get_field_data( stripslashes( $bp->site_options['bp-xprofile-fullname-field-name'] ), $user_id );
411
 
412
  if ( empty($fullname) ) {
413
  $ud = bp_core_get_core_userdata( $user_id );
@@ -486,6 +486,115 @@ function bp_core_get_total_member_count() {
486
  return apply_filters( 'bp_core_get_total_member_count', $count );
487
  }
488
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
489
  /**
490
  * Checks if the user has been marked as a spammer.
491
  *
@@ -702,4 +811,4 @@ function bp_core_can_edit_settings() {
702
  return false;
703
  }
704
 
705
- ?>
407
 
408
  if ( !$fullname = wp_cache_get( 'bp_user_fullname_' . $user_id, 'bp' ) ) {
409
  if ( bp_is_active( 'xprofile' ) ) {
410
+ $fullname = xprofile_get_field_data( 1, $user_id );
411
 
412
  if ( empty($fullname) ) {
413
  $ud = bp_core_get_core_userdata( $user_id );
486
  return apply_filters( 'bp_core_get_total_member_count', $count );
487
  }
488
 
489
+ /**
490
+ * Processes a spammed or unspammed user
491
+ *
492
+ * This function is called in two ways:
493
+ * - in bp_core_action_set_spammer_status() (when spamming from the front-end)
494
+ * - by bp_core_mark_user_spam_admin() or bp_core_mark_user_ham_admin() (when spamming from the
495
+ * Dashboard)
496
+ *
497
+ * @since 1.5.5
498
+ *
499
+ * @param int $user_id The user being spammed/hammed
500
+ * @param string $status 'spam' if being marked as spam, 'ham' otherwise
501
+ */
502
+ function bp_core_process_spammer_status( $user_id, $status ) {
503
+ global $wpdb;
504
+
505
+ // Only super admins can currently spam users
506
+ if ( !is_super_admin() || bp_is_my_profile() )
507
+ return;
508
+
509
+ // Bail if no user ID
510
+ if ( empty( $user_id ) )
511
+ return;
512
+
513
+ // Bail if user ID is super admin
514
+ if ( is_super_admin( $user_id ) )
515
+ return;
516
+
517
+ // Get the functions file
518
+ if ( is_multisite() ) {
519
+ require_once( ABSPATH . 'wp-admin/includes/ms.php' );
520
+ }
521
+
522
+ $is_spam = 'spam' == $status;
523
+
524
+ // Only you can prevent infinite loops
525
+ remove_action( 'make_spam_user', 'bp_core_mark_user_spam_admin' );
526
+ remove_action( 'make_ham_user', 'bp_core_mark_user_ham_admin' );
527
+
528
+ // When marking as spam in the Dashboard, these actions are handled by WordPress
529
+ if ( !is_admin() ) {
530
+ // Get the blogs for the user
531
+ $blogs = get_blogs_of_user( $user_id, true );
532
+
533
+ foreach ( (array) $blogs as $key => $details ) {
534
+
535
+ // Do not mark the main or current root blog as spam
536
+ if ( 1 == $details->userblog_id || bp_get_root_blog_id() == $details->userblog_id ) {
537
+ continue;
538
+ }
539
+
540
+ // Update the blog status
541
+ update_blog_status( $details->userblog_id, 'spam', $is_spam );
542
+ }
543
+
544
+ // Finally, mark this user as a spammer
545
+ if ( is_multisite() ) {
546
+ update_user_status( $user_id, 'spam', $is_spam );
547
+ }
548
+
549
+ // Always set single site status
550
+ $wpdb->update( $wpdb->users, array( 'user_status' => $is_spam ), array( 'ID' => $user_id ) );
551
+
552
+ // Call multisite actions in single site mode for good measure
553
+ if ( !is_multisite() ) {
554
+ $wp_action = $is_spam ? 'make_spam_user' : 'make_ham_user';
555
+ do_action( $wp_action, bp_displayed_user_id() );
556
+ }
557
+ }
558
+
559
+ // Hide this user's activity
560
+ if ( $is_spam && bp_is_active( 'activity' ) ) {
561
+ bp_activity_hide_user_activity( $user_id );
562
+ }
563
+
564
+ // We need a special hook for is_spam so that components can delete data at spam time
565
+ $bp_action = $is_spam ? 'bp_make_spam_user' : 'bp_make_ham_user';
566
+ do_action( $bp_action, $user_id );
567
+
568
+ // Allow plugins to do neat things
569
+ do_action( 'bp_core_process_spammer_status', $user_id, $is_spam );
570
+
571
+ return true;
572
+ }
573
+
574
+ /**
575
+ * Hook to WP's make_spam_user and run our custom BP spam functions
576
+ *
577
+ * @since 1.5.5
578
+ *
579
+ * @param int $user_id The user id passed from the make_spam_user hook
580
+ */
581
+ function bp_core_mark_user_spam_admin( $user_id ) {
582
+ bp_core_process_spammer_status( $user_id, 'spam' );
583
+ }
584
+ add_action( 'make_spam_user', 'bp_core_mark_user_spam_admin' );
585
+
586
+ /**
587
+ * Hook to WP's make_ham_user and run our custom BP spam functions
588
+ *
589
+ * @since 1.5.5
590
+ *
591
+ * @param int $user_id The user id passed from the make_ham_user hook
592
+ */
593
+ function bp_core_mark_user_ham_admin( $user_id ) {
594
+ bp_core_process_spammer_status( $user_id, 'ham' );
595
+ }
596
+ add_action( 'make_ham_user', 'bp_core_mark_user_ham_admin' );
597
+
598
  /**
599
  * Checks if the user has been marked as a spammer.
600
  *
811
  return false;
812
  }
813
 
814
+ ?>
bp-members/bp-members-signup.php CHANGED
@@ -112,8 +112,11 @@ function bp_core_screen_signup() {
112
 
113
  // Add any errors to the action for the field in the template for display.
114
  if ( !empty( $bp->signup->errors ) ) {
115
- foreach ( (array)$bp->signup->errors as $fieldname => $error_message )
116
- add_action( 'bp_' . $fieldname . '_errors', create_function( '', 'echo apply_filters(\'bp_members_signup_error_message\', "<div class=\"error\">' . $error_message . '</div>" );' ) );
 
 
 
117
  } else {
118
  $bp->signup->step = 'save-details';
119
 
@@ -150,11 +153,16 @@ function bp_core_screen_signup() {
150
 
151
  // Finally, sign up the user and/or blog
152
  if ( isset( $_POST['signup_with_blog'] ) && is_multisite() )
153
- bp_core_signup_blog( $blog_details['domain'], $blog_details['path'], $blog_details['blog_title'], $_POST['signup_username'], $_POST['signup_email'], $usermeta );
154
  else
155
- bp_core_signup_user( $_POST['signup_username'], $_POST['signup_password'], $_POST['signup_email'], $usermeta );
156
-
157
- $bp->signup->step = 'completed-confirmation';
 
 
 
 
 
158
  }
159
 
160
  do_action( 'bp_complete_signup' );
@@ -304,6 +312,9 @@ function bp_core_validate_user_signup( $user_name, $user_email ) {
304
  $errors = new WP_Error();
305
  $user_email = sanitize_email( $user_email );
306
 
 
 
 
307
  if ( empty( $user_name ) )
308
  $errors->add( 'user_name', __( 'Please enter a username', 'buddypress' ) );
309
 
@@ -390,7 +401,7 @@ function bp_core_signup_user( $user_login, $user_password, $user_email, $usermet
390
  'user_email' => $user_email
391
  ) );
392
 
393
- if ( empty( $user_id ) ) {
394
  $errors->add( 'registerfail', sprintf( __('<strong>ERROR</strong>: Couldn&#8217;t register you... please contact the <a href="mailto:%s">webmaster</a> !', 'buddypress' ), get_option( 'admin_email' ) ) );
395
  return $errors;
396
  }
@@ -604,6 +615,9 @@ add_filter( 'authenticate', 'bp_core_signup_disable_inactive', 30, 2 );
604
  function bp_core_wpsignup_redirect() {
605
  $action = !empty( $_GET['action'] ) ? $_GET['action'] : '';
606
 
 
 
 
607
  // Not at the WP core signup page and action is not register
608
  if ( false === strpos( $_SERVER['SCRIPT_NAME'], 'wp-signup.php' ) && ( 'register' != $action ) )
609
  return;
112
 
113
  // Add any errors to the action for the field in the template for display.
114
  if ( !empty( $bp->signup->errors ) ) {
115
+ foreach ( (array) $bp->signup->errors as $fieldname => $error_message ) {
116
+ // addslashes() and stripslashes() to avoid create_function()
117
+ // syntax errors when the $error_message contains quotes
118
+ add_action( 'bp_' . $fieldname . '_errors', create_function( '', 'echo apply_filters(\'bp_members_signup_error_message\', "<div class=\"error\">" . stripslashes( \'' . addslashes( $error_message ) . '\' ) . "</div>" );' ) );
119
+ }
120
  } else {
121
  $bp->signup->step = 'save-details';
122
 
153
 
154
  // Finally, sign up the user and/or blog
155
  if ( isset( $_POST['signup_with_blog'] ) && is_multisite() )
156
+ $wp_user_id = bp_core_signup_blog( $blog_details['domain'], $blog_details['path'], $blog_details['blog_title'], $_POST['signup_username'], $_POST['signup_email'], $usermeta );
157
  else
158
+ $wp_user_id = bp_core_signup_user( $_POST['signup_username'], $_POST['signup_password'], $_POST['signup_email'], $usermeta );
159
+
160
+ if ( is_wp_error( $wp_user_id ) ) {
161
+ $bp->signup->step = 'request-details';
162
+ bp_core_add_message( strip_tags( $wp_user_id->get_error_message() ), 'error' );
163
+ } else {
164
+ $bp->signup->step = 'completed-confirmation';
165
+ }
166
  }
167
 
168
  do_action( 'bp_complete_signup' );
312
  $errors = new WP_Error();
313
  $user_email = sanitize_email( $user_email );
314
 
315
+ // Apply any user_login filters added by BP or other plugins before validating
316
+ $user_name = apply_filters( 'pre_user_login', $user_name );
317
+
318
  if ( empty( $user_name ) )
319
  $errors->add( 'user_name', __( 'Please enter a username', 'buddypress' ) );
320
 
401
  'user_email' => $user_email
402
  ) );
403
 
404
+ if ( is_wp_error( $user_id ) || empty( $user_id ) ) {
405
  $errors->add( 'registerfail', sprintf( __('<strong>ERROR</strong>: Couldn&#8217;t register you... please contact the <a href="mailto:%s">webmaster</a> !', 'buddypress' ), get_option( 'admin_email' ) ) );
406
  return $errors;
407
  }
615
  function bp_core_wpsignup_redirect() {
616
  $action = !empty( $_GET['action'] ) ? $_GET['action'] : '';
617
 
618
+ if ( is_admin() || is_network_admin() )
619
+ return;
620
+
621
  // Not at the WP core signup page and action is not register
622
  if ( false === strpos( $_SERVER['SCRIPT_NAME'], 'wp-signup.php' ) && ( 'register' != $action ) )
623
  return;
bp-messages/bp-messages-notifications.php CHANGED
@@ -17,7 +17,8 @@ function messages_notification_new_message( $args ) {
17
  // User data and links
18
  $ud = get_userdata( $recipient->user_id );
19
  $message_link = bp_core_get_user_domain( $recipient->user_id ) . bp_get_messages_slug() .'/';
20
- $settings_link = bp_core_get_user_domain( $recipient->user_id ) . bp_get_settings_slug() . '/notifications/';
 
21
 
22
  // Sender info
23
  $sender_name = stripslashes( $sender_name );
17
  // User data and links
18
  $ud = get_userdata( $recipient->user_id );
19
  $message_link = bp_core_get_user_domain( $recipient->user_id ) . bp_get_messages_slug() .'/';
20
+ $settings_slug = function_exists( 'bp_get_settings_slug' ) ? bp_get_settings_slug() : 'settings';
21
+ $settings_link = bp_core_get_user_domain( $recipient->user_id ) . $settings_slug . '/notifications/';
22
 
23
  // Sender info
24
  $sender_name = stripslashes( $sender_name );
bp-messages/js/autocomplete/license.bgiframe.txt CHANGED
@@ -1,20 +1,20 @@
1
- Copyright 2010, Brandon Aaron (http://brandonaaron.net/)
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ Copyright 2010, Brandon Aaron (http://brandonaaron.net/)
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
  WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
bp-settings/bp-settings-actions.php CHANGED
@@ -4,119 +4,209 @@ if ( !defined( 'ABSPATH' ) ) exit;
4
 
5
  /** General *******************************************************************/
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  function bp_core_screen_general_settings() {
8
  global $bp;
9
 
 
10
  if ( bp_action_variables() ) {
11
  bp_do_404();
12
  return;
13
  }
14
 
15
- // Setup private variables
16
- $bp_settings_updated = $pass_error = $email_error = $pwd_error = false;
17
 
18
- if ( isset( $_POST['submit'] ) ) {
 
 
 
 
 
 
 
 
 
 
 
 
19
 
20
  // Nonce check
21
  check_admin_referer('bp_settings_general');
22
 
23
  // Validate the user again for the current password when making a big change
24
- if ( is_super_admin() || ( !empty( $_POST['pwd'] ) && $_POST['pwd'] != '' && wp_check_password( $_POST['pwd'], $bp->displayed_user->userdata->user_pass, $bp->displayed_user->id ) ) ) {
25
 
26
- $update_user = get_userdata( $bp->displayed_user->id );
27
-
28
- // The structure of the $update_user object changed in WP 3.3, but
29
- // wp_update_user() still expects the old format
30
- if ( isset( $update_user->data ) && is_object( $update_user->data ) ) {
31
- $update_user = $update_user->data;
32
- }
33
 
34
- // Make sure changing an email address does not already exist
35
- if ( $_POST['email'] != '' ) {
 
36
 
37
  // What is missing from the profile page vs signup - lets double check the goodies
38
  $user_email = sanitize_email( esc_html( trim( $_POST['email'] ) ) );
39
 
40
- // Is email valid
41
- if ( !is_email( $user_email ) )
42
- $email_error = true;
 
 
 
43
 
44
- // Get blocked email domains
45
- $limited_email_domains = get_site_option( 'limited_email_domains', 'buddypress' );
46
 
47
- // If blocked email domains exist, see if this is one of them
48
- if ( is_array( $limited_email_domains ) && empty( $limited_email_domains ) == false ) {
49
- $emaildomain = substr( $user_email, 1 + strpos( $user_email, '@' ) );
50
 
51
- if ( in_array( $emaildomain, (array)$limited_email_domains ) == false ) {
52
- $email_error = true;
 
53
  }
54
- }
55
 
56
- // No errors, and email address doesn't match
57
- if ( ( false === $email_error ) && ( $bp->displayed_user->userdata->user_email != $user_email ) ) {
 
 
58
 
59
- // We don't want email dupes in the system
60
- if ( email_exists( $user_email ) )
61
- $email_error = true;
 
 
62
 
63
- // Set updated user email to this email address
64
- $update_user->user_email = $user_email;
 
65
  }
 
 
 
 
66
  }
67
 
68
- // Password change
 
69
  if ( !empty( $_POST['pass1'] ) && !empty( $_POST['pass2'] ) ) {
70
 
71
  // Password change attempt is successful
72
- if ( $_POST['pass1'] == $_POST['pass2'] && !strpos( " " . $_POST['pass1'], "\\" ) ) {
73
  $update_user->user_pass = $_POST['pass1'];
 
74
 
75
  // Password change attempt was unsuccessful
76
  } else {
77
- $pass_error = true;
78
  }
79
 
 
 
 
 
80
  // One of the password boxes was left empty
81
- } else if ( ( empty( $_POST['pass1'] ) && !empty( $_POST['pass2'] ) ) || ( !empty( $_POST['pass1'] ) && empty( $_POST['pass2'] ) ) ) {
82
- $pass_error = true;
 
83
 
84
- // Not a password change attempt so empty the user_pass
85
- } else {
86
- unset( $update_user->user_pass );
 
 
 
 
 
 
 
 
 
87
  }
88
 
89
  // Make sure these changes are in $bp for the current page load
90
- if ( ( false === $email_error ) && ( false === $pass_error ) && ( wp_update_user( get_object_vars( $update_user ) ) ) ) {
91
- $bp_settings_updated = true;
92
  }
93
 
94
  // Password Error
95
  } else {
96
- $pwd_error = true;
97
  }
98
 
99
- // Add user feedback messages
100
- if ( empty( $pass_error ) && empty( $pwd_error ) && ( empty( $email_error ) ) )
101
- bp_core_add_message( __( 'Changes saved.', 'buddypress' ), 'success' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
102
 
103
- elseif ( !empty( $pass_error ) )
104
- bp_core_add_message( __( 'Your new passwords did not match.', 'buddypress' ), 'error' );
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
- elseif ( !empty( $pwd_error ) )
107
- bp_core_add_message( __( 'Your existing password is incorrect.', 'buddypress' ), 'error' );
 
 
108
 
109
- elseif ( !empty( $email_error ) )
110
- bp_core_add_message( __( 'Sorry, that email address is already used or is invalid.', 'buddypress' ), 'error' );
 
 
 
 
 
 
 
 
 
111
 
112
  // Execute additional code
113
  do_action( 'bp_core_general_settings_after_save' );
114
-
115
- bp_core_redirect( trailingslashit( bp_displayed_user_domain() . bp_get_settings_slug() . '/general' ) );
116
- }
117
 
 
 
 
118
  // Load the template
119
- bp_core_load_template( apply_filters( 'bp_core_screen_general_settings', 'members/single/settings/general' ) );
 
 
120
  }
121
 
122
  /** Notifications *************************************************************/
4
 
5
  /** General *******************************************************************/
6
 
7
+ /**
8
+ * Handles the changing and saving of user email addressos and passwords
9
+ *
10
+ * We do quite a bit of logic and error handling here to make sure that users
11
+ * do not accidentally lock themselves out of their accounts. We also try to
12
+ * provide as accurate of feedback as possible without exposing anyone else's
13
+ * inforation to them.
14
+ *
15
+ * Special considerations are made for super admins that are able to edit any
16
+ * users accounts already, without knowing their existing password.
17
+ *
18
+ * @global BuddyPress $bp
19
+ * @return If no reason to proceed
20
+ */
21
  function bp_core_screen_general_settings() {
22
  global $bp;
23
 
24
+ // 404 if there are any additional action variables attached
25
  if ( bp_action_variables() ) {
26
  bp_do_404();
27
  return;
28
  }
29
 
30
+ /** Handle Form ***********************************************************/
 
31
 
32
+ if ( 'POST' === strtoupper( $_SERVER['REQUEST_METHOD'] ) ) {
33
+
34
+ // Bail if not in settings
35
+ if ( ! bp_is_settings_component() || ! bp_is_current_action( 'general' ) )
36
+ return;
37
+
38
+ // Define local defaults
39
+ $email_error = false; // invalid|blocked|taken|empty|false
40
+ $pass_error = false; // invalid|mismatch|empty|false
41
+ $pass_changed = false; // true if the user changes their password
42
+ $email_changed = false; // true if the user changes their email
43
+ $feedback_type = 'error'; // success|error
44
+ $feedback = array(); // array of strings for feedback
45
 
46
  // Nonce check
47
  check_admin_referer('bp_settings_general');
48
 
49
  // Validate the user again for the current password when making a big change
50
+ if ( ( is_super_admin() ) || ( !empty( $_POST['pwd'] ) && wp_check_password( $_POST['pwd'], $bp->displayed_user->userdata->user_pass, bp_displayed_user_id() ) ) ) {
51
 
52
+ $update_user = get_userdata( bp_displayed_user_id() );
 
 
 
 
 
 
53
 
54
+ /** Email Change Attempt ******************************************/
55
+
56
+ if ( !empty( $_POST['email'] ) ) {
57
 
58
  // What is missing from the profile page vs signup - lets double check the goodies
59
  $user_email = sanitize_email( esc_html( trim( $_POST['email'] ) ) );
60
 
61
+ // User is changing email address
62
+ if ( $bp->displayed_user->userdata->user_email != $user_email ) {
63
+
64
+ // Is email valid
65
+ if ( !is_email( $user_email ) )
66
+ $email_error = 'invalid';
67
 
68
+ // Get blocked email domains
69
+ $limited_email_domains = get_site_option( 'limited_email_domains', 'buddypress' );
70
 
71
+ // If blocked email domains exist, see if this is one of them
72
+ if ( is_array( $limited_email_domains ) && empty( $limited_email_domains ) == false ) {
73
+ $emaildomain = substr( $user_email, 1 + strpos( $user_email, '@' ) );
74
 
75
+ if ( in_array( $emaildomain, (array) $limited_email_domains ) == false ) {
76
+ $email_error = 'blocked';
77
+ }
78
  }
 
79
 
80
+ // No errors, and email address doesn't match
81
+ if ( ( false === $email_error ) && email_exists( $user_email ) ) {
82
+ $email_error = 'taken';
83
+ }
84
 
85
+ // Yay we made it!
86
+ if ( false === $email_error ) {
87
+ $update_user->user_email = $user_email;
88
+ $email_changed = true;
89
+ }
90
 
91
+ // No change
92
+ } else {
93
+ $email_error = false;
94
  }
95
+
96
+ // Email address cannot be empty
97
+ } else {
98
+ $email_error = 'empty';
99
  }
100
 
101
+ /** Password Change Attempt ***************************************/
102
+
103
  if ( !empty( $_POST['pass1'] ) && !empty( $_POST['pass2'] ) ) {
104
 
105
  // Password change attempt is successful
106
+ if ( ( $_POST['pass1'] == $_POST['pass2'] ) && !strpos( " " . $_POST['pass1'], "\\" ) ) {
107
  $update_user->user_pass = $_POST['pass1'];
108
+ $pass_changed = true;
109
 
110
  // Password change attempt was unsuccessful
111
  } else {
112
+ $pass_error = 'mismatch';
113
  }
114
 
115
+ // Both password fields were empty
116
+ } elseif ( empty( $_POST['pass1'] ) && empty( $_POST['pass2'] ) ) {
117
+ $pass_error = false;
118
+
119
  // One of the password boxes was left empty
120
+ } elseif ( ( empty( $_POST['pass1'] ) && !empty( $_POST['pass2'] ) ) || ( !empty( $_POST['pass1'] ) && empty( $_POST['pass2'] ) ) ) {
121
+ $pass_error = 'empty';
122
+ }
123
 
124
+ // The structure of the $update_user object changed in WP 3.3, but
125
+ // wp_update_user() still expects the old format
126
+ if ( isset( $update_user->data ) && is_object( $update_user->data ) ) {
127
+ $update_user = $update_user->data;
128
+ $update_user = get_object_vars( $update_user );
129
+
130
+ // Unset the password field to prevent it from emptying out the
131
+ // user's user_pass field in the database.
132
+ // @see wp_update_user()
133
+ if ( false === $pass_changed ) {
134
+ unset( $update_user['user_pass'] );
135
+ }
136
  }
137
 
138
  // Make sure these changes are in $bp for the current page load
139
+ if ( ( false === $email_error ) && ( false === $pass_error ) && ( wp_update_user( $update_user ) ) ) {
140
+ $bp->displayed_user->userdata = bp_core_get_core_userdata( bp_displayed_user_id() );
141
  }
142
 
143
  // Password Error
144
  } else {
145
+ $pass_error = 'invalid';
146
  }
147
 
148
+ // Email feedback
149
+ switch ( $email_error ) {
150
+ case 'invalid' :
151
+ $feedback['email_invalid'] = __( 'That email address is invalid. Check the formatting and try again.', 'buddypress' );
152
+ break;
153
+ case 'blocked' :
154
+ $feedback['email_blocked'] = __( 'That email address is currently unavailable for use.', 'buddypress' );
155
+ break;
156
+ case 'taken' :
157
+ $feedback['email_taken'] = __( 'That email address is already taken.', 'buddypress' );
158
+ break;
159
+ case 'empty' :
160
+ $feedback['email_empty'] = __( 'Email address cannot be empty.', 'buddypress' );
161
+ break;
162
+ case false :
163
+ // No change
164
+ break;
165
+ }
166
 
167
+ // Password feedback
168
+ switch ( $pass_error ) {
169
+ case 'invalid' :
170
+ $feedback['pass_error'] = __( 'Your current password is invalid.', 'buddypress' );
171
+ break;
172
+ case 'mismatch' :
173
+ $feedback['pass_mismatch'] = __( 'The new password fields did not match.', 'buddypress' );
174
+ break;
175
+ case 'empty' :
176
+ $feedback['pass_empty'] = __( 'One of the password fields was empty.', 'buddypress' );
177
+ break;
178
+ case false :
179
+ // No change
180
+ break;
181
+ }
182
 
183
+ // No errors so show a simple success message
184
+ if ( ( ( false === $email_error ) || ( false == $pass_error ) ) && ( ( true === $pass_changed ) || ( true === $email_changed ) ) ) {
185
+ $feedback[] = __( 'Your settings have been saved.', 'buddypress' );
186
+ $feedback_type = 'success';
187
 
188
+ // Some kind of errors occurred
189
+ } elseif ( ( ( false === $email_error ) || ( false === $pass_error ) ) && ( ( false === $pass_changed ) || ( false === $email_changed ) ) ) {
190
+ if ( bp_is_my_profile() ) {
191
+ $feedback['nochange'] = __( 'No changes were made to your account.', 'buddypress' );
192
+ } else {
193
+ $feedback['nochange'] = __( 'No changes were made to this account.', 'buddypress' );
194
+ }
195
+ }
196
+
197
+ // Set the feedback
198
+ bp_core_add_message( implode( '</p><p>', $feedback ), $feedback_type );
199
 
200
  // Execute additional code
201
  do_action( 'bp_core_general_settings_after_save' );
 
 
 
202
 
203
+ // Redirect to prevent issues with browser back button
204
+ bp_core_redirect( trailingslashit( bp_displayed_user_domain() . bp_get_settings_slug() . '/general' ) );
205
+
206
  // Load the template
207
+ } else {
208
+ bp_core_load_template( apply_filters( 'bp_core_screen_general_settings', 'members/single/settings/general' ) );
209
+ }
210
  }
211
 
212
  /** Notifications *************************************************************/
bp-themes/bp-default/_inc/ajax.php CHANGED
@@ -84,6 +84,10 @@ add_filter( 'bp_ajax_querystring', 'bp_dtheme_ajax_querystring', 10, 2 );
84
  /* This function will simply load the template loop for the current object. On an AJAX request */
85
  function bp_dtheme_object_template_loader() {
86
 
 
 
 
 
87
  /**
88
  * AJAX requests happen too early to be seen by bp_update_is_directory()
89
  * so we do it manually here to ensure templates load with the correct
@@ -108,6 +112,10 @@ add_action( 'wp_ajax_forums_filter', 'bp_dtheme_object_template_loader' );
108
  function bp_dtheme_activity_template_loader() {
109
  global $bp;
110
 
 
 
 
 
111
  $scope = '';
112
  if ( !empty( $_POST['scope'] ) )
113
  $scope = $_POST['scope'];
@@ -135,6 +143,7 @@ function bp_dtheme_activity_template_loader() {
135
  /* Buffer the loop in the template to a var for JS to spit out. */
136
  ob_start();
137
  locate_template( array( 'activity/activity-loop.php' ), true );
 
138
  $result['contents'] = ob_get_contents();
139
  $result['feed_url'] = apply_filters( 'bp_dtheme_activity_feed_url', $feed_url, $scope );
140
  ob_end_clean();
@@ -146,7 +155,10 @@ add_action( 'wp_ajax_activity_get_older_updates', 'bp_dtheme_activity_template_l
146
 
147
  /* AJAX update posting */
148
  function bp_dtheme_post_update() {
149
- global $bp;
 
 
 
150
 
151
  // Check the nonce
152
  check_admin_referer( 'post_update', '_wpnonce_post_update' );
@@ -188,7 +200,10 @@ add_action( 'wp_ajax_post_update', 'bp_dtheme_post_update' );
188
 
189
  /* AJAX activity comment posting */
190
  function bp_dtheme_new_activity_comment() {
191
- global $bp;
 
 
 
192
 
193
  // Check the nonce
194
  check_admin_referer( 'new_activity_comment', '_wpnonce_new_activity_comment' );
@@ -245,7 +260,10 @@ add_action( 'wp_ajax_new_activity_comment', 'bp_dtheme_new_activity_comment' );
245
 
246
  /* AJAX delete an activity */
247
  function bp_dtheme_delete_activity() {
248
- global $bp;
 
 
 
249
 
250
  // Check the nonce
251
  check_admin_referer( 'bp_activity_delete_link' );
@@ -286,6 +304,10 @@ add_action( 'wp_ajax_delete_activity', 'bp_dtheme_delete_activity' );
286
  function bp_dtheme_delete_activity_comment() {
287
  global $bp;
288
 
 
 
 
 
289
  /* Check the nonce */
290
  check_admin_referer( 'bp_activity_delete_link' );
291
 
@@ -319,7 +341,10 @@ add_action( 'wp_ajax_delete_activity_comment', 'bp_dtheme_delete_activity_commen
319
 
320
  /* AJAX mark an activity as a favorite */
321
  function bp_dtheme_mark_activity_favorite() {
322
- global $bp;
 
 
 
323
 
324
  bp_activity_add_user_favorite( $_POST['id'] );
325
  _e( 'Remove Favorite', 'buddypress' );
@@ -328,7 +353,10 @@ add_action( 'wp_ajax_activity_mark_fav', 'bp_dtheme_mark_activity_favorite' );
328
 
329
  /* AJAX mark an activity as not a favorite */
330
  function bp_dtheme_unmark_activity_favorite() {
331
- global $bp;
 
 
 
332
 
333
  bp_activity_remove_user_favorite( $_POST['id'] );
334
  _e( 'Favorite', 'buddypress' );
@@ -367,6 +395,10 @@ add_action( 'wp_ajax_get_single_activity_content', 'bp_dtheme_get_single_activit
367
  function bp_dtheme_ajax_invite_user() {
368
  global $bp;
369
 
 
 
 
 
370
  check_ajax_referer( 'groups_invite_uninvite_user' );
371
 
372
  if ( !$_POST['friend_id'] || !$_POST['friend_action'] || !$_POST['group_id'] )
@@ -411,6 +443,10 @@ add_action( 'wp_ajax_groups_invite_user', 'bp_dtheme_ajax_invite_user' );
411
  function bp_dtheme_ajax_addremove_friend() {
412
  global $bp;
413
 
 
 
 
 
414
  if ( 'is_friend' == BP_Friends_Friendship::check_is_friend( $bp->loggedin_user->id, $_POST['fid'] ) ) {
415
 
416
  check_ajax_referer('friends_remove_friend');
@@ -440,6 +476,11 @@ add_action( 'wp_ajax_addremove_friend', 'bp_dtheme_ajax_addremove_friend' );
440
 
441
  /* AJAX accept a user as a friend when clicking the "accept" button */
442
  function bp_dtheme_ajax_accept_friendship() {
 
 
 
 
 
443
  check_admin_referer( 'friends_accept_friendship' );
444
 
445
  if ( !friends_accept_friendship( $_POST['id'] ) )
@@ -451,6 +492,11 @@ add_action( 'wp_ajax_accept_friendship', 'bp_dtheme_ajax_accept_friendship' );
451
 
452
  /* AJAX reject a user as a friend when clicking the "reject" button */
453
  function bp_dtheme_ajax_reject_friendship() {
 
 
 
 
 
454
  check_admin_referer( 'friends_reject_friendship' );
455
 
456
  if ( !friends_reject_friendship( $_POST['id'] ) )
@@ -464,6 +510,10 @@ add_action( 'wp_ajax_reject_friendship', 'bp_dtheme_ajax_reject_friendship' );
464
  function bp_dtheme_ajax_joinleave_group() {
465
  global $bp;
466
 
 
 
 
 
467
  if ( groups_is_user_banned( $bp->loggedin_user->id, $_POST['gid'] ) )
468
  return false;
469
 
@@ -514,6 +564,10 @@ add_action( 'wp_ajax_joinleave_group', 'bp_dtheme_ajax_joinleave_group' );
514
  function bp_dtheme_ajax_close_notice() {
515
  global $userdata;
516
 
 
 
 
 
517
  if ( !isset( $_POST['notice_id'] ) ) {
518
  echo "-1<div id='message' class='error'><p>" . __('There was a problem closing the notice.', 'buddypress') . '</p></div>';
519
  } else {
@@ -530,6 +584,10 @@ add_action( 'wp_ajax_messages_close_notice', 'bp_dtheme_ajax_close_notice' );
530
  function bp_dtheme_ajax_messages_send_reply() {
531
  global $bp;
532
 
 
 
 
 
533
  check_ajax_referer( 'messages_send_message' );
534
 
535
  $result = messages_new_message( array( 'thread_id' => $_REQUEST['thread_id'], 'content' => $_REQUEST['content'] ) );
@@ -564,7 +622,10 @@ add_action( 'wp_ajax_messages_send_reply', 'bp_dtheme_ajax_messages_send_reply'
564
 
565
  /* AJAX mark a private message as unread in your inbox */
566
  function bp_dtheme_ajax_message_markunread() {
567
- global $bp;
 
 
 
568
 
569
  if ( !isset($_POST['thread_ids']) ) {
570
  echo "-1<div id='message' class='error'><p>" . __('There was a problem marking messages as unread.', 'buddypress' ) . '</p></div>';
@@ -580,7 +641,10 @@ add_action( 'wp_ajax_messages_markunread', 'bp_dtheme_ajax_message_markunread' )
580
 
581
  /* AJAX mark a private message as read in your inbox */
582
  function bp_dtheme_ajax_message_markread() {
583
- global $bp;
 
 
 
584
 
585
  if ( !isset($_POST['thread_ids']) ) {
586
  echo "-1<div id='message' class='error'><p>" . __('There was a problem marking messages as read.', 'buddypress' ) . '</p></div>';
@@ -596,7 +660,10 @@ add_action( 'wp_ajax_messages_markread', 'bp_dtheme_ajax_message_markread' );
596
 
597
  /* AJAX delete a private message or array of messages in your inbox */
598
  function bp_dtheme_ajax_messages_delete() {
599
- global $bp;
 
 
 
600
 
601
  if ( !isset($_POST['thread_ids']) ) {
602
  echo "-1<div id='message' class='error'><p>" . __( 'There was a problem deleting messages.', 'buddypress' ) . '</p></div>';
@@ -626,10 +693,8 @@ function bp_dtheme_ajax_messages_autocomplete_results() {
626
  if ( $bp->messages->slug == $bp->current_component )
627
  $autocomplete_all = $bp->messages->autocomplete_all;
628
 
629
- $friends = false;
630
  $pag_page = 1;
631
-
632
- $limit = $_GET['limit'] ? $_GET['limit'] : apply_filters( 'bp_autocomplete_max_results', 10 );
633
 
634
  // Get the user ids based on the search terms
635
  if ( !empty( $autocomplete_all ) ) {
84
  /* This function will simply load the template loop for the current object. On an AJAX request */
85
  function bp_dtheme_object_template_loader() {
86
 
87
+ // Bail if not a POST action
88
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
89
+ return;
90
+
91
  /**
92
  * AJAX requests happen too early to be seen by bp_update_is_directory()
93
  * so we do it manually here to ensure templates load with the correct
112
  function bp_dtheme_activity_template_loader() {
113
  global $bp;
114
 
115
+ // Bail if not a POST action
116
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
117
+ return;
118
+
119
  $scope = '';
120
  if ( !empty( $_POST['scope'] ) )
121
  $scope = $_POST['scope'];
143
  /* Buffer the loop in the template to a var for JS to spit out. */
144
  ob_start();
145
  locate_template( array( 'activity/activity-loop.php' ), true );
146
+ $result = array();
147
  $result['contents'] = ob_get_contents();
148
  $result['feed_url'] = apply_filters( 'bp_dtheme_activity_feed_url', $feed_url, $scope );
149
  ob_end_clean();
155
 
156
  /* AJAX update posting */
157
  function bp_dtheme_post_update() {
158
+
159
+ // Bail if not a POST action
160
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
161
+ return;
162
 
163
  // Check the nonce
164
  check_admin_referer( 'post_update', '_wpnonce_post_update' );
200
 
201
  /* AJAX activity comment posting */
202
  function bp_dtheme_new_activity_comment() {
203
+
204
+ // Bail if not a POST action
205
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
206
+ return;
207
 
208
  // Check the nonce
209
  check_admin_referer( 'new_activity_comment', '_wpnonce_new_activity_comment' );
260
 
261
  /* AJAX delete an activity */
262
  function bp_dtheme_delete_activity() {
263
+
264
+ // Bail if not a POST action
265
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
266
+ return;
267
 
268
  // Check the nonce
269
  check_admin_referer( 'bp_activity_delete_link' );
304
  function bp_dtheme_delete_activity_comment() {
305
  global $bp;
306
 
307
+ // Bail if not a POST action
308
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
309
+ return;
310
+
311
  /* Check the nonce */
312
  check_admin_referer( 'bp_activity_delete_link' );
313
 
341
 
342
  /* AJAX mark an activity as a favorite */
343
  function bp_dtheme_mark_activity_favorite() {
344
+
345
+ // Bail if not a POST action
346
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
347
+ return;
348
 
349
  bp_activity_add_user_favorite( $_POST['id'] );
350
  _e( 'Remove Favorite', 'buddypress' );
353
 
354
  /* AJAX mark an activity as not a favorite */
355
  function bp_dtheme_unmark_activity_favorite() {
356
+
357
+ // Bail if not a POST action
358
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
359
+ return;
360
 
361
  bp_activity_remove_user_favorite( $_POST['id'] );
362
  _e( 'Favorite', 'buddypress' );
395
  function bp_dtheme_ajax_invite_user() {
396
  global $bp;
397
 
398
+ // Bail if not a POST action
399
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
400
+ return;
401
+
402
  check_ajax_referer( 'groups_invite_uninvite_user' );
403
 
404
  if ( !$_POST['friend_id'] || !$_POST['friend_action'] || !$_POST['group_id'] )
443
  function bp_dtheme_ajax_addremove_friend() {
444
  global $bp;
445
 
446
+ // Bail if not a POST action
447
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
448
+ return;
449
+
450
  if ( 'is_friend' == BP_Friends_Friendship::check_is_friend( $bp->loggedin_user->id, $_POST['fid'] ) ) {
451
 
452
  check_ajax_referer('friends_remove_friend');
476
 
477
  /* AJAX accept a user as a friend when clicking the "accept" button */
478
  function bp_dtheme_ajax_accept_friendship() {
479
+
480
+ // Bail if not a POST action
481
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
482
+ return;
483
+
484
  check_admin_referer( 'friends_accept_friendship' );
485
 
486
  if ( !friends_accept_friendship( $_POST['id'] ) )
492
 
493
  /* AJAX reject a user as a friend when clicking the "reject" button */
494
  function bp_dtheme_ajax_reject_friendship() {
495
+
496
+ // Bail if not a POST action
497
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
498
+ return;
499
+
500
  check_admin_referer( 'friends_reject_friendship' );
501
 
502
  if ( !friends_reject_friendship( $_POST['id'] ) )
510
  function bp_dtheme_ajax_joinleave_group() {
511
  global $bp;
512
 
513
+ // Bail if not a POST action
514
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
515
+ return;
516
+
517
  if ( groups_is_user_banned( $bp->loggedin_user->id, $_POST['gid'] ) )
518
  return false;
519
 
564
  function bp_dtheme_ajax_close_notice() {
565
  global $userdata;
566
 
567
+ // Bail if not a POST action
568
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
569
+ return;
570
+
571
  if ( !isset( $_POST['notice_id'] ) ) {
572
  echo "-1<div id='message' class='error'><p>" . __('There was a problem closing the notice.', 'buddypress') . '</p></div>';
573
  } else {
584
  function bp_dtheme_ajax_messages_send_reply() {
585
  global $bp;
586
 
587
+ // Bail if not a POST action
588
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
589
+ return;
590
+
591
  check_ajax_referer( 'messages_send_message' );
592
 
593
  $result = messages_new_message( array( 'thread_id' => $_REQUEST['thread_id'], 'content' => $_REQUEST['content'] ) );
622
 
623
  /* AJAX mark a private message as unread in your inbox */
624
  function bp_dtheme_ajax_message_markunread() {
625
+
626
+ // Bail if not a POST action
627
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
628
+ return;
629
 
630
  if ( !isset($_POST['thread_ids']) ) {
631
  echo "-1<div id='message' class='error'><p>" . __('There was a problem marking messages as unread.', 'buddypress' ) . '</p></div>';
641
 
642
  /* AJAX mark a private message as read in your inbox */
643
  function bp_dtheme_ajax_message_markread() {
644
+
645
+ // Bail if not a POST action
646
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
647
+ return;
648
 
649
  if ( !isset($_POST['thread_ids']) ) {
650
  echo "-1<div id='message' class='error'><p>" . __('There was a problem marking messages as read.', 'buddypress' ) . '</p></div>';
660
 
661
  /* AJAX delete a private message or array of messages in your inbox */
662
  function bp_dtheme_ajax_messages_delete() {
663
+
664
+ // Bail if not a POST action
665
+ if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) )
666
+ return;
667
 
668
  if ( !isset($_POST['thread_ids']) ) {
669
  echo "-1<div id='message' class='error'><p>" . __( 'There was a problem deleting messages.', 'buddypress' ) . '</p></div>';
693
  if ( $bp->messages->slug == $bp->current_component )
694
  $autocomplete_all = $bp->messages->autocomplete_all;
695
 
 
696
  $pag_page = 1;
697
+ $limit = !empty( $_GET['limit'] ) ? $_GET['limit'] : apply_filters( 'bp_autocomplete_max_results', 10 );
 
698
 
699
  // Get the user ids based on the search terms
700
  if ( !empty( $autocomplete_all ) ) {
bp-themes/bp-default/groups/single/members.php CHANGED
@@ -63,7 +63,7 @@
63
 
64
  <?php do_action( 'bp_after_group_members_list' ); ?>
65
 
66
- <div id="pag-bottom" class="pagination">
67
 
68
  <div class="pag-count" id="member-count-bottom">
69
 
63
 
64
  <?php do_action( 'bp_after_group_members_list' ); ?>
65
 
66
+ <div id="pag-bottom" class="pagination no-ajax">
67
 
68
  <div class="pag-count" id="member-count-bottom">
69
 
bp-themes/bp-default/license.txt CHANGED
@@ -1,280 +1,280 @@
1
- GNU GENERAL PUBLIC LICENSE
2
- Version 2, June 1991
3
-
4
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
- 675 Mass Ave, Cambridge, MA 02139, USA
6
- Everyone is permitted to copy and distribute verbatim copies
7
- of this license document, but changing it is not allowed.
8
-
9
- Preamble
10
-
11
- The licenses for most software are designed to take away your
12
- freedom to share and change it. By contrast, the GNU General Public
13
- License is intended to guarantee your freedom to share and change free
14
- software--to make sure the software is free for all its users. This
15
- General Public License applies to most of the Free Software
16
- Foundation's software and to any other program whose authors commit to
17
- using it. (Some other Free Software Foundation software is covered by
18
- the GNU Library General Public License instead.) You can apply it to
19
- your programs, too.
20
-
21
- When we speak of free software, we are referring to freedom, not
22
- price. Our General Public Licenses are designed to make sure that you
23
- have the freedom to distribute copies of free software (and charge for
24
- this service if you wish), that you receive source code or can get it
25
- if you want it, that you can change the software or use pieces of it
26
- in new free programs; and that you know you can do these things.
27
-
28
- To protect your rights, we need to make restrictions that forbid
29
- anyone to deny you these rights or to ask you to surrender the rights.
30
- These restrictions translate to certain responsibilities for you if you
31
- distribute copies of the software, or if you modify it.
32
-
33
- For example, if you distribute copies of such a program, whether
34
- gratis or for a fee, you must give the recipients all the rights that
35
- you have. You must make sure that they, too, receive or can get the
36
- source code. And you must show them these terms so they know their
37
- rights.
38
-
39
- We protect your rights with two steps: (1) copyright the software, and
40
- (2) offer you this license which gives you legal permission to copy,
41
- distribute and/or modify the software.
42
-
43
- Also, for each author's protection and ours, we want to make certain
44
- that everyone understands that there is no warranty for this free
45
- software. If the software is modified by someone else and passed on, we
46
- want its recipients to know that what they have is not the original, so
47
- that any problems introduced by others will not reflect on the original
48
- authors' reputations.
49
-
50
- Finally, any free program is threatened constantly by software
51
- patents. We wish to avoid the danger that redistributors of a free
52
- program will individually obtain patent licenses, in effect making the
53
- program proprietary. To prevent this, we have made it clear that any
54
- patent must be licensed for everyone's free use or not licensed at all.
55
-
56
- The precise terms and conditions for copying, distribution and
57
- modification follow.
58
-
59
- GNU GENERAL PUBLIC LICENSE
60
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
-
62
- 0. This License applies to any program or other work which contains
63
- a notice placed by the copyright holder saying it may be distributed
64
- under the terms of this General Public License. The "Program", below,
65
- refers to any such program or work, and a "work based on the Program"
66
- means either the Program or any derivative work under copyright law:
67
- that is to say, a work containing the Program or a portion of it,
68
- either verbatim or with modifications and/or translated into another
69
- language. (Hereinafter, translation is included without limitation in
70
- the term "modification".) Each licensee is addressed as "you".
71
-
72
- Activities other than copying, distribution and modification are not
73
- covered by this License; they are outside its scope. The act of
74
- running the Program is not restricted, and the output from the Program
75
- is covered only if its contents constitute a work based on the
76
- Program (independent of having been made by running the Program).
77
- Whether that is true depends on what the Program does.
78
-
79
- 1. You may copy and distribute verbatim copies of the Program's
80
- source code as you receive it, in any medium, provided that you
81
- conspicuously and appropriately publish on each copy an appropriate
82
- copyright notice and disclaimer of warranty; keep intact all the
83
- notices that refer to this License and to the absence of any warranty;
84
- and give any other recipients of the Program a copy of this License
85
- along with the Program.
86
-
87
- You may charge a fee for the physical act of transferring a copy, and
88
- you may at your option offer warranty protection in exchange for a fee.
89
-
90
- 2. You may modify your copy or copies of the Program or any portion
91
- of it, thus forming a work based on the Program, and copy and
92
- distribute such modifications or work under the terms of Section 1
93
- above, provided that you also meet all of these conditions:
94
-
95
- a) You must cause the modified files to carry prominent notices
96
- stating that you changed the files and the date of any change.
97
-
98
- b) You must cause any work that you distribute or publish, that in
99
- whole or in part contains or is derived from the Program or any
100
- part thereof, to be licensed as a whole at no charge to all third
101
- parties under the terms of this License.
102
-
103
- c) If the modified program normally reads commands interactively
104
- when run, you must cause it, when started running for such
105
- interactive use in the most ordinary way, to print or display an
106
- announcement including an appropriate copyright notice and a
107
- notice that there is no warranty (or else, saying that you provide
108
- a warranty) and that users may redistribute the program under
109
- these conditions, and telling the user how to view a copy of this
110
- License. (Exception: if the Program itself is interactive but
111
- does not normally print such an announcement, your work based on
112
- the Program is not required to print an announcement.)
113
-
114
- These requirements apply to the modified work as a whole. If
115
- identifiable sections of that work are not derived from the Program,
116
- and can be reasonably considered independent and separate works in
117
- themselves, then this License, and its terms, do not apply to those
118
- sections when you distribute them as separate works. But when you
119
- distribute the same sections as part of a whole which is a work based
120
- on the Program, the distribution of the whole must be on the terms of
121
- this License, whose permissions for other licensees extend to the
122
- entire whole, and thus to each and every part regardless of who wrote it.
123
- Thus, it is not the intent of this section to claim rights or contest
124
- your rights to work written entirely by you; rather, the intent is to
125
- exercise the right to control the distribution of derivative or
126
- collective works based on the Program.
127
-
128
- In addition, mere aggregation of another work not based on the Program
129
- with the Program (or with a work based on the Program) on a volume of
130
- a storage or distribution medium does not bring the other work under
131
- the scope of this License.
132
-
133
- 3. You may copy and distribute the Program (or a work based on it,
134
- under Section 2) in object code or executable form under the terms of
135
- Sections 1 and 2 above provided that you also do one of the following:
136
-
137
- a) Accompany it with the complete corresponding machine-readable
138
- source code, which must be distributed under the terms of Sections
139
- 1 and 2 above on a medium customarily used for software interchange; or,
140
-
141
- b) Accompany it with a written offer, valid for at least three
142
- years, to give any third party, for a charge no more than your
143
- cost of physically performing source distribution, a complete
144
- machine-readable copy of the corresponding source code, to be
145
- distributed under the terms of Sections 1 and 2 above on a medium
146
- customarily used for software interchange; or,
147
-
148
- c) Accompany it with the information you received as to the offer
149
- to distribute corresponding source code. (This alternative is
150
- allowed only for noncommercial distribution and only if you
151
- received the program in object code or executable form with such
152
- an offer, in accord with Subsection b above.)
153
-
154
- The source code for a work means the preferred form of the work for
155
- making modifications to it. For an executable work, complete source
156
- code means all the source code for all modules it contains, plus any
157
- associated interface definition files, plus the scripts used to
158
- control compilation and installation of the executable. However, as a
159
- special exception, the source code distributed need not include
160
- anything that is normally distributed (in either source or binary
161
- form) with the major components (compiler, kernel, and so on) of the
162
- operating system on which the executable runs, unless that component
163
- itself accompanies the executable.
164
-
165
- If distribution of executable or object code is made by offering
166
- access to copy from a designated place, then offering equivalent
167
- access to copy the source code from the same place counts as
168
- distribution of the source code, even though third parties are not
169
- compelled to copy the source along with the object code.
170
-
171
- 4. You may not copy, modify, sublicense, or distribute the Program
172
- except as expressly provided under this License. Any attempt
173
- otherwise to copy, modify, sublicense or distribute the Program is
174
- void, and will automatically terminate your rights under this License.
175
- However, parties who have received copies, or rights, from you under
176
- this License will not have their licenses terminated so long as such
177
- parties remain in full compliance.
178
-
179
- 5. You are not required to accept this License, since you have not
180
- signed it. However, nothing else grants you permission to modify or
181
- distribute the Program or its derivative works. These actions are
182
- prohibited by law if you do not accept this License. Therefore, by
183
- modifying or distributing the Program (or any work based on the
184
- Program), you indicate your acceptance of this License to do so, and
185
- all its terms and conditions for copying, distributing or modifying
186
- the Program or works based on it.
187
-
188
- 6. Each time you redistribute the Program (or any work based on the
189
- Program), the recipient automatically receives a license from the
190
- original licensor to copy, distribute or modify the Program subject to
191
- these terms and conditions. You may not impose any further
192
- restrictions on the recipients' exercise of the rights granted herein.
193
- You are not responsible for enforcing compliance by third parties to
194
- this License.
195
-
196
- 7. If, as a consequence of a court judgment or allegation of patent
197
- infringement or for any other reason (not limited to patent issues),
198
- conditions are imposed on you (whether by court order, agreement or
199
- otherwise) that contradict the conditions of this License, they do not
200
- excuse you from the conditions of this License. If you cannot
201
- distribute so as to satisfy simultaneously your obligations under this
202
- License and any other pertinent obligations, then as a consequence you
203
- may not distribute the Program at all. For example, if a patent
204
- license would not permit royalty-free redistribution of the Program by
205
- all those who receive copies directly or indirectly through you, then
206
- the only way you could satisfy both it and this License would be to
207
- refrain entirely from distribution of the Program.
208
-
209
- If any portion of this section is held invalid or unenforceable under
210
- any particular circumstance, the balance of the section is intended to
211
- apply and the section as a whole is intended to apply in other
212
- circumstances.
213
-
214
- It is not the purpose of this section to induce you to infringe any
215
- patents or other property right claims or to contest validity of any
216
- such claims; this section has the sole purpose of protecting the
217
- integrity of the free software distribution system, which is
218
- implemented by public license practices. Many people have made
219
- generous contributions to the wide range of software distributed
220
- through that system in reliance on consistent application of that
221
- system; it is up to the author/donor to decide if he or she is willing
222
- to distribute software through any other system and a licensee cannot
223
- impose that choice.
224
-
225
- This section is intended to make thoroughly clear what is believed to
226
- be a consequence of the rest of this License.
227
-
228
- 8. If the distribution and/or use of the Program is restricted in
229
- certain countries either by patents or by copyrighted interfaces, the
230
- original copyright holder who places the Program under this License
231
- may add an explicit geographical distribution limitation excluding
232
- those countries, so that distribution is permitted only in or among
233
- countries not thus excluded. In such case, this License incorporates
234
- the limitation as if written in the body of this License.
235
-
236
- 9. The Free Software Foundation may publish revised and/or new versions
237
- of the General Public License from time to time. Such new versions will
238
- be similar in spirit to the present version, but may differ in detail to
239
- address new problems or concerns.
240
-
241
- Each version is given a distinguishing version number. If the Program
242
- specifies a version number of this License which applies to it and "any
243
- later version", you have the option of following the terms and conditions
244
- either of that version or of any later version published by the Free
245
- Software Foundation. If the Program does not specify a version number of
246
- this License, you may choose any version ever published by the Free Software
247
- Foundation.
248
-
249
- 10. If you wish to incorporate parts of the Program into other free
250
- programs whose distribution conditions are different, write to the author
251
- to ask for permission. For software which is copyrighted by the Free
252
- Software Foundation, write to the Free Software Foundation; we sometimes
253
- make exceptions for this. Our decision will be guided by the two goals
254
- of preserving the free status of all derivatives of our free software and
255
- of promoting the sharing and reuse of software generally.
256
-
257
- NO WARRANTY
258
-
259
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
260
- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
261
- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
262
- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
263
- OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
264
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
265
- TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
266
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
267
- REPAIR OR CORRECTION.
268
-
269
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
270
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
271
- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
272
- INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
273
- OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
274
- TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
275
- YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
276
- PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
277
- POSSIBILITY OF SUCH DAMAGES.
278
-
279
- END OF TERMS AND CONDITIONS
280
-
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
+ 675 Mass Ave, Cambridge, MA 02139, USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Library General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+ Thus, it is not the intent of this section to claim rights or contest
124
+ your rights to work written entirely by you; rather, the intent is to
125
+ exercise the right to control the distribution of derivative or
126
+ collective works based on the Program.
127
+
128
+ In addition, mere aggregation of another work not based on the Program
129
+ with the Program (or with a work based on the Program) on a volume of
130
+ a storage or distribution medium does not bring the other work under
131
+ the scope of this License.
132
+
133
+ 3. You may copy and distribute the Program (or a work based on it,
134
+ under Section 2) in object code or executable form under the terms of
135
+ Sections 1 and 2 above provided that you also do one of the following:
136
+
137
+ a) Accompany it with the complete corresponding machine-readable
138
+ source code, which must be distributed under the terms of Sections
139
+ 1 and 2 above on a medium customarily used for software interchange; or,
140
+
141
+ b) Accompany it with a written offer, valid for at least three
142
+ years, to give any third party, for a charge no more than your
143
+ cost of physically performing source distribution, a complete
144
+ machine-readable copy of the corresponding source code, to be
145
+ distributed under the terms of Sections 1 and 2 above on a medium
146
+ customarily used for software interchange; or,
147
+
148
+ c) Accompany it with the information you received as to the offer
149
+ to distribute corresponding source code. (This alternative is
150
+ allowed only for noncommercial distribution and only if you
151
+ received the program in object code or executable form with such
152
+ an offer, in accord with Subsection b above.)
153
+
154
+ The source code for a work means the preferred form of the work for
155
+ making modifications to it. For an executable work, complete source
156
+ code means all the source code for all modules it contains, plus any
157
+ associated interface definition files, plus the scripts used to
158
+ control compilation and installation of the executable. However, as a
159
+ special exception, the source code distributed need not include
160
+ anything that is normally distributed (in either source or binary
161
+ form) with the major components (compiler, kernel, and so on) of the
162
+ operating system on which the executable runs, unless that component
163
+ itself accompanies the executable.
164
+
165
+ If distribution of executable or object code is made by offering
166
+ access to copy from a designated place, then offering equivalent
167
+ access to copy the source code from the same place counts as
168
+ distribution of the source code, even though third parties are not
169
+ compelled to copy the source along with the object code.
170
+
171
+ 4. You may not copy, modify, sublicense, or distribute the Program
172
+ except as expressly provided under this License. Any attempt
173
+ otherwise to copy, modify, sublicense or distribute the Program is
174
+ void, and will automatically terminate your rights under this License.
175
+ However, parties who have received copies, or rights, from you under
176
+ this License will not have their licenses terminated so long as such
177
+ parties remain in full compliance.
178
+
179
+ 5. You are not required to accept this License, since you have not
180
+ signed it. However, nothing else grants you permission to modify or
181
+ distribute the Program or its derivative works. These actions are
182
+ prohibited by law if you do not accept this License. Therefore, by
183
+ modifying or distributing the Program (or any work based on the
184
+ Program), you indicate your acceptance of this License to do so, and
185
+ all its terms and conditions for copying, distributing or modifying
186
+ the Program or works based on it.
187
+
188
+ 6. Each time you redistribute the Program (or any work based on the
189
+ Program), the recipient automatically receives a license from the
190
+ original licensor to copy, distribute or modify the Program subject to
191
+ these terms and conditions. You may not impose any further
192
+ restrictions on the recipients' exercise of the rights granted herein.
193
+ You are not responsible for enforcing compliance by third parties to
194
+ this License.
195
+
196
+ 7. If, as a consequence of a court judgment or allegation of patent
197
+ infringement or for any other reason (not limited to patent issues),
198
+ conditions are imposed on you (whether by court order, agreement or
199
+ otherwise) that contradict the conditions of this License, they do not
200
+ excuse you from the conditions of this License. If you cannot
201
+ distribute so as to satisfy simultaneously your obligations under this
202
+ License and any other pertinent obligations, then as a consequence you
203
+ may not distribute the Program at all. For example, if a patent
204
+ license would not permit royalty-free redistribution of the Program by
205
+ all those who receive copies directly or indirectly through you, then
206
+ the only way you could satisfy both it and this License would be to
207
+ refrain entirely from distribution of the Program.
208
+
209
+ If any portion of this section is held invalid or unenforceable under
210
+ any particular circumstance, the balance of the section is intended to
211
+ apply and the section as a whole is intended to apply in other
212
+ circumstances.
213
+
214
+ It is not the purpose of this section to induce you to infringe any
215
+ patents or other property right claims or to contest validity of any
216
+ such claims; this section has the sole purpose of protecting the
217
+ integrity of the free software distribution system, which is
218
+ implemented by public license practices. Many people have made
219
+ generous contributions to the wide range of software distributed
220
+ through that system in reliance on consistent application of that
221
+ system; it is up to the author/donor to decide if he or she is willing
222
+ to distribute software through any other system and a licensee cannot
223
+ impose that choice.
224
+
225
+ This section is intended to make thoroughly clear what is believed to
226
+ be a consequence of the rest of this License.
227
+
228
+ 8. If the distribution and/or use of the Program is restricted in
229
+ certain countries either by patents or by copyrighted interfaces, the
230
+ original copyright holder who places the Program under this License
231
+ may add an explicit geographical distribution limitation excluding
232
+ those countries, so that distribution is permitted only in or among
233
+ countries not thus excluded. In such case, this License incorporates
234
+ the limitation as if written in the body of this License.
235
+
236
+ 9. The Free Software Foundation may publish revised and/or new versions
237
+ of the General Public License from time to time. Such new versions will
238
+ be similar in spirit to the present version, but may differ in detail to
239
+ address new problems or concerns.
240
+
241
+ Each version is given a distinguishing version number. If the Program
242
+ specifies a version number of this License which applies to it and "any
243
+ later version", you have the option of following the terms and conditions
244
+ either of that version or of any later version published by the Free
245
+ Software Foundation. If the Program does not specify a version number of
246
+ this License, you may choose any version ever published by the Free Software
247
+ Foundation.
248
+
249
+ 10. If you wish to incorporate parts of the Program into other free
250
+ programs whose distribution conditions are different, write to the author
251
+ to ask for permission. For software which is copyrighted by the Free
252
+ Software Foundation, write to the Free Software Foundation; we sometimes
253
+ make exceptions for this. Our decision will be guided by the two goals
254
+ of preserving the free status of all derivatives of our free software and
255
+ of promoting the sharing and reuse of software generally.
256
+
257
+ NO WARRANTY
258
+
259
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
260
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
261
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
262
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
263
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
264
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
265
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
266
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
267
+ REPAIR OR CORRECTION.
268
+
269
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
270
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
271
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
272
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
273
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
274
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
275
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
276
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
277
+ POSSIBILITY OF SUCH DAMAGES.
278
+
279
+ END OF TERMS AND CONDITIONS
280
+
bp-themes/bp-default/members/single/settings/general.php CHANGED
@@ -53,8 +53,12 @@
53
 
54
  <form action="<?php echo bp_displayed_user_domain() . bp_get_settings_slug() . '/general'; ?>" method="post" class="standard-form" id="settings-form">
55
 
56
- <label for="pwd"><?php _e( 'Current Password <span>(required to update email or change current password)</span>', 'buddypress' ); ?></label>
57
- <input type="password" name="pwd" id="pwd" size="16" value="" class="settings-input small" /> &nbsp;<a href="<?php echo site_url( add_query_arg( array( 'action' => 'lostpassword' ), 'wp-login.php' ), 'login' ); ?>" title="<?php _e( 'Password Lost and Found', 'buddypress' ); ?>"><?php _e( 'Lost your password?', 'buddypress' ); ?></a>
 
 
 
 
58
 
59
  <label for="email"><?php _e( 'Account Email', 'buddypress' ); ?></label>
60
  <input type="text" name="email" id="email" value="<?php echo bp_get_displayed_user_email(); ?>" class="settings-input" />
53
 
54
  <form action="<?php echo bp_displayed_user_domain() . bp_get_settings_slug() . '/general'; ?>" method="post" class="standard-form" id="settings-form">
55
 
56
+ <?php if ( !is_super_admin() ) : ?>
57
+
58
+ <label for="pwd"><?php _e( 'Current Password <span>(required to update email or change current password)</span>', 'buddypress' ); ?></label>
59
+ <input type="password" name="pwd" id="pwd" size="16" value="" class="settings-input small" /> &nbsp;<a href="<?php echo site_url( add_query_arg( array( 'action' => 'lostpassword' ), 'wp-login.php' ), 'login' ); ?>" title="<?php _e( 'Password Lost and Found', 'buddypress' ); ?>"><?php _e( 'Lost your password?', 'buddypress' ); ?></a>
60
+
61
+ <?php endif; ?>
62
 
63
  <label for="email"><?php _e( 'Account Email', 'buddypress' ); ?></label>
64
  <input type="text" name="email" id="email" value="<?php echo bp_get_displayed_user_email(); ?>" class="settings-input" />
bp-themes/bp-default/readme.txt CHANGED
@@ -1,22 +1,22 @@
1
- --- BuddyPress Default ---
2
- Clean and stylish, BuddyPress Default lets you build a social network straight out of the box. Make it yours with a custom menu, header image, and background. Along with five widgetized areas (one in the sidebar, four in the footer), BP-Default supports featured images (as custom header images on posts and pages) and is furnished with an optional one-column page template that removes the sidebar, and a stylesheet for the admin Visual Editor.
3
-
4
-
5
- --- Installation ---
6
- The theme is bundled with BuddyPress. After activating the plugin, BuddyPress Default will be added to the "Appearance > Themes" menu in your WordPress admin area.
7
-
8
-
9
- --- About BuddyPress ---
10
- Social networking in a box. Build a social network for your company, school, sports team or niche community all based on the power and flexibility of WordPress. BuddyPress will let users register on your site and start creating profiles, posting messages, making connections, creating and interacting in groups and much more.
11
-
12
- For help with BuddyPress Default, or for more information about BuddyPress, please visit http://buddypress.org/.
13
-
14
-
15
- --- Building a BuddyPress theme ---
16
- If you want to make a custom theme based on BuddyPress Default, DO NOT copy and edit it. By doing this you will make updates and maintenance much harder for yourself. Instead, please review this codex page for instructions on how to build a BuddyPress child theme:
17
-
18
- http://codex.buddypress.org/how-to-guides/building-a-buddypress-child-theme/
19
-
20
-
21
- --- Changelog ---
22
  A list of changes is available at http://codex.buddypress.org/theme-development/bp-default-theme-changelog/.
1
+ --- BuddyPress Default ---
2
+ Clean and stylish, BuddyPress Default lets you build a social network straight out of the box. Make it yours with a custom menu, header image, and background. Along with five widgetized areas (one in the sidebar, four in the footer), BP-Default supports featured images (as custom header images on posts and pages) and is furnished with an optional one-column page template that removes the sidebar, and a stylesheet for the admin Visual Editor.
3
+
4
+
5
+ --- Installation ---
6
+ The theme is bundled with BuddyPress. After activating the plugin, BuddyPress Default will be added to the "Appearance > Themes" menu in your WordPress admin area.
7
+
8
+
9
+ --- About BuddyPress ---
10
+ Social networking in a box. Build a social network for your company, school, sports team or niche community all based on the power and flexibility of WordPress. BuddyPress will let users register on your site and start creating profiles, posting messages, making connections, creating and interacting in groups and much more.
11
+
12
+ For help with BuddyPress Default, or for more information about BuddyPress, please visit http://buddypress.org/.
13
+
14
+
15
+ --- Building a BuddyPress theme ---
16
+ If you want to make a custom theme based on BuddyPress Default, DO NOT copy and edit it. By doing this you will make updates and maintenance much harder for yourself. Instead, please review this codex page for instructions on how to build a BuddyPress child theme:
17
+
18
+ http://codex.buddypress.org/how-to-guides/building-a-buddypress-child-theme/
19
+
20
+
21
+ --- Changelog ---
22
  A list of changes is available at http://codex.buddypress.org/theme-development/bp-default-theme-changelog/.
bp-themes/bp-default/rtl.css CHANGED
@@ -2,7 +2,7 @@
2
  * Theme Name: BuddyPress Default
3
  * Theme URI: http://buddypress.org/extend/themes/
4
  * Description: Clean and stylish, BuddyPress Default lets you build a social network straight out of the box. Make it yours with a custom menu, header image, and background. Along with five widgetized areas (one in the sidebar, four in the footer), BP-Default supports featured images (as custom header images on posts and pages) and is furnished with an optional one-column page template that removes the sidebar, and a stylesheet for the admin Visual Editor.
5
- * Version: 1.5.4
6
  * Author: the BuddyPress team
7
  * Author URI: http://buddypress.org
8
  * License: GNU General Public License
2
  * Theme Name: BuddyPress Default
3
  * Theme URI: http://buddypress.org/extend/themes/
4
  * Description: Clean and stylish, BuddyPress Default lets you build a social network straight out of the box. Make it yours with a custom menu, header image, and background. Along with five widgetized areas (one in the sidebar, four in the footer), BP-Default supports featured images (as custom header images on posts and pages) and is furnished with an optional one-column page template that removes the sidebar, and a stylesheet for the admin Visual Editor.
5
+ * Version: 1.5.5
6
  * Author: the BuddyPress team
7
  * Author URI: http://buddypress.org
8
  * License: GNU General Public License
bp-themes/bp-default/style.css CHANGED
@@ -2,7 +2,7 @@
2
  * Theme Name: BuddyPress Default
3
  * Theme URI: http://buddypress.org/extend/themes/
4
  * Description: Clean and stylish, BuddyPress Default lets you build a social network straight out of the box. Make it yours with a custom menu, header image, and background. Along with five widgetized areas (one in the sidebar, four in the footer), BP-Default supports featured images (as custom header images on posts and pages) and is furnished with an optional one-column page template that removes the sidebar, and a stylesheet for the admin Visual Editor.
5
- * Version: 1.5.4
6
  * Author: the BuddyPress team
7
  * Author URI: http://buddypress.org
8
  * License: GNU General Public License
2
  * Theme Name: BuddyPress Default
3
  * Theme URI: http://buddypress.org/extend/themes/
4
  * Description: Clean and stylish, BuddyPress Default lets you build a social network straight out of the box. Make it yours with a custom menu, header image, and background. Along with five widgetized areas (one in the sidebar, four in the footer), BP-Default supports featured images (as custom header images on posts and pages) and is furnished with an optional one-column page template that removes the sidebar, and a stylesheet for the admin Visual Editor.
5
+ * Version: 1.5.5
6
  * Author: the BuddyPress team
7
  * Author URI: http://buddypress.org
8
  * License: GNU General Public License
license.txt CHANGED
@@ -1,280 +1,280 @@
1
- GNU GENERAL PUBLIC LICENSE
2
- Version 2, June 1991
3
-
4
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
- 675 Mass Ave, Cambridge, MA 02139, USA
6
- Everyone is permitted to copy and distribute verbatim copies
7
- of this license document, but changing it is not allowed.
8
-
9
- Preamble
10
-
11
- The licenses for most software are designed to take away your
12
- freedom to share and change it. By contrast, the GNU General Public
13
- License is intended to guarantee your freedom to share and change free
14
- software--to make sure the software is free for all its users. This
15
- General Public License applies to most of the Free Software
16
- Foundation's software and to any other program whose authors commit to
17
- using it. (Some other Free Software Foundation software is covered by
18
- the GNU Library General Public License instead.) You can apply it to
19
- your programs, too.
20
-
21
- When we speak of free software, we are referring to freedom, not
22
- price. Our General Public Licenses are designed to make sure that you
23
- have the freedom to distribute copies of free software (and charge for
24
- this service if you wish), that you receive source code or can get it
25
- if you want it, that you can change the software or use pieces of it
26
- in new free programs; and that you know you can do these things.
27
-
28
- To protect your rights, we need to make restrictions that forbid
29
- anyone to deny you these rights or to ask you to surrender the rights.
30
- These restrictions translate to certain responsibilities for you if you
31
- distribute copies of the software, or if you modify it.
32
-
33
- For example, if you distribute copies of such a program, whether
34
- gratis or for a fee, you must give the recipients all the rights that
35
- you have. You must make sure that they, too, receive or can get the
36
- source code. And you must show them these terms so they know their
37
- rights.
38
-
39
- We protect your rights with two steps: (1) copyright the software, and
40
- (2) offer you this license which gives you legal permission to copy,
41
- distribute and/or modify the software.
42
-
43
- Also, for each author's protection and ours, we want to make certain
44
- that everyone understands that there is no warranty for this free
45
- software. If the software is modified by someone else and passed on, we
46
- want its recipients to know that what they have is not the original, so
47
- that any problems introduced by others will not reflect on the original
48
- authors' reputations.
49
-
50
- Finally, any free program is threatened constantly by software
51
- patents. We wish to avoid the danger that redistributors of a free
52
- program will individually obtain patent licenses, in effect making the
53
- program proprietary. To prevent this, we have made it clear that any
54
- patent must be licensed for everyone's free use or not licensed at all.
55
-
56
- The precise terms and conditions for copying, distribution and
57
- modification follow.
58
-
59
- GNU GENERAL PUBLIC LICENSE
60
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
-
62
- 0. This License applies to any program or other work which contains
63
- a notice placed by the copyright holder saying it may be distributed
64
- under the terms of this General Public License. The "Program", below,
65
- refers to any such program or work, and a "work based on the Program"
66
- means either the Program or any derivative work under copyright law:
67
- that is to say, a work containing the Program or a portion of it,
68
- either verbatim or with modifications and/or translated into another
69
- language. (Hereinafter, translation is included without limitation in
70
- the term "modification".) Each licensee is addressed as "you".
71
-
72
- Activities other than copying, distribution and modification are not
73
- covered by this License; they are outside its scope. The act of
74
- running the Program is not restricted, and the output from the Program
75
- is covered only if its contents constitute a work based on the
76
- Program (independent of having been made by running the Program).
77
- Whether that is true depends on what the Program does.
78
-
79
- 1. You may copy and distribute verbatim copies of the Program's
80
- source code as you receive it, in any medium, provided that you
81
- conspicuously and appropriately publish on each copy an appropriate
82
- copyright notice and disclaimer of warranty; keep intact all the
83
- notices that refer to this License and to the absence of any warranty;
84
- and give any other recipients of the Program a copy of this License
85
- along with the Program.
86
-
87
- You may charge a fee for the physical act of transferring a copy, and
88
- you may at your option offer warranty protection in exchange for a fee.
89
-
90
- 2. You may modify your copy or copies of the Program or any portion
91
- of it, thus forming a work based on the Program, and copy and
92
- distribute such modifications or work under the terms of Section 1
93
- above, provided that you also meet all of these conditions:
94
-
95
- a) You must cause the modified files to carry prominent notices
96
- stating that you changed the files and the date of any change.
97
-
98
- b) You must cause any work that you distribute or publish, that in
99
- whole or in part contains or is derived from the Program or any
100
- part thereof, to be licensed as a whole at no charge to all third
101
- parties under the terms of this License.
102
-
103
- c) If the modified program normally reads commands interactively
104
- when run, you must cause it, when started running for such
105
- interactive use in the most ordinary way, to print or display an
106
- announcement including an appropriate copyright notice and a
107
- notice that there is no warranty (or else, saying that you provide
108
- a warranty) and that users may redistribute the program under
109
- these conditions, and telling the user how to view a copy of this
110
- License. (Exception: if the Program itself is interactive but
111
- does not normally print such an announcement, your work based on
112
- the Program is not required to print an announcement.)
113
-
114
- These requirements apply to the modified work as a whole. If
115
- identifiable sections of that work are not derived from the Program,
116
- and can be reasonably considered independent and separate works in
117
- themselves, then this License, and its terms, do not apply to those
118
- sections when you distribute them as separate works. But when you
119
- distribute the same sections as part of a whole which is a work based
120
- on the Program, the distribution of the whole must be on the terms of
121
- this License, whose permissions for other licensees extend to the
122
- entire whole, and thus to each and every part regardless of who wrote it.
123
- Thus, it is not the intent of this section to claim rights or contest
124
- your rights to work written entirely by you; rather, the intent is to
125
- exercise the right to control the distribution of derivative or
126
- collective works based on the Program.
127
-
128
- In addition, mere aggregation of another work not based on the Program
129
- with the Program (or with a work based on the Program) on a volume of
130
- a storage or distribution medium does not bring the other work under
131
- the scope of this License.
132
-
133
- 3. You may copy and distribute the Program (or a work based on it,
134
- under Section 2) in object code or executable form under the terms of
135
- Sections 1 and 2 above provided that you also do one of the following:
136
-
137
- a) Accompany it with the complete corresponding machine-readable
138
- source code, which must be distributed under the terms of Sections
139
- 1 and 2 above on a medium customarily used for software interchange; or,
140
-
141
- b) Accompany it with a written offer, valid for at least three
142
- years, to give any third party, for a charge no more than your
143
- cost of physically performing source distribution, a complete
144
- machine-readable copy of the corresponding source code, to be
145
- distributed under the terms of Sections 1 and 2 above on a medium
146
- customarily used for software interchange; or,
147
-
148
- c) Accompany it with the information you received as to the offer
149
- to distribute corresponding source code. (This alternative is
150
- allowed only for noncommercial distribution and only if you
151
- received the program in object code or executable form with such
152
- an offer, in accord with Subsection b above.)
153
-
154
- The source code for a work means the preferred form of the work for
155
- making modifications to it. For an executable work, complete source
156
- code means all the source code for all modules it contains, plus any
157
- associated interface definition files, plus the scripts used to
158
- control compilation and installation of the executable. However, as a
159
- special exception, the source code distributed need not include
160
- anything that is normally distributed (in either source or binary
161
- form) with the major components (compiler, kernel, and so on) of the
162
- operating system on which the executable runs, unless that component
163
- itself accompanies the executable.
164
-
165
- If distribution of executable or object code is made by offering
166
- access to copy from a designated place, then offering equivalent
167
- access to copy the source code from the same place counts as
168
- distribution of the source code, even though third parties are not
169
- compelled to copy the source along with the object code.
170
-
171
- 4. You may not copy, modify, sublicense, or distribute the Program
172
- except as expressly provided under this License. Any attempt
173
- otherwise to copy, modify, sublicense or distribute the Program is
174
- void, and will automatically terminate your rights under this License.
175
- However, parties who have received copies, or rights, from you under
176
- this License will not have their licenses terminated so long as such
177
- parties remain in full compliance.
178
-
179
- 5. You are not required to accept this License, since you have not
180
- signed it. However, nothing else grants you permission to modify or
181
- distribute the Program or its derivative works. These actions are
182
- prohibited by law if you do not accept this License. Therefore, by
183
- modifying or distributing the Program (or any work based on the
184
- Program), you indicate your acceptance of this License to do so, and
185
- all its terms and conditions for copying, distributing or modifying
186
- the Program or works based on it.
187
-
188
- 6. Each time you redistribute the Program (or any work based on the
189
- Program), the recipient automatically receives a license from the
190
- original licensor to copy, distribute or modify the Program subject to
191
- these terms and conditions. You may not impose any further
192
- restrictions on the recipients' exercise of the rights granted herein.
193
- You are not responsible for enforcing compliance by third parties to
194
- this License.
195
-
196
- 7. If, as a consequence of a court judgment or allegation of patent
197
- infringement or for any other reason (not limited to patent issues),
198
- conditions are imposed on you (whether by court order, agreement or
199
- otherwise) that contradict the conditions of this License, they do not
200
- excuse you from the conditions of this License. If you cannot
201
- distribute so as to satisfy simultaneously your obligations under this
202
- License and any other pertinent obligations, then as a consequence you
203
- may not distribute the Program at all. For example, if a patent
204
- license would not permit royalty-free redistribution of the Program by
205
- all those who receive copies directly or indirectly through you, then
206
- the only way you could satisfy both it and this License would be to
207
- refrain entirely from distribution of the Program.
208
-
209
- If any portion of this section is held invalid or unenforceable under
210
- any particular circumstance, the balance of the section is intended to
211
- apply and the section as a whole is intended to apply in other
212
- circumstances.
213
-
214
- It is not the purpose of this section to induce you to infringe any
215
- patents or other property right claims or to contest validity of any
216
- such claims; this section has the sole purpose of protecting the
217
- integrity of the free software distribution system, which is
218
- implemented by public license practices. Many people have made
219
- generous contributions to the wide range of software distributed
220
- through that system in reliance on consistent application of that
221
- system; it is up to the author/donor to decide if he or she is willing
222
- to distribute software through any other system and a licensee cannot
223
- impose that choice.
224
-
225
- This section is intended to make thoroughly clear what is believed to
226
- be a consequence of the rest of this License.
227
-
228
- 8. If the distribution and/or use of the Program is restricted in
229
- certain countries either by patents or by copyrighted interfaces, the
230
- original copyright holder who places the Program under this License
231
- may add an explicit geographical distribution limitation excluding
232
- those countries, so that distribution is permitted only in or among
233
- countries not thus excluded. In such case, this License incorporates
234
- the limitation as if written in the body of this License.
235
-
236
- 9. The Free Software Foundation may publish revised and/or new versions
237
- of the General Public License from time to time. Such new versions will
238
- be similar in spirit to the present version, but may differ in detail to
239
- address new problems or concerns.
240
-
241
- Each version is given a distinguishing version number. If the Program
242
- specifies a version number of this License which applies to it and "any
243
- later version", you have the option of following the terms and conditions
244
- either of that version or of any later version published by the Free
245
- Software Foundation. If the Program does not specify a version number of
246
- this License, you may choose any version ever published by the Free Software
247
- Foundation.
248
-
249
- 10. If you wish to incorporate parts of the Program into other free
250
- programs whose distribution conditions are different, write to the author
251
- to ask for permission. For software which is copyrighted by the Free
252
- Software Foundation, write to the Free Software Foundation; we sometimes
253
- make exceptions for this. Our decision will be guided by the two goals
254
- of preserving the free status of all derivatives of our free software and
255
- of promoting the sharing and reuse of software generally.
256
-
257
- NO WARRANTY
258
-
259
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
260
- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
261
- OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
262
- PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
263
- OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
264
- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
265
- TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
266
- PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
267
- REPAIR OR CORRECTION.
268
-
269
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
270
- WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
271
- REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
272
- INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
273
- OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
274
- TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
275
- YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
276
- PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
277
- POSSIBILITY OF SUCH DAMAGES.
278
-
279
- END OF TERMS AND CONDITIONS
280
-
1
+ GNU GENERAL PUBLIC LICENSE
2
+ Version 2, June 1991
3
+
4
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
5
+ 675 Mass Ave, Cambridge, MA 02139, USA
6
+ Everyone is permitted to copy and distribute verbatim copies
7
+ of this license document, but changing it is not allowed.
8
+
9
+ Preamble
10
+
11
+ The licenses for most software are designed to take away your
12
+ freedom to share and change it. By contrast, the GNU General Public
13
+ License is intended to guarantee your freedom to share and change free
14
+ software--to make sure the software is free for all its users. This
15
+ General Public License applies to most of the Free Software
16
+ Foundation's software and to any other program whose authors commit to
17
+ using it. (Some other Free Software Foundation software is covered by
18
+ the GNU Library General Public License instead.) You can apply it to
19
+ your programs, too.
20
+
21
+ When we speak of free software, we are referring to freedom, not
22
+ price. Our General Public Licenses are designed to make sure that you
23
+ have the freedom to distribute copies of free software (and charge for
24
+ this service if you wish), that you receive source code or can get it
25
+ if you want it, that you can change the software or use pieces of it
26
+ in new free programs; and that you know you can do these things.
27
+
28
+ To protect your rights, we need to make restrictions that forbid
29
+ anyone to deny you these rights or to ask you to surrender the rights.
30
+ These restrictions translate to certain responsibilities for you if you
31
+ distribute copies of the software, or if you modify it.
32
+
33
+ For example, if you distribute copies of such a program, whether
34
+ gratis or for a fee, you must give the recipients all the rights that
35
+ you have. You must make sure that they, too, receive or can get the
36
+ source code. And you must show them these terms so they know their
37
+ rights.
38
+
39
+ We protect your rights with two steps: (1) copyright the software, and
40
+ (2) offer you this license which gives you legal permission to copy,
41
+ distribute and/or modify the software.
42
+
43
+ Also, for each author's protection and ours, we want to make certain
44
+ that everyone understands that there is no warranty for this free
45
+ software. If the software is modified by someone else and passed on, we
46
+ want its recipients to know that what they have is not the original, so
47
+ that any problems introduced by others will not reflect on the original
48
+ authors' reputations.
49
+
50
+ Finally, any free program is threatened constantly by software
51
+ patents. We wish to avoid the danger that redistributors of a free
52
+ program will individually obtain patent licenses, in effect making the
53
+ program proprietary. To prevent this, we have made it clear that any
54
+ patent must be licensed for everyone's free use or not licensed at all.
55
+
56
+ The precise terms and conditions for copying, distribution and
57
+ modification follow.
58
+
59
+ GNU GENERAL PUBLIC LICENSE
60
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61
+
62
+ 0. This License applies to any program or other work which contains
63
+ a notice placed by the copyright holder saying it may be distributed
64
+ under the terms of this General Public License. The "Program", below,
65
+ refers to any such program or work, and a "work based on the Program"
66
+ means either the Program or any derivative work under copyright law:
67
+ that is to say, a work containing the Program or a portion of it,
68
+ either verbatim or with modifications and/or translated into another
69
+ language. (Hereinafter, translation is included without limitation in
70
+ the term "modification".) Each licensee is addressed as "you".
71
+
72
+ Activities other than copying, distribution and modification are not
73
+ covered by this License; they are outside its scope. The act of
74
+ running the Program is not restricted, and the output from the Program
75
+ is covered only if its contents constitute a work based on the
76
+ Program (independent of having been made by running the Program).
77
+ Whether that is true depends on what the Program does.
78
+
79
+ 1. You may copy and distribute verbatim copies of the Program's
80
+ source code as you receive it, in any medium, provided that you
81
+ conspicuously and appropriately publish on each copy an appropriate
82
+ copyright notice and disclaimer of warranty; keep intact all the
83
+ notices that refer to this License and to the absence of any warranty;
84
+ and give any other recipients of the Program a copy of this License
85
+ along with the Program.
86
+
87
+ You may charge a fee for the physical act of transferring a copy, and
88
+ you may at your option offer warranty protection in exchange for a fee.
89
+
90
+ 2. You may modify your copy or copies of the Program or any portion
91
+ of it, thus forming a work based on the Program, and copy and
92
+ distribute such modifications or work under the terms of Section 1
93
+ above, provided that you also meet all of these conditions:
94
+
95
+ a) You must cause the modified files to carry prominent notices
96
+ stating that you changed the files and the date of any change.
97
+
98
+ b) You must cause any work that you distribute or publish, that in
99
+ whole or in part contains or is derived from the Program or any
100
+ part thereof, to be licensed as a whole at no charge to all third
101
+ parties under the terms of this License.
102
+
103
+ c) If the modified program normally reads commands interactively
104
+ when run, you must cause it, when started running for such
105
+ interactive use in the most ordinary way, to print or display an
106
+ announcement including an appropriate copyright notice and a
107
+ notice that there is no warranty (or else, saying that you provide
108
+ a warranty) and that users may redistribute the program under
109
+ these conditions, and telling the user how to view a copy of this
110
+ License. (Exception: if the Program itself is interactive but
111
+ does not normally print such an announcement, your work based on
112
+ the Program is not required to print an announcement.)
113
+
114
+ These requirements apply to the modified work as a whole. If
115
+ identifiable sections of that work are not derived from the Program,
116
+ and can be reasonably considered independent and separate works in
117
+ themselves, then this License, and its terms, do not apply to those
118
+ sections when you distribute them as separate works. But when you
119
+ distribute the same sections as part of a whole which is a work based
120
+ on the Program, the distribution of the whole must be on the terms of
121
+ this License, whose permissions for other licensees extend to the
122
+ entire whole, and thus to each and every part regardless of who wrote it.
123
+ Thus, it is not the intent of this section to claim rights or contest
124
+ your rights to work written entirely by you; rather, the intent is to
125
+ exercise the right to control the distribution of derivative or
126
+ collective works based on the Program.
127
+
128
+ In addition, mere aggregation of another work not based on the Program
129
+ with the Program (or with a work based on the Program) on a volume of
130
+ a storage or distribution medium does not bring the other work under
131
+ the scope of this License.
132
+
133
+ 3. You may copy and distribute the Program (or a work based on it,
134
+ under Section 2) in object code or executable form under the terms of
135
+ Sections 1 and 2 above provided that you also do one of the following:
136
+
137
+ a) Accompany it with the complete corresponding machine-readable
138
+ source code, which must be distributed under the terms of Sections
139
+ 1 and 2 above on a medium customarily used for software interchange; or,
140
+
141
+ b) Accompany it with a written offer, valid for at least three
142
+ years, to give any third party, for a charge no more than your
143
+ cost of physically performing source distribution, a complete
144
+ machine-readable copy of the corresponding source code, to be
145
+ distributed under the terms of Sections 1 and 2 above on a medium
146
+ customarily used for software interchange; or,
147
+
148
+ c) Accompany it with the information you received as to the offer
149
+ to distribute corresponding source code. (This alternative is
150
+ allowed only for noncommercial distribution and only if you
151
+ received the program in object code or executable form with such
152
+ an offer, in accord with Subsection b above.)
153
+
154
+ The source code for a work means the preferred form of the work for
155
+ making modifications to it. For an executable work, complete source
156
+ code means all the source code for all modules it contains, plus any
157
+ associated interface definition files, plus the scripts used to
158
+ control compilation and installation of the executable. However, as a
159
+ special exception, the source code distributed need not include
160
+ anything that is normally distributed (in either source or binary
161
+ form) with the major components (compiler, kernel, and so on) of the
162
+ operating system on which the executable runs, unless that component
163
+ itself accompanies the executable.
164
+
165
+ If distribution of executable or object code is made by offering
166
+ access to copy from a designated place, then offering equivalent
167
+ access to copy the source code from the same place counts as
168
+ distribution of the source code, even though third parties are not
169
+ compelled to copy the source along with the object code.
170
+
171
+ 4. You may not copy, modify, sublicense, or distribute the Program
172
+ except as expressly provided under this License. Any attempt
173
+ otherwise to copy, modify, sublicense or distribute the Program is
174
+ void, and will automatically terminate your rights under this License.
175
+ However, parties who have received copies, or rights, from you under
176
+ this License will not have their licenses terminated so long as such
177
+ parties remain in full compliance.
178
+
179
+ 5. You are not required to accept this License, since you have not
180
+ signed it. However, nothing else grants you permission to modify or
181
+ distribute the Program or its derivative works. These actions are
182
+ prohibited by law if you do not accept this License. Therefore, by
183
+ modifying or distributing the Program (or any work based on the
184
+ Program), you indicate your acceptance of this License to do so, and
185
+ all its terms and conditions for copying, distributing or modifying
186
+ the Program or works based on it.
187
+
188
+ 6. Each time you redistribute the Program (or any work based on the
189
+ Program), the recipient automatically receives a license from the
190
+ original licensor to copy, distribute or modify the Program subject to
191
+ these terms and conditions. You may not impose any further
192
+ restrictions on the recipients' exercise of the rights granted herein.
193
+ You are not responsible for enforcing compliance by third parties to
194
+ this License.
195
+
196
+ 7. If, as a consequence of a court judgment or allegation of patent
197
+ infringement or for any other reason (not limited to patent issues),
198
+ conditions are imposed on you (whether by court order, agreement or
199
+ otherwise) that contradict the conditions of this License, they do not
200
+ excuse you from the conditions of this License. If you cannot
201
+ distribute so as to satisfy simultaneously your obligations under this
202
+ License and any other pertinent obligations, then as a consequence you
203
+ may not distribute the Program at all. For example, if a patent
204
+ license would not permit royalty-free redistribution of the Program by
205
+ all those who receive copies directly or indirectly through you, then
206
+ the only way you could satisfy both it and this License would be to
207
+ refrain entirely from distribution of the Program.
208
+
209
+ If any portion of this section is held invalid or unenforceable under
210
+ any particular circumstance, the balance of the section is intended to
211
+ apply and the section as a whole is intended to apply in other
212
+ circumstances.
213
+
214
+ It is not the purpose of this section to induce you to infringe any
215
+ patents or other property right claims or to contest validity of any
216
+ such claims; this section has the sole purpose of protecting the
217
+ integrity of the free software distribution system, which is
218
+ implemented by public license practices. Many people have made
219
+ generous contributions to the wide range of software distributed
220
+ through that system in reliance on consistent application of that
221
+ system; it is up to the author/donor to decide if he or she is willing
222
+ to distribute software through any other system and a licensee cannot
223
+ impose that choice.
224
+
225
+ This section is intended to make thoroughly clear what is believed to
226
+ be a consequence of the rest of this License.
227
+
228
+ 8. If the distribution and/or use of the Program is restricted in
229
+ certain countries either by patents or by copyrighted interfaces, the
230
+ original copyright holder who places the Program under this License
231
+ may add an explicit geographical distribution limitation excluding
232
+ those countries, so that distribution is permitted only in or among
233
+ countries not thus excluded. In such case, this License incorporates
234
+ the limitation as if written in the body of this License.
235
+
236
+ 9. The Free Software Foundation may publish revised and/or new versions
237
+ of the General Public License from time to time. Such new versions will
238
+ be similar in spirit to the present version, but may differ in detail to
239
+ address new problems or concerns.
240
+
241
+ Each version is given a distinguishing version number. If the Program
242
+ specifies a version number of this License which applies to it and "any
243
+ later version", you have the option of following the terms and conditions
244
+ either of that version or of any later version published by the Free
245
+ Software Foundation. If the Program does not specify a version number of
246
+ this License, you may choose any version ever published by the Free Software
247
+ Foundation.
248
+
249
+ 10. If you wish to incorporate parts of the Program into other free
250
+ programs whose distribution conditions are different, write to the author
251
+ to ask for permission. For software which is copyrighted by the Free
252
+ Software Foundation, write to the Free Software Foundation; we sometimes
253
+ make exceptions for this. Our decision will be guided by the two goals
254
+ of preserving the free status of all derivatives of our free software and
255
+ of promoting the sharing and reuse of software generally.
256
+
257
+ NO WARRANTY
258
+
259
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
260
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
261
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
262
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
263
+ OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
264
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
265
+ TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
266
+ PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
267
+ REPAIR OR CORRECTION.
268
+
269
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
270
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
271
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
272
+ INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
273
+ OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
274
+ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
275
+ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
276
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
277
+ POSSIBILITY OF SUCH DAMAGES.
278
+
279
+ END OF TERMS AND CONDITIONS
280
+
readme.txt CHANGED
@@ -1,121 +1,125 @@
1
- === Plugin Name ===
2
- Contributors: apeatling, johnjamesjacoby, MrMaz, DJPaul, boonebgorges
3
- Tags: buddypress, social networking, activity, profiles, messaging, friends, groups, forums, microblogging, twitter, facebook, social, community, networks, networking, cms
4
- Requires at least: 3.3
5
- Tested up to: 3.3
6
- Stable tag: 1.5.4
7
-
8
- Social networking in a box. Build a social network for your company, school, sports team or niche community.
9
-
10
- == Description ==
11
-
12
- BuddyPress lets users register on your site and start creating profiles, posting messages, making connections, creating and interacting in groups and much more. A social network in a box, BuddyPress lets you build a social network for your company, school, sports team or niche community.
13
-
14
- <h4>Try the Demo</h4>
15
-
16
- If you're interested in seeing what a default installation of BuddyPress has to offer, try out the BuddyPress Test Drive! This site is a community of BuddyPress users looking to try out and discuss the latest features of BuddyPress.
17
-
18
- <a href="http://testbp.org/">BuddyPress Test Drive</a>
19
-
20
- <h4>Who's Using BuddyPress?</h4>
21
-
22
- More and more BuddyPress powered sites are popping up. You can take a look at some of the best sites on the <a href="http://buddypress.org/showcase/">BuddyPress Showcase</a>.
23
-
24
- <h4>Plugins: Adding So Much More</h4>
25
-
26
- BuddyPress boasts an ever growing array of new features developed by an awesome plugin development community. There are more than 330 BuddyPress plugins available, and the list is growing every day. Check out our list of <a href="http://buddypress.org/extend/recommended-plugins/">popular and recommended plugins</a>; for a full list of plugins, please visit the <a href="http://buddypress.org/extend/plugins/">BuddyPress.org plugins page</a>. You can install any of these plugins automatically, using the plugin installer on your WordPress Dashboard.
27
-
28
- <h4>More Information</h4>
29
-
30
- Visit the <a href="http://buddypress.org/">BuddyPress website</a> for more information about BuddyPress.
31
-
32
- == Installation ==
33
-
34
- You can download and install BuddyPress using the built in WordPress plugin installer. If you download BuddyPress manually, make sure it is uploaded to "/wp-content/plugins/buddypress/".
35
-
36
- Activate BuddyPress in the "Plugins" admin panel using the "Activate" link. You'll then see a message asking you to complete the BuddyPress Installation Wizard, which will guide you through configuring your site for BuddyPress.
37
-
38
- --- Discussion Forums ---
39
-
40
- BuddyPress includes full support for discussion forums. Each group created on your site can have its own forum. If you'd like to enable this feature, after completing the Installation Wizard, visit the "Forums Setup" item under the "BuddyPress" menu in your WordPress admin area, and follow the on-screen instructions.
41
-
42
- == Frequently Asked Questions ==
43
-
44
- = Can I use my existing WordPress theme? =
45
-
46
- Of course! Once you've installed and activated BuddyPress, the Installation Wizard will guide you through the available theme options. You'll be given the option of installing the <a href="http://wordpress.org/extend/plugins/bp-template-pack/">BuddyPress Template Pack</a>, which will help you add BuddyPress compatibility to your existing theme.
47
-
48
- Be sure to also try out the default theme bundled with BuddyPress. It provides all the awesome features of a standard WordPress blog, but also integrates BuddyPress's features in a seamless and beautiful way. The BuddyPress Default theme is a snap to customize, with full support for custom headers and backgrounds and multiple widget areas. It also makes a great starting point for your own <a href="http://codex.buddypress.org/how-to-guides/building-a-buddypress-child-theme/">child theme</a>.
49
-
50
- = Will this work on WordPress multisite? =
51
-
52
- Yes! If your WordPress site has multisite enabled, BuddyPress will support the global tracking of blogs, posts and comments.
53
-
54
- = Where can I get support? =
55
-
56
- The support forums can be found at <a href="http://buddypress.org/forums/">http://buddypress.org/forums/</a>.
57
-
58
- = Where can I find documentation? =
59
-
60
- The documentation codex can be found at <a href="http://codex.buddypress.org/">http://codex.buddypress.org/</a>.
61
-
62
- = Where can I report a bug? =
63
-
64
- Report bugs and participate in development at <a href="http://buddypress.trac.wordpress.org/">http://buddypress.trac.wordpress.org</a>.
65
-
66
- = Where can I get the bleeding edge version of BuddyPress? =
67
-
68
- Check out the development trunk of BuddyPress via Subversion, from <a href="http://buddypress.svn.wordpress.org/trunk/">http://buddypress.svn.wordpress.org/trunk/</a>
69
-
70
- == Screenshots ==
71
-
72
- 1. **Activity Streams** - Global, personal and group activity streams with threaded commenting, direct posting, favoriting and @mentions. All with full RSS feeds and email notification support.
73
- 2. **Extended Profiles** - Fully editable rofile fields allow you to define the fields users can fill in to describe themselves. Tailor profile fields to suit your audience.
74
- 3. **Extensible Groups** - Powerful public, private or hidden groups allow your users to break the discussion down into specific topics. Extend groups with your own custom features using the group extension API.
75
- 4. **Friend Connections** - Let your users make connections so they can track the activity of others, or filter on only those users they care about the most.
76
- 5. **Private Messaging** - Private messaging will allow your users to talk to each other directly and in private. Not just limited to one-on-one discussions, your users can send messages to multiple recipients.
77
- 6. **Discussion Forums** - Full powered discussion forums built directly into groups allow for more conventional in-depth conversations.
78
- 7. **WordPress Blogging** - Allow your users to start their own WordPress sites (using WordPress's Multisite feature), and track posts and comments from across your blog network in the activity stream.
79
- 8. **User Settings** - Give your users complete control over profile and notification settings. Settings are fully integrated into your theme, and can be disabled by the administrator.
80
-
81
- == Languages ==
82
-
83
- BuddyPress is available in more than 20 languages. For more information, check out the <a href="http://codex.buddypress.org/getting-started/translations/">translation page</a> on the BuddyPress Codex.
84
-
85
- == Upgrade Notice ==
86
-
87
- = 1.5.4 =
88
- * Fix bug allowing group members that are friends to be invited twice
89
- * Fix unpublished page preview when page is root component
90
-
91
- = 1.5.3.1 =
92
- * Fixes bug related to password changes
93
- * See http://codex.buddypress.org/releases/version-1-5-3-1/
94
-
95
- = 1.5.3 =
96
- * Fixes 6 minor bugs/notices
97
- * See http://codex.buddypress.org/releases/version-1-5-3/
98
-
99
- = 1.5.2 =
100
- * Compatibility with WordPress 3.3
101
- * Fixes 10 minor bugs/notices
102
-
103
- = 1.5.1 =
104
- * Fixes over 25 issues
105
-
106
- = 1.5 =
107
- See: http://codex.buddypress.org/releases/version-1-5/
108
-
109
- = 1.2.9 =
110
- * Compatibility with WordPress 3.2
111
-
112
- = 1.2.8 =
113
- * Compatibility with WordPress 3.1
114
-
115
- = 1.2.7 =
116
- * Fixes over 10 bugs.
117
-
118
- == Changelog ==
119
-
120
- See http://codex.buddypress.org/releases/version-1-5/ for 1.5.
121
- See http://buddypress.org/about/release-history/ for all other versions.
 
 
 
 
1
+ === Plugin Name ===
2
+ Contributors: apeatling, johnjamesjacoby, MrMaz, DJPaul, boonebgorges
3
+ Tags: buddypress, social networking, activity, profiles, messaging, friends, groups, forums, microblogging, twitter, facebook, social, community, networks, networking, cms
4
+ Requires at least: 3.3
5
+ Tested up to: 3.3.1
6
+ Stable tag: 1.5.5
7
+
8
+ Social networking in a box. Build a social network for your company, school, sports team or niche community.
9
+
10
+ == Description ==
11
+
12
+ BuddyPress lets users register on your site and start creating profiles, posting messages, making connections, creating and interacting in groups and much more. A social network in a box, BuddyPress lets you build a social network for your company, school, sports team or niche community.
13
+
14
+ <h4>Try the Demo</h4>
15
+
16
+ If you're interested in seeing what a default installation of BuddyPress has to offer, try out the BuddyPress Test Drive! This site is a community of BuddyPress users looking to try out and discuss the latest features of BuddyPress.
17
+
18
+ <a href="http://testbp.org/">BuddyPress Test Drive</a>
19
+
20
+ <h4>Who's Using BuddyPress?</h4>
21
+
22
+ More and more BuddyPress powered sites are popping up. You can take a look at some of the best sites on the <a href="http://buddypress.org/showcase/">BuddyPress Showcase</a>.
23
+
24
+ <h4>Plugins: Adding So Much More</h4>
25
+
26
+ BuddyPress boasts an ever growing array of new features developed by an awesome plugin development community. There are more than 330 BuddyPress plugins available, and the list is growing every day. Check out our list of <a href="http://buddypress.org/extend/recommended-plugins/">popular and recommended plugins</a>; for a full list of plugins, please visit the <a href="http://buddypress.org/extend/plugins/">BuddyPress.org plugins page</a>. You can install any of these plugins automatically, using the plugin installer on your WordPress Dashboard.
27
+
28
+ <h4>More Information</h4>
29
+
30
+ Visit the <a href="http://buddypress.org/">BuddyPress website</a> for more information about BuddyPress.
31
+
32
+ == Installation ==
33
+
34
+ You can download and install BuddyPress using the built in WordPress plugin installer. If you download BuddyPress manually, make sure it is uploaded to "/wp-content/plugins/buddypress/".
35
+
36
+ Activate BuddyPress in the "Plugins" admin panel using the "Activate" link. You'll then see a message asking you to complete the BuddyPress Installation Wizard, which will guide you through configuring your site for BuddyPress.
37
+
38
+ --- Discussion Forums ---
39
+
40
+ BuddyPress includes full support for discussion forums. Each group created on your site can have its own forum. If you'd like to enable this feature, after completing the Installation Wizard, visit the "Forums Setup" item under the "BuddyPress" menu in your WordPress admin area, and follow the on-screen instructions.
41
+
42
+ == Frequently Asked Questions ==
43
+
44
+ = Can I use my existing WordPress theme? =
45
+
46
+ Of course! Once you've installed and activated BuddyPress, the Installation Wizard will guide you through the available theme options. You'll be given the option of installing the <a href="http://wordpress.org/extend/plugins/bp-template-pack/">BuddyPress Template Pack</a>, which will help you add BuddyPress compatibility to your existing theme.
47
+
48
+ Be sure to also try out the default theme bundled with BuddyPress. It provides all the awesome features of a standard WordPress blog, but also integrates BuddyPress's features in a seamless and beautiful way. The BuddyPress Default theme is a snap to customize, with full support for custom headers and backgrounds and multiple widget areas. It also makes a great starting point for your own <a href="http://codex.buddypress.org/how-to-guides/building-a-buddypress-child-theme/">child theme</a>.
49
+
50
+ = Will this work on WordPress multisite? =
51
+
52
+ Yes! If your WordPress site has multisite enabled, BuddyPress will support the global tracking of blogs, posts and comments.
53
+
54
+ = Where can I get support? =
55
+
56
+ The support forums can be found at <a href="http://buddypress.org/forums/">http://buddypress.org/forums/</a>.
57
+
58
+ = Where can I find documentation? =
59
+
60
+ The documentation codex can be found at <a href="http://codex.buddypress.org/">http://codex.buddypress.org/</a>.
61
+
62
+ = Where can I report a bug? =
63
+
64
+ Report bugs and participate in development at <a href="http://buddypress.trac.wordpress.org/">http://buddypress.trac.wordpress.org</a>.
65
+
66
+ = Where can I get the bleeding edge version of BuddyPress? =
67
+
68
+ Check out the development trunk of BuddyPress via Subversion, from <a href="http://buddypress.svn.wordpress.org/trunk/">http://buddypress.svn.wordpress.org/trunk/</a>
69
+
70
+ == Screenshots ==
71
+
72
+ 1. **Activity Streams** - Global, personal and group activity streams with threaded commenting, direct posting, favoriting and @mentions. All with full RSS feeds and email notification support.
73
+ 2. **Extended Profiles** - Fully editable rofile fields allow you to define the fields users can fill in to describe themselves. Tailor profile fields to suit your audience.
74
+ 3. **Extensible Groups** - Powerful public, private or hidden groups allow your users to break the discussion down into specific topics. Extend groups with your own custom features using the group extension API.
75
+ 4. **Friend Connections** - Let your users make connections so they can track the activity of others, or filter on only those users they care about the most.
76
+ 5. **Private Messaging** - Private messaging will allow your users to talk to each other directly and in private. Not just limited to one-on-one discussions, your users can send messages to multiple recipients.
77
+ 6. **Discussion Forums** - Full powered discussion forums built directly into groups allow for more conventional in-depth conversations.
78
+ 7. **WordPress Blogging** - Allow your users to start their own WordPress sites (using WordPress's Multisite feature), and track posts and comments from across your blog network in the activity stream.
79
+ 8. **User Settings** - Give your users complete control over profile and notification settings. Settings are fully integrated into your theme, and can be disabled by the administrator.
80
+
81
+ == Languages ==
82
+
83
+ BuddyPress is available in more than 20 languages. For more information, check out the <a href="http://codex.buddypress.org/getting-started/translations/">translation page</a> on the BuddyPress Codex.
84
+
85
+ == Upgrade Notice ==
86
+
87
+ = 1.5.5 =
88
+ * Security upgrade
89
+ * Fixes over 10 bugs
90
+
91
+ = 1.5.4 =
92
+ * Fix bug allowing group members that are friends to be invited twice
93
+ * Fix unpublished page preview when page is root component
94
+
95
+ = 1.5.3.1 =
96
+ * Fixes bug related to password changes
97
+ * See http://codex.buddypress.org/releases/version-1-5-3-1/
98
+
99
+ = 1.5.3 =
100
+ * Fixes 6 minor bugs/notices
101
+ * See http://codex.buddypress.org/releases/version-1-5-3/
102
+
103
+ = 1.5.2 =
104
+ * Compatibility with WordPress 3.3
105
+ * Fixes 10 minor bugs/notices
106
+
107
+ = 1.5.1 =
108
+ * Fixes over 25 issues
109
+
110
+ = 1.5 =
111
+ See: http://codex.buddypress.org/releases/version-1-5/
112
+
113
+ = 1.2.9 =
114
+ * Compatibility with WordPress 3.2
115
+
116
+ = 1.2.8 =
117
+ * Compatibility with WordPress 3.1
118
+
119
+ = 1.2.7 =
120
+ * Fixes over 10 bugs.
121
+
122
+ == Changelog ==
123
+
124
+ See http://codex.buddypress.org/releases/version-1-5/ for 1.5.
125
+ See http://buddypress.org/about/release-history/ for all other versions.