Ticket #6095: buddypress-2.1.1-customstatus.patch
File buddypress-2.1.1-customstatus.patch, 57.9 KB (added by , 10 years ago) |
---|
-
buddypress/bp-groups/bp-groups-actions.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-groups/bp-groups-actions.php plugins/buddypress/bp-groups/bp-groups-actions.php
old new 28 28 $user_has_access = $current_group->user_has_access; 29 29 $no_access_args = array(); 30 30 31 if ( ! $user_has_access && 'hidden' !== $current_group->status) {31 if ( ! $user_has_access && !groups_hidden_group($current_group->status) ) { 32 32 // Always allow access to home and request-membership 33 33 if ( bp_is_current_action( 'home' ) || bp_is_current_action( 'request-membership' ) ) { 34 34 $user_has_access = true; … … 79 79 // Hidden groups should return a 404 for non-members. 80 80 // Unset the current group so that you're not redirected 81 81 // to the default group tab 82 if ( 'hidden' == $current_group->status) {82 if ( groups_hidden_group($current_group->status) ) { 83 83 buddypress()->groups->current_group = 0; 84 84 buddypress()->is_single_item = false; 85 85 bp_do_404(); … … 162 162 163 163 $new_group_id = isset( $bp->groups->new_group_id ) ? $bp->groups->new_group_id : 0; 164 164 165 if ( !$bp->groups->new_group_id = groups_create_group( array( 'group_id' => $new_group_id, 'name' => $_POST['group-name'], 'description' => $_POST['group-desc'], 'slug' => groups_check_slug( sanitize_title( esc_attr( $_POST['group-name'] ) ) ), 'date_created' => bp_core_current_time(), 'status' => 'public') ) ) {165 if ( !$bp->groups->new_group_id = groups_create_group( array( 'group_id' => $new_group_id, 'name' => $_POST['group-name'], 'description' => $_POST['group-desc'], 'slug' => groups_check_slug( sanitize_title( esc_attr( $_POST['group-name'] ) ) ), 'date_created' => bp_core_current_time(), 'status' => groups_default_creation_status() ) ) ) { 166 166 bp_core_add_message( __( 'There was an error saving group details, please try again.', 'buddypress' ), 'error' ); 167 167 bp_core_redirect( bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/create/step/' . bp_get_groups_current_create_step() . '/' ); 168 168 } 169 169 } 170 170 171 171 if ( 'group-settings' == bp_get_groups_current_create_step() ) { 172 $group_status = 'public';173 172 $group_enable_forum = 1; 174 173 175 174 if ( !isset($_POST['group-show-forum']) ) { … … 181 180 } 182 181 } 183 182 184 if ( 'private' == $_POST['group-status'])185 $group_status = 'private';186 else if ( 'hidden' == $_POST['group-status'] )187 $group_status = 'hidden';183 if ( groups_is_valid_status( $_POST['group-status'] ) ) 184 $group_status = $_POST['group-status']; 185 else 186 $group_status = groups_default_creation_status(); 188 187 189 188 if ( !$bp->groups->new_group_id = groups_create_group( array( 'group_id' => $bp->groups->new_group_id, 'status' => $group_status, 'enable_forum' => $group_enable_forum ) ) ) { 190 189 bp_core_add_message( __( 'There was an error saving group details, please try again.', 'buddypress' ), 'error' ); … … 333 332 if ( !groups_is_user_member( bp_loggedin_user_id(), $bp->groups->current_group->id ) && !groups_is_user_banned( bp_loggedin_user_id(), $bp->groups->current_group->id ) ) { 334 333 335 334 // User wants to join a group that is not public 336 if ( $bp->groups->current_group->status != 'public') {335 if ( groups_private_group($bp->groups->current_group->status) ) { 337 336 if ( !groups_check_user_has_invite( bp_loggedin_user_id(), $bp->groups->current_group->id ) ) { 338 337 bp_core_add_message( __( 'There was an error joining the group.', 'buddypress' ), 'error' ); 339 338 bp_core_redirect( bp_get_group_permalink( $bp->groups->current_group ) ); … … 391 390 392 391 $redirect = bp_get_group_permalink( groups_get_current_group() ); 393 392 394 if ( 'hidden' == $bp->groups->current_group->status) {393 if ( groups_hidden_group($bp->groups->current_group->status) ) { 395 394 $redirect = trailingslashit( bp_loggedin_user_domain() . bp_get_groups_slug() ); 396 395 } 397 396 -
buddypress/bp-groups/bp-groups-adminbar.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-groups/bp-groups-adminbar.php plugins/buddypress/bp-groups/bp-groups-adminbar.php
old new 88 88 ) ); 89 89 90 90 // Group Admin > Membership Requests 91 if ( bp_get_group_status( $bp->groups->current_group ) == 'private') {91 if ( groups_membership_request_moderated( $bp->groups->current_group->status ) ) { 92 92 $wp_admin_bar->add_menu( array( 93 93 'parent' => $bp->group_admin_menu_id, 94 94 'id' => 'membership-requests', -
buddypress/bp-groups/bp-groups-admin.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-groups/bp-groups-admin.php plugins/buddypress/bp-groups/bp-groups-admin.php
old new 679 679 * @param object $item Information about the current group. 680 680 */ 681 681 function bp_groups_admin_edit_metabox_settings( $item ) { 682 global $bp; 682 683 683 684 $invite_status = groups_get_groupmeta( $item->id, 'invite_status' ); ?> 684 685 … … 693 694 <legend><?php _e( 'Privacy', 'buddypress' ); ?></legend> 694 695 695 696 <ul> 696 <li><input type="radio" name="group-status" id="bp-group-status-public" value="public" <?php checked( $item->status, 'public' ) ?> /><label for="bp-group-status-public"><?php _e( 'Public', 'buddypress' ) ?></label></li> 697 <li><input type="radio" name="group-status" id="bp-group-status-private" value="private" <?php checked( $item->status, 'private' ) ?> /><label for="bp-group-status-private"><?php _e( 'Private', 'buddypress' ) ?></label></li> 698 <li><input type="radio" name="group-status" id="bp-group-status-hidden" value="hidden" <?php checked( $item->status, 'hidden' ) ?> /><label for="bp-group-status-hidden"><?php _e( 'Hidden', 'buddypress' ) ?></label></li> 697 <?php 698 if ( is_super_admin() ) { 699 foreach ( $bp->groups->valid_status as $status ) { ?> 700 <li><input type="radio" name="group-status" id="bp-group-status-<?php echo sanitize_html_class( $status, 'x' ); ?>" value="<?php echo esc_attr( $status ); ?>" <?php checked( $item->status, $status ) ?> /><label for="bp-group-status-<?php echo sanitize_html_class( $status, 'x' ); ?>"><?php _e( ucfirst( $status ), 'buddypress' ) ?></label></li> 701 <?php 702 } 703 } elseif ( !groups_is_valid_creation_status( $item->status )) { ?> 704 <li><input type="radio" name="group-status" id="bp-group-status-<?php echo sanitize_html_class( $item->status, 'x' ); ?>" value="<?php echo esc_attr( $item->status ); ?>" checked="checked" /><label for="bp-group-status-<?php echo sanitize_html_class( $status, 'x' ); ?>"><?php _e( ucfirst( $status ), 'buddypress' ) ?></label></li> 705 <?php 706 } else { 707 foreach ( $bp->groups->valid_creation_status as $status ) { ?> 708 <li><input type="radio" name="group-status" id="bp-group-status-<?php echo sanitize_html_class( $status, 'x' ); ?>" value="<?php echo esc_attr( $status ); ?>" <?php checked( $item->status, $status ) ?> /><label for="bp-group-status-<?php echo sanitize_html_class( $status, 'x' ); ?>"><?php _e( ucfirst( $status ), 'buddypress' ) ?></label></li> 709 <?php 710 } 711 } 712 ?> 699 713 </ul> 700 714 </fieldset> 701 715 </div> … … 1124 1138 $include_id = (int) $_REQUEST['gid']; 1125 1139 1126 1140 // Set the current view 1127 if ( isset( $_GET['group_status'] ) && in_array( $_GET['group_status'], array( 'public', 'private', 'hidden' )) ) {1141 if ( isset( $_GET['group_status'] ) && groups_is_valid_status( $_GET['group_status'] ) ) { 1128 1142 $this->view = $_GET['group_status']; 1129 1143 } 1130 1144 … … 1272 1286 <li class="public"><a href="<?php echo esc_attr( esc_url( add_query_arg( 'group_status', 'public', $url_base ) ) ); ?>" class="<?php if ( 'public' == $this->view ) echo 'current'; ?>"><?php printf( _n( 'Public <span class="count">(%s)</span>', 'Public <span class="count">(%s)</span>', $this->group_counts['public'], 'buddypress' ), number_format_i18n( $this->group_counts['public'] ) ); ?></a> |</li> 1273 1287 <li class="private"><a href="<?php echo esc_attr( esc_url( add_query_arg( 'group_status', 'private', $url_base ) ) ); ?>" class="<?php if ( 'private' == $this->view ) echo 'current'; ?>"><?php printf( _n( 'Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>', $this->group_counts['private'], 'buddypress' ), number_format_i18n( $this->group_counts['private'] ) ); ?></a> |</li> 1274 1288 <li class="hidden"><a href="<?php echo esc_attr( esc_url( add_query_arg( 'group_status', 'hidden', $url_base ) ) ); ?>" class="<?php if ( 'hidden' == $this->view ) echo 'current'; ?>"><?php printf( _n( 'Hidden <span class="count">(%s)</span>', 'Hidden <span class="count">(%s)</span>', $this->group_counts['hidden'], 'buddypress' ), number_format_i18n( $this->group_counts['hidden'] ) ); ?></a></li> 1289 <?php 1290 global $bp; 1291 1292 foreach ($bp->groups->valid_status as $status) { 1293 if ($status != 'public' && $status != 'private' && $status != 'hidden') { ?> 1294 <li class="<?php echo $status ?>"><a href="<?php echo esc_attr( esc_url( add_query_arg( 'group_status', $status, $url_base ) ) ); ?>" class="<?php if ( $status == $this->view ) echo 'current'; ?>"><?php printf( _n( ucfirst($status).' <span class="count">(%s)</span>', ucfirst($status).' <span class="count">(%s)</span>', $this->group_counts[$status], 'buddypress' ), number_format_i18n( $this->group_counts[$status] ) ); ?></a></li> 1295 <?php 1296 } 1297 } 1298 ?> 1275 1299 1276 1300 <?php do_action( 'bp_groups_list_table_get_views', $url_base, $this->view ); ?> 1277 1301 </ul> … … 1447 1471 */ 1448 1472 public function column_status( $item = array() ) { 1449 1473 $status = $item['status']; 1450 $status_desc = ''; 1451 1452 // @todo This should be abstracted out somewhere for the whole 1453 // Groups component 1454 switch ( $status ) { 1455 case 'public' : 1456 $status_desc = __( 'Public', 'buddypress' ); 1457 break; 1458 case 'private' : 1459 $status_desc = __( 'Private', 'buddypress' ); 1460 break; 1461 case 'hidden' : 1462 $status_desc = __( 'Hidden', 'buddypress' ); 1463 break; 1464 } 1465 1474 $status_desc = __( ucfirst($status), 'buddypress' ); 1466 1475 echo apply_filters_ref_array( 'bp_groups_admin_get_group_status', array( $status_desc, $item ) ); 1467 1476 } 1468 1477 -
buddypress/bp-groups/bp-groups-buddybar.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-groups/bp-groups-buddybar.php plugins/buddypress/bp-groups/bp-groups-buddybar.php
old new 49 49 50 50 <li><a href="<?php bp_groups_action_link( 'admin/manage-members' ); ?>"><?php _e( 'Manage Members', 'buddypress' ); ?></a></li> 51 51 52 <?php if ( $bp->groups->current_group->status == 'private') : ?>52 <?php if ( groups_membership_request_moderated( $bp->groups->current_group->status ) ) : ?> 53 53 54 54 <li><a href="<?php bp_groups_action_link( 'admin/membership-requests' ); ?>"><?php _e( 'Membership Requests', 'buddypress' ); ?></a></li> 55 55 -
buddypress/bp-groups/bp-groups-classes.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-groups/bp-groups-classes.php plugins/buddypress/bp-groups/bp-groups-classes.php
old new 238 238 $this->is_pending = BP_Groups_Member::check_for_membership_request( $user_id, $this->id ); 239 239 240 240 // If this is a private or hidden group, does the current user have access? 241 if ( ( 'private' === $this->status ) || ( 'hidden' ===$this->status ) ) {241 if ( groups_private_group( $this->status ) ) { 242 242 243 243 // Assume user does not have access to hidden/private groups 244 244 $this->user_has_access = false; … … 505 505 $order_sql = "ORDER BY {$sort_by} {$order}"; 506 506 } 507 507 508 if ( !bp_current_user_can( 'bp_moderate' ) ) 509 $hidden_sql = "AND status != 'hidden'"; 508 if ( !bp_current_user_can( 'bp_moderate' ) ) { 509 $hidden_sql = "AND status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status)). "')"; 510 } 510 511 511 512 $paged_groups = $wpdb->get_results( $wpdb->prepare( "SELECT id as group_id FROM {$bp->groups->table_name} WHERE ( name LIKE %s OR description LIKE %s ) {$hidden_sql} {$order_sql} {$pag_sql}", $search_terms_like, $search_terms_like ) ); 512 513 $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM {$bp->groups->table_name} WHERE ( name LIKE %s OR description LIKE %s ) {$hidden_sql}", $search_terms_like, $search_terms_like ) ); … … 706 707 $sql['where'] = " g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count'"; 707 708 708 709 if ( empty( $r['show_hidden'] ) ) { 709 $sql['hidden'] = " AND g.status != 'hidden'";710 $sql['hidden'] = " AND g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status)). "')"; 710 711 } 711 712 712 713 if ( ! empty( $r['search_terms'] ) ) { … … 788 789 } 789 790 790 791 if ( ! empty( $sql['hidden'] ) ) { 791 $total_sql['where'][] = "g.status != 'hidden'";792 $total_sql['where'][] = "g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status)). "')"; 792 793 } 793 794 794 795 if ( ! empty( $sql['search'] ) ) { … … 1023 1024 } 1024 1025 1025 1026 if ( !is_user_logged_in() || ( !bp_current_user_can( 'bp_moderate' ) && ( $user_id != bp_loggedin_user_id() ) ) ) 1026 $hidden_sql = " AND g.status != 'hidden'";1027 $hidden_sql = " AND g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status)). "')"; 1027 1028 1028 1029 if ( !empty( $search_terms ) ) { 1029 1030 $search_terms_like = '%' . bp_esc_like( $search_terms ) . '%'; … … 1087 1088 } 1088 1089 1089 1090 if ( !is_user_logged_in() || ( !bp_current_user_can( 'bp_moderate' ) && ( $user_id != bp_loggedin_user_id() ) ) ) 1090 $hidden_sql = " AND g.status != 'hidden'";1091 $hidden_sql = " AND g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status)). "')"; 1091 1092 1092 1093 if ( !empty( $search_terms ) ) { 1093 1094 $search_terms_like = '%' . bp_esc_like( $search_terms ) . '%'; … … 1159 1160 } 1160 1161 1161 1162 if ( !bp_current_user_can( 'bp_moderate' ) ) 1162 $hidden_sql = " AND status != 'hidden'";1163 $hidden_sql = " AND g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status)). "')"; 1163 1164 1164 1165 $letter_like = bp_esc_like( $letter ) . '%'; 1165 1166 … … 1214 1215 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 1215 1216 1216 1217 if ( !is_user_logged_in() || ( !bp_current_user_can( 'bp_moderate' ) && ( $user_id != bp_loggedin_user_id() ) ) ) 1217 $hidden_sql = "AND g.status != 'hidden'";1218 $hidden_sql = "AND g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status)). "')"; 1218 1219 1219 1220 if ( !empty( $search_terms ) ) { 1220 1221 $search_terms_like = '%' . bp_esc_like( $search_terms ) . '%'; … … 1356 1357 1357 1358 $hidden_sql = ''; 1358 1359 if ( !bp_current_user_can( 'bp_moderate' ) ) 1359 $hidden_sql = "WHERE status != 'hidden'";1360 $hidden_sql = "WHERE status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status)). "')"; 1360 1361 1361 1362 return $wpdb->get_var( "SELECT COUNT(id) FROM {$bp->groups->table_name} {$hidden_sql}" ); 1362 1363 } … … 1408 1409 public static function get_global_topic_count( $status = 'public', $search_terms = false ) { 1409 1410 global $bbdb, $wpdb, $bp; 1410 1411 1411 switch ( $status ) { 1412 case 'all' : 1413 $status_sql = ''; 1414 break; 1415 1416 case 'hidden' : 1417 $status_sql = "AND g.status = 'hidden'"; 1418 break; 1419 1420 case 'private' : 1421 $status_sql = "AND g.status = 'private'"; 1422 break; 1423 1424 case 'public' : 1425 default : 1426 $status_sql = "AND g.status = 'public'"; 1427 break; 1428 } 1412 if ( $status == 'all' ) 1413 $status_sql = ''; 1414 else 1415 $status_sql = "AND g.status = '".esc_sql($status)."'"; 1429 1416 1430 1417 $sql = array(); 1431 1418 … … 1457 1444 $ids = array(); 1458 1445 1459 1446 $ids['all'] = $wpdb->get_col( "SELECT id FROM {$bp->groups->table_name}" ); 1460 $ids['public'] = $wpdb->get_col( "SELECT id FROM {$bp->groups->table_name} WHERE status = 'public'" );1461 $ids['private'] = $wpdb->get_col( "SELECT id FROM {$bp->groups->table_name} WHERE status = 'private'" );1462 $ids['hidden'] = $wpdb->get_col( "SELECT id FROM {$bp->groups->table_name} WHERE status = 'hidden'" );1447 foreach ($bp->valid_status as $status) { 1448 $ids[$status] = $wpdb->get_col( "SELECT id FROM {$bp->groups->table_name} WHERE status = '".esc_sql($status)."'" ); 1449 } 1463 1450 1464 1451 return $ids; 1465 1452 } … … 2230 2217 2231 2218 // If the user is logged in and viewing their own groups, we can show hidden and private groups 2232 2219 if ( $user_id != bp_loggedin_user_id() ) { 2233 $group_sql = $wpdb->prepare( "SELECT DISTINCT m.group_id FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.status != 'hidden'AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0{$pag_sql}", $user_id );2234 $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.status != 'hidden' AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0", $user_id ) );2220 $group_sql = $wpdb->prepare( "SELECT DISTINCT m.group_id FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status))."') AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0{$pag_sql}", $user_id ); 2221 $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status))."' AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0", $user_id ) ); 2235 2222 } else { 2236 2223 $group_sql = $wpdb->prepare( "SELECT DISTINCT group_id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND is_confirmed = 1 AND is_banned = 0{$pag_sql}", $user_id ); 2237 2224 $total_groups = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT group_id) FROM {$bp->groups->table_name_members} WHERE user_id = %d AND is_confirmed = 1 AND is_banned = 0", $user_id ) ); … … 2273 2260 } 2274 2261 2275 2262 if ( $user_id != bp_loggedin_user_id() ) 2276 $hidden_sql = " AND g.status != 'hidden'";2263 $hidden_sql = " AND g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status))."')"; 2277 2264 2278 2265 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count'{$hidden_sql}{$filter_sql} AND {$user_id_sql} AND m.is_confirmed = 1 AND m.is_banned = 0 ORDER BY m.date_modified DESC {$pag_sql}" ); 2279 2266 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id{$hidden_sql}{$filter_sql} AND {$user_id_sql} AND m.is_banned = 0 AND m.is_confirmed = 1 ORDER BY m.date_modified DESC" ); … … 2312 2299 } 2313 2300 2314 2301 if ( $user_id != bp_loggedin_user_id() ) 2315 $hidden_sql = " AND g.status != 'hidden'";2302 $hidden_sql = " AND g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status))."')"; 2316 2303 2317 2304 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count'{$hidden_sql}{$filter_sql} AND {$user_id_sql} AND m.is_confirmed = 1 AND m.is_banned = 0 AND m.is_admin = 1 ORDER BY m.date_modified ASC {$pag_sql}" ); 2318 2305 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id{$hidden_sql}{$filter_sql} AND {$user_id_sql} AND m.is_confirmed = 1 AND m.is_banned = 0 AND m.is_admin = 1 ORDER BY date_modified ASC" ); … … 2351 2338 } 2352 2339 2353 2340 if ( $user_id != bp_loggedin_user_id() ) 2354 $hidden_sql = " AND g.status != 'hidden'";2341 $hidden_sql = " AND g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status))."')"; 2355 2342 2356 2343 $paged_groups = $wpdb->get_results( "SELECT g.*, gm1.meta_value as total_member_count, gm2.meta_value as last_activity FROM {$bp->groups->table_name_groupmeta} gm1, {$bp->groups->table_name_groupmeta} gm2, {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE g.id = m.group_id AND g.id = gm1.group_id AND g.id = gm2.group_id AND gm2.meta_key = 'last_activity' AND gm1.meta_key = 'total_member_count'{$hidden_sql}{$filter_sql} AND {$user_id_sql} AND m.is_confirmed = 1 AND m.is_banned = 0 AND m.is_mod = 1 ORDER BY m.date_modified ASC {$pag_sql}" ); 2357 2344 $total_groups = $wpdb->get_var( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id{$hidden_sql}{$filter_sql} AND {$user_id_sql} AND m.is_confirmed = 1 AND m.is_banned = 0 AND m.is_mod = 1 ORDER BY date_modified ASC" ); … … 2372 2359 $user_id = bp_displayed_user_id(); 2373 2360 2374 2361 if ( $user_id != bp_loggedin_user_id() && !bp_current_user_can( 'bp_moderate' ) ) { 2375 return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id AND g.status != 'hidden'AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0", $user_id ) );2362 return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id AND g.status NOT IN ('".join("','", esc_sql($bp->groups->hidden_status))."') AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0", $user_id ) ); 2376 2363 } else { 2377 2364 return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(DISTINCT m.group_id) FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0", $user_id ) ); 2378 2365 } … … 2606 2593 if ( bp_is_my_profile() ) { 2607 2594 return $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT group_id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND is_confirmed = 1 AND is_banned = 0 ORDER BY rand() LIMIT %d", $user_id, $total_groups ) ); 2608 2595 } else { 2609 return $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT m.group_id FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id AND g.status != 'hidden'AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0 ORDER BY rand() LIMIT %d", $user_id, $total_groups ) );2596 return $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT m.group_id FROM {$bp->groups->table_name_members} m, {$bp->groups->table_name} g WHERE m.group_id = g.id AND g.status NOT IN ('".hoin("','", esc_sql($bp->groups->hidden_status))."') AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0 ORDER BY rand() LIMIT %d", $user_id, $total_groups ) ); 2610 2597 } 2611 2598 } 2612 2599 -
buddypress/bp-groups/bp-groups-functions.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-groups/bp-groups-functions.php plugins/buddypress/bp-groups/bp-groups-functions.php
old new 221 221 $group->enable_forum = $enable_forum; 222 222 223 223 /*** 224 * Before we potentially switch the group status, if it has been changed to public225 * from private and there are outstanding membership requests, auto-accept thoserequests.224 * Before we potentially switch the group status, if it has been changed to a status 225 * who not requires membership requests, auto-accept pending requests. 226 226 */ 227 if ( 'private' == $group->status && 'public' == $status)227 if ( !groups_membership_request_moderated( $status ) ) 228 228 groups_accept_all_pending_membership_requests( $group->id ); 229 229 230 230 // Now update the status … … 291 291 } 292 292 293 293 /** 294 * Check if this group status (eg 'private') allows membership requests. 295 * 296 * @param string $status Status to check. 297 * @return bool True if status requires join moderation, otherwise false. 298 */ 299 function groups_membership_request_allowed( $status ) { 300 global $bp; 301 302 return in_array( $status, $bp->groups->membership_request_allowed_status ); 303 } 304 305 /** 306 * Check if membership request to this group status (eg 'private') is moderated. 307 * 308 * @param string $status Status to check. 309 * @return bool True if status allows joining, otherwise false. 310 */ 311 function groups_membership_request_moderated( $status ) { 312 global $bp; 313 314 return in_array( $status, $bp->groups->membership_request_moderated_status ); 315 } 316 317 /** 318 * Check a group status (eg 'private') against the whitelist of creation statuses. 319 * 320 * @param string $status Status to check. 321 * @return bool True if status is allowed, otherwise false. 322 */ 323 function groups_is_valid_creation_status( $status ) { 324 global $bp; 325 326 return in_array( $status, (array) $bp->groups->valid_creation_status ); 327 } 328 329 /** 330 * Returns the default group status (eg 'public'). 331 * 332 * @return string First valid creation status 333 */ 334 function groups_default_creation_status() { 335 global $bp; 336 337 return apply_filters( 'groups_default_creation_status', 338 reset($bp->groups->valid_creation_status)); 339 } 340 341 342 /** 343 * Display membership request description for group status. 344 * 345 * @param string $status Status to check. 346 */ 347 function group_membership_request_description( $status ) { 348 if ( groups_membership_request_moderated( $status ) ) 349 _e( 'Only users who request membership and are accepted can join the group.', 'buddypress' ); 350 elseif ( groups_membership_request_allowed( $status ) ) 351 _e( 'Any site member can join this group.', 'buddypress' ); 352 else 353 _e( 'Only users who are invited can join the group.', 'buddypress' ); 354 } 355 356 /** 357 * Check if this group status (eg 'private') make contents private. 358 * 359 * @param string $status Status to check. 360 * @return bool True if status allows joining, otherwise false. 361 */ 362 function groups_private_group( $status ) { 363 global $bp; 364 365 return in_array( $status, $bp->groups->private_status ); 366 } 367 368 /** 369 * Check if this group status (eg 'hidden') make group hidden to non-members. 370 * 371 * @param string $status Status to check. 372 * @return bool True if status allows joining, otherwise false. 373 */ 374 function groups_hidden_group( $status ) { 375 global $bp; 376 377 return in_array( $status, $bp->groups->hidden_status ); 378 } 379 380 381 /** 294 382 * Provide a unique, sanitized version of a group slug. 295 383 * 296 384 * @param string $slug Group slug to check. -
buddypress/bp-groups/bp-groups-loader.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-groups/bp-groups-loader.php plugins/buddypress/bp-groups/bp-groups-loader.php
old new 80 80 public $valid_status; 81 81 82 82 /** 83 * Allowed group statuses (for non-super-admins) (Public, Private, Hidden). 84 * 85 * @since BuddyPress (1.5.0) 86 * @access public 87 * @var array 88 */ 89 public $valid_creation_status; 90 91 /** 92 * Group statuses who allows membership request (Public, Private). 93 * 94 * @since BuddyPress (2.1.0) 95 * @access public 96 * @var array 97 */ 98 public $membeship_request_allowed_status; 99 100 /** 101 * Group statuses who requires membership request moderation (Private). 102 * 103 * @since BuddyPress (2.1.0) 104 * @access public 105 * @var array 106 */ 107 public $membeship_request_moderated_status; 108 109 /** 110 * Group statuses hidden to non-members in lists 111 * 112 * @since BuddyPress (2.1.0) 113 * @access public 114 * @var array 115 */ 116 public $hidden_status; 117 118 /** 119 * Group statuses whose contents are hidden to non-members 120 * 121 * @since BuddyPress (2.1.0) 122 * @access public 123 * @var array 124 */ 125 public $private_status; 126 127 128 /** 83 129 * Start the groups component creation process. 84 130 * 85 131 * @since BuddyPress (1.5.0) … … 213 259 $this->current_group->is_user_member = false; 214 260 215 261 // Should this group be visible to the logged in user? 216 if ( 'public' == $this->current_group->status || $this->current_group->is_user_member ) 217 $this->current_group->is_visible = true; 218 else 219 $this->current_group->is_visible = false; 262 $this->current_group->is_visible = ( $this->current_group->is_user_member || 263 !groups_hidden_group( $this->current_group->status ) ); 220 264 221 265 // If this is a private or hidden group, does the user have access? 222 if ( 'private' == $this->current_group->status || 'hidden' == $this->current_group->status) {266 if ( groups_private_group($this->current_group->status) ) { 223 267 if ( $this->current_group->is_user_member && is_user_logged_in() || bp_current_user_can( 'bp_moderate' ) ) 224 268 $this->current_group->user_has_access = true; 225 269 else … … 292 336 'hidden' 293 337 ) ); 294 338 339 $this->valid_creation_status = apply_filters( 'groups_valid_creation_status', array( 340 'public', 341 'private', 342 'hidden' 343 ) ); 344 345 346 $this->membership_request_allowed_status = apply_filters( 'groups_membership_request_allowed', array( 347 'public', 348 'private' 349 ) ); 350 351 $this->membership_request_moderated_status = apply_filters( 'groups_membership_request_moderated', array( 352 'private' 353 ) ); 354 355 $this->hidden_status = apply_filters( 'groups_hidden_status', array( 356 'hidden' 357 ) ); 358 359 $this->private_status = apply_filters( 'groups_private_status', array( 360 'private', 361 'hidden' 362 ) ); 363 364 295 365 // Auto join group when non group member performs group activity 296 366 $this->auto_join = defined( 'BP_DISABLE_AUTO_GROUP_JOIN' ) && BP_DISABLE_AUTO_GROUP_JOIN ? false : true; 297 367 } … … 440 510 if ( is_user_logged_in() && 441 511 ! $this->current_group->is_user_member && 442 512 ! groups_check_for_membership_request( bp_loggedin_user_id(), $this->current_group->id ) && 443 $this->current_group->status == 'private' && 513 groups_membership_request_allowed( $this->current_group->status ) && 514 groups_membership_request_moderated( $this->current_group->status ) && 444 515 ! groups_check_user_has_invite( bp_loggedin_user_id(), $this->current_group->id ) 445 516 ) { 446 517 -
buddypress/bp-groups/bp-groups-screens.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-groups/bp-groups-screens.php plugins/buddypress/bp-groups/bp-groups-screens.php
old new 150 150 check_admin_referer( 'bp_forums_new_reply' ); 151 151 152 152 // Auto join this user if they are not yet a member of this group 153 if ( bp_groups_auto_join() && !bp_current_user_can( 'bp_moderate' ) && 'public' == $bp->groups->current_group->status && !groups_is_user_member( bp_loggedin_user_id(), $bp->groups->current_group->id ) ) { 153 if ( bp_groups_auto_join() && 154 !bp_current_user_can( 'bp_moderate' ) && 155 groups_membership_request_allowed($bp->groups->current_group->status) && 156 !groups_membership_request_moderated($bp->groups->current_group->status) && 157 !groups_is_user_member( bp_loggedin_user_id(), $bp->groups->current_group->id ) ) { 154 158 groups_join_group( $bp->groups->current_group->id, bp_loggedin_user_id() ); 155 159 } 156 160 … … 372 376 if ( $user_is_banned ) { 373 377 $error_message = __( "You have been banned from this group.", 'buddypress' ); 374 378 375 } elseif ( bp_groups_auto_join() && !bp_current_user_can( 'bp_moderate' ) && 'public' == $bp->groups->current_group->status && !groups_is_user_member( bp_loggedin_user_id(), $bp->groups->current_group->id ) ) { 379 } elseif ( bp_groups_auto_join() && 380 !bp_current_user_can( 'bp_moderate' ) && 381 groups_membership_request_allowed($bp->groups->current_group->status) && 382 !groups_membership_request_moderated($bp->groups->current_group->status) && 383 !groups_is_user_member( bp_loggedin_user_id(), $bp->groups->current_group->id ) ) { 376 384 // Auto join this user if they are not yet a member of this group 377 385 groups_join_group( $bp->groups->current_group->id, bp_loggedin_user_id() ); 378 386 } … … 516 524 517 525 $bp = buddypress(); 518 526 519 if ( 'private' != $bp->groups->current_group->status)527 if ( !groups_membership_request_moderated( $bp->groups->current_group->status ) ) 520 528 return false; 521 529 522 530 // If the user is already invited, accept invitation … … 866 874 return false; 867 875 } 868 876 869 if ( ! bp_is_item_admin() || ( 'public' == $bp->groups->current_group->status ) ) { 877 if ( !bp_is_item_admin() || 878 !groups_membership_request_moderated( $bp->groups->current_group->status )) { 870 879 return false; 871 880 } 872 881 -
buddypress/bp-groups/bp-groups-template.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-groups/bp-groups-template.php plugins/buddypress/bp-groups/bp-groups-template.php
old new 711 711 } else if ( 'private' == $group->status ) { 712 712 $type = __( "Private Group", "buddypress" ); 713 713 } else { 714 $type = ucwords( $group->status ) . ' ' . __( 'Group', 'buddypress');714 $type = sprintf ( __( '%s Group', 'buddypress' ), ucwords( $group->status ) ); 715 715 } 716 716 717 717 return apply_filters( 'bp_get_group_type', $type ); … … 2083 2083 2084 2084 <li<?php if ( 'manage-members' == $current_tab ) : ?> class="current"<?php endif; ?>><a href="<?php echo trailingslashit( bp_get_group_permalink( $group ) . 'admin/manage-members' ) ?>"><?php _e( 'Members', 'buddypress' ); ?></a></li> 2085 2085 2086 <?php if ( $groups_template->group->status == 'private') : ?>2086 <?php if ( groups_membership_request_moderated( $groups_template->group->status ) ) : ?> 2087 2087 2088 2088 <li<?php if ( 'membership-requests' == $current_tab ) : ?> class="current"<?php endif; ?>><a href="<?php echo trailingslashit( bp_get_group_permalink( $group ) . 'admin/membership-requests' ) ?>"><?php _e( 'Requests', 'buddypress' ); ?></a></li> 2089 2089 … … 2404 2404 } else { 2405 2405 2406 2406 // Show different buttons based on group status 2407 switch ( $group->status ) { 2408 case 'hidden' : 2409 return false; 2410 break; 2411 2412 case 'public': 2413 $button = array( 2414 'id' => 'join_group', 2415 'component' => 'groups', 2416 'must_be_logged_in' => true, 2417 'block_self' => false, 2418 'wrapper_class' => 'group-button ' . $group->status, 2419 'wrapper_id' => 'groupbutton-' . $group->id, 2420 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ), 2421 'link_text' => __( 'Join Group', 'buddypress' ), 2422 'link_title' => __( 'Join Group', 'buddypress' ), 2423 'link_class' => 'group-button join-group', 2424 ); 2425 break; 2426 2427 case 'private' : 2407 if ( !groups_membership_request_allowed($group->status) ) { 2408 return false; 2409 } 2428 2410 2429 // Member has outstanding invitation - 2430 // show an "Accept Invitation" button 2431 if ( $group->is_invited ) { 2432 $button = array( 2433 'id' => 'accept_invite', 2434 'component' => 'groups', 2435 'must_be_logged_in' => true, 2436 'block_self' => false, 2437 'wrapper_class' => 'group-button ' . $group->status, 2438 'wrapper_id' => 'groupbutton-' . $group->id, 2439 'link_href' => add_query_arg( 'redirect_to', bp_get_group_permalink( $group ), bp_get_group_accept_invite_link( $group ) ), 2440 'link_text' => __( 'Accept Invitation', 'buddypress' ), 2441 'link_title' => __( 'Accept Invitation', 'buddypress' ), 2442 'link_class' => 'group-button accept-invite', 2443 ); 2444 2445 // Member has requested membership but request is pending - 2446 // show a "Request Sent" button 2447 } elseif ( $group->is_pending ) { 2448 $button = array( 2449 'id' => 'membership_requested', 2450 'component' => 'groups', 2451 'must_be_logged_in' => true, 2452 'block_self' => false, 2453 'wrapper_class' => 'group-button pending ' . $group->status, 2454 'wrapper_id' => 'groupbutton-' . $group->id, 2455 'link_href' => bp_get_group_permalink( $group ), 2456 'link_text' => __( 'Request Sent', 'buddypress' ), 2457 'link_title' => __( 'Request Sent', 'buddypress' ), 2458 'link_class' => 'group-button pending membership-requested', 2459 ); 2460 2461 // Member has not requested membership yet - 2462 // show a "Request Membership" button 2463 } else { 2464 $button = array( 2465 'id' => 'request_membership', 2466 'component' => 'groups', 2467 'must_be_logged_in' => true, 2468 'block_self' => false, 2469 'wrapper_class' => 'group-button ' . $group->status, 2470 'wrapper_id' => 'groupbutton-' . $group->id, 2471 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ), 2472 'link_text' => __( 'Request Membership', 'buddypress' ), 2473 'link_title' => __( 'Request Membership', 'buddypress' ), 2474 'link_class' => 'group-button request-membership', 2475 ); 2476 } 2411 if ( !groups_membership_request_moderated($group->status) ) { 2412 $button = array( 2413 'id' => 'join_group', 2414 'component' => 'groups', 2415 'must_be_logged_in' => true, 2416 'block_self' => false, 2417 'wrapper_class' => 'group-button ' . $group->status, 2418 'wrapper_id' => 'groupbutton-' . $group->id, 2419 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ), 2420 'link_text' => __( 'Join Group', 'buddypress' ), 2421 'link_title' => __( 'Join Group', 'buddypress' ), 2422 'link_class' => 'group-button join-group', 2423 ); 2424 } elseif ( $group->is_invited ) { 2425 // Member has outstanding invitation - 2426 // show an "Accept Invitation" button 2427 $button = array( 2428 'id' => 'accept_invite', 2429 'component' => 'groups', 2430 'must_be_logged_in' => true, 2431 'block_self' => false, 2432 'wrapper_class' => 'group-button ' . $group->status, 2433 'wrapper_id' => 'groupbutton-' . $group->id, 2434 'link_href' => add_query_arg( 'redirect_to', bp_get_group_permalink( $group ), bp_get_group_accept_invite_link( $group ) ), 2435 'link_text' => __( 'Accept Invitation', 'buddypress' ), 2436 'link_title' => __( 'Accept Invitation', 'buddypress' ), 2437 'link_class' => 'group-button accept-invite', 2438 ); 2439 2440 } elseif ( $group->is_pending ) { 2441 // Member has requested membership but request is pending - 2442 // show a "Request Sent" button 2443 $button = array( 2444 'id' => 'membership_requested', 2445 'component' => 'groups', 2446 'must_be_logged_in' => true, 2447 'block_self' => false, 2448 'wrapper_class' => 'group-button pending ' . $group->status, 2449 'wrapper_id' => 'groupbutton-' . $group->id, 2450 'link_href' => bp_get_group_permalink( $group ), 2451 'link_text' => __( 'Request Sent', 'buddypress' ), 2452 'link_title' => __( 'Request Sent', 'buddypress' ), 2453 'link_class' => 'group-button pending membership-requested', 2454 ); 2477 2455 2478 break; 2456 } else { 2457 // Member has not requested membership yet - 2458 // show a "Request Membership" button 2459 $button = array( 2460 'id' => 'request_membership', 2461 'component' => 'groups', 2462 'must_be_logged_in' => true, 2463 'block_self' => false, 2464 'wrapper_class' => 'group-button ' . $group->status, 2465 'wrapper_id' => 'groupbutton-' . $group->id, 2466 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ), 2467 'link_text' => __( 'Request Membership', 'buddypress' ), 2468 'link_title' => __( 'Request Membership', 'buddypress' ), 2469 'link_class' => 'group-button request-membership', 2470 ); 2479 2471 } 2480 2472 } 2481 2473 … … 2534 2526 if ( ! $group ) 2535 2527 $group =& $groups_template->group; 2536 2528 2537 if ( 'private' == $group->status) {2529 if ( groups_membership_request_moderated( $group->status ) ) { 2538 2530 if ( ! bp_group_has_requested_membership() ) { 2539 2531 if ( is_user_logged_in() && bp_group_is_invited() ) { 2540 2532 $message = __( 'You must accept your pending invitation before you can access this private group.', 'buddypress' ); -
buddypress/bp-templates/bp-legacy/buddypress/groups/create.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-templates/bp-legacy/buddypress/groups/create.php plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/create.php
old new 51 51 <h4><?php _e( 'Privacy Options', 'buddypress' ); ?></h4> 52 52 53 53 <div class="radio"> 54 <label><input type="radio" name="group-status" value="public"<?php if ( 'public' == bp_get_new_group_status() || !bp_get_new_group_status() ) { ?> checked="checked"<?php } ?> /> <strong><?php _e( 'This is a public group', 'buddypress' ); ?></strong></label> 54 <?php if ( is_super_admin() || groups_is_valid_creation_status( 'public' ) ) : ?> 55 <label> 56 <input type="radio" name="group-status" value="public"<?php if ( 'public' == bp_get_new_group_status() || !bp_get_new_group_status() ) { ?> checked="checked"<?php } ?> /> <strong><?php _e( 'This is a public group', 'buddypress' ); ?></strong></label> 55 57 <ul> 56 <li><?php _e( 'Any site member can join this group.', 'buddypress' ); ?></li>58 <li><?php group_membership_request_description( 'public' ); ?></li> 57 59 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 58 60 <li><?php _e( 'Group content and activity will be visible to any site member.', 'buddypress' ); ?></li> 59 61 </ul> 62 <?php endif; ?> 60 63 61 64 <?php if ( is_super_admin() || groups_is_valid_creation_status( 'private' ) ) : ?> 62 65 <label> 63 66 <input type="radio" name="group-status" value="private"<?php if ( 'private' == bp_get_new_group_status() ) { ?> checked="checked"<?php } ?> /> 64 67 <strong><?php _e( 'This is a private group', 'buddypress' ); ?></strong> 65 68 </label> 66 69 <ul> 67 <li><?php _e( 'Only users who request membership and are accepted can join the group.', 'buddypress' ); ?></li>70 <li><?php group_membership_request_description( 'private' ); ?></li> 68 71 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 69 72 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 70 73 </ul> 74 <?php endif; ?> 75 71 76 77 <?php if ( is_super_admin() || groups_is_valid_creation_status( 'hidden' ) ) : ?> 72 78 73 79 <label> 74 80 <input type="radio" name="group-status" value="hidden"<?php if ( 'hidden' == bp_get_new_group_status() ) { ?> checked="checked"<?php } ?> /> 75 81 <strong><?php _e('This is a hidden group', 'buddypress' ); ?></strong> 76 82 </label> 77 83 <ul> 78 <li><?php _e( 'Only users who are invited can join the group.', 'buddypress' ); ?></li>84 <li><?php group_membership_request_description( 'hidden' ); ?></li> 79 85 <li><?php _e( 'This group will not be listed in the groups directory or search results.', 'buddypress' ); ?></li> 80 86 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 81 87 </ul> 88 <?php endif; ?> 82 89 83 90 </div> 84 91 -
buddypress/bp-templates/bp-legacy/buddypress/groups/single/admin.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-templates/bp-legacy/buddypress/groups/single/admin.php plugins/buddypress/bp-templates/bp-legacy/buddypress/groups/single/admin.php
old new 55 55 56 56 <h4><?php _e( 'Privacy Options', 'buddypress' ); ?></h4> 57 57 58 <?php 59 60 $current_group_status = bp_get_group_status(); 61 if (!is_super_admin() && !groups_is_valid_creation_status( $current_group_status ) ) : ?> 62 <div class="radio"> 63 <label> 64 <input type="hidden" name="group-status" value="<?php 65 echo esc_attr($current_group_status); 66 ?>" /> 67 <strong> 68 <?php 69 printf( __( 'This is a %s group', 'buddypress' ), $current_group_status ); 70 ?> 71 </strong> 72 </label> 73 <ul> 74 </ul> 75 <?php else : ?> 58 76 <div class="radio"> 77 <?php if (is_super_admin() || groups_is_valid_creation_status( 'public' ) ) : ?> 59 78 <label> 60 79 <input type="radio" name="group-status" value="public"<?php bp_group_show_status_setting( 'public' ); ?> /> 61 80 <strong><?php _e( 'This is a public group', 'buddypress' ); ?></strong> 62 81 <ul> 63 <li><?php _e( 'Any site member can join this group.', 'buddypress' ); ?></li>82 <li><?php group_membership_request_description( 'public' ); ?></li> 64 83 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 65 84 <li><?php _e( 'Group content and activity will be visible to any site member.', 'buddypress' ); ?></li> 66 85 </ul> 67 86 </label> 87 <?php endif; ?> 68 88 89 <?php if (is_super_admin() || groups_is_valid_creation_status( 'private' ) ) : ?> 69 90 <label> 70 91 <input type="radio" name="group-status" value="private"<?php bp_group_show_status_setting( 'private' ); ?> /> 71 92 <strong><?php _e( 'This is a private group', 'buddypress' ); ?></strong> 72 93 <ul> 73 <li><?php _e( 'Only users who request membership and are accepted can join the group.', 'buddypress' ); ?></li>94 <li><?php group_membership_request_description( 'public' ); ?></li> 74 95 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 75 96 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 76 97 </ul> 77 98 </label> 99 <?php endif; ?> 78 100 101 <?php if (is_super_admin() || groups_is_valid_creation_status( 'hidden' ) ) : ?> 79 102 <label> 80 103 <input type="radio" name="group-status" value="hidden"<?php bp_group_show_status_setting( 'hidden' ); ?> /> 81 104 <strong><?php _e( 'This is a hidden group', 'buddypress' ); ?></strong> 82 105 <ul> 83 <li><?php _e( 'Only users who are invited can join the group.', 'buddypress' ); ?></li>106 <li><?php group_membership_request_description( 'public' ); ?></li> 84 107 <li><?php _e( 'This group will not be listed in the groups directory or search results.', 'buddypress' ); ?></li> 85 108 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 86 109 </ul> 87 110 </label> 111 112 <?php endif; ?> 113 114 <?php endif; ?> 115 88 116 </div> 89 117 90 118 <hr /> -
buddypress/bp-templates/bp-legacy/buddypress-functions.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-templates/bp-legacy/buddypress-functions.php plugins/buddypress/bp-templates/bp-legacy/buddypress-functions.php
old new 1188 1188 return; 1189 1189 1190 1190 if ( ! groups_is_user_member( bp_loggedin_user_id(), $group->id ) ) { 1191 if ( 'public' == $group->status ) { 1191 if ( groups_membership_request_allowed($group->status) ) { 1192 if ( !groups_membership_request_moderated($group->status) ) { 1192 1193 check_ajax_referer( 'groups_join_group' ); 1193 1194 1194 1195 if ( ! groups_join_group( $group->id ) ) { … … 1197 1198 echo '<a id="group-' . esc_attr( $group->id ) . '" class="leave-group" rel="leave" title="' . __( 'Leave Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>'; 1198 1199 } 1199 1200 1200 } elseif ( 'private' == $group->status ) { 1201 1201 } else { 1202 1202 // If the user has already been invited, then this is 1203 1203 // an Accept Invitation button 1204 1204 if ( groups_check_user_has_invite( bp_loggedin_user_id(), $group->id ) ) { … … 1209 1209 } else { 1210 1210 echo '<a id="group-' . esc_attr( $group->id ) . '" class="leave-group" rel="leave" title="' . __( 'Leave Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>'; 1211 1211 } 1212 1213 1212 // Otherwise, it's a Request Membership button 1214 1213 } else { 1215 1214 check_ajax_referer( 'groups_request_membership' ); … … 1217 1216 if ( ! groups_send_membership_request( bp_loggedin_user_id(), $group->id ) ) { 1218 1217 _e( 'Error requesting membership', 'buddypress' ); 1219 1218 } else { 1220 echo '<a id="group-' . esc_attr( $group->id ) . '" class="membership-requested " rel="membership-requested" title="' . __( 'Membership Requested', 'buddypress' ) . '" href="' . bp_get_group_permalink( $group ) . '">' . __( 'Membership Requested', 'buddypress' ) . '</a>';1219 echo '<a id="group-' . esc_attr( $group->id ) . '" class="membership-requested disabled" rel="membership-requested" title="' . __( 'Membership Requested', 'buddypress' ) . '" href="' . bp_get_group_permalink( $group ) . '" onClick="return false;">' . __( 'Membership Requested', 'buddypress' ) . '</a>'; 1221 1220 } 1222 1221 } 1223 1222 } 1224 1223 } 1225 1224 } else { 1226 1225 check_ajax_referer( 'groups_leave_group' ); 1227 1226 1228 1227 if ( ! groups_leave_group( $group->id ) ) { 1228 1229 1229 _e( 'Error leaving group', 'buddypress' ); 1230 } elseif ( 'public' == $group->status) {1230 } elseif ( !groups_membership_request_moderated($group->status) ) { 1231 1231 echo '<a id="group-' . esc_attr( $group->id ) . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>'; 1232 } elseif ( 'private' == $group->status ) { 1232 1233 } elseif ( groups_membership_request_allowed($group->status) ) { 1234 1233 1235 echo '<a id="group-' . esc_attr( $group->id ) . '" class="request-membership" rel="join" title="' . __( 'Request Membership', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_send_membership_request' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>'; 1234 1236 } 1235 1237 } -
buddypress/bp-themes/bp-default/groups/create.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-themes/bp-default/groups/create.php plugins/buddypress/bp-themes/bp-default/groups/create.php
old new 58 58 <h4><?php _e( 'Privacy Options', 'buddypress' ); ?></h4> 59 59 60 60 <div class="radio"> 61 <label><input type="radio" name="group-status" value="public"<?php if ( 'public' == bp_get_new_group_status() || !bp_get_new_group_status() ) { ?> checked="checked"<?php } ?> /> 62 <strong><?php _e( 'This is a public group', 'buddypress' ); ?></strong> 63 <ul> 64 <li><?php _e( 'Any site member can join this group.', 'buddypress' ); ?></li> 65 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 66 <li><?php _e( 'Group content and activity will be visible to any site member.', 'buddypress' ); ?></li> 67 </ul> 68 </label> 69 70 <label><input type="radio" name="group-status" value="private"<?php if ( 'private' == bp_get_new_group_status() ) { ?> checked="checked"<?php } ?> /> 71 <strong><?php _e( 'This is a private group', 'buddypress' ); ?></strong> 72 <ul> 73 <li><?php _e( 'Only users who request membership and are accepted can join the group.', 'buddypress' ); ?></li> 74 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 75 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 76 </ul> 77 </label> 61 <?php 62 global $bp; 78 63 79 <label><input type="radio" name="group-status" value="hidden"<?php if ( 'hidden' == bp_get_new_group_status() ) { ?> checked="checked"<?php } ?> /> 80 <strong><?php _e('This is a hidden group', 'buddypress'); ?></strong> 64 $new_group_status = bp_get_new_group_status(); 65 if ( !$new_group_status ) 66 $new_group_status = groups_default_creation_status(); 67 68 foreach ( $bp->groups->valid_status as $group_status ) { 69 if ( is_super_admin() || groups_is_valid_creation_status( $group_status ) ) { ?> 70 <label><input type="radio" name="group-status" value="<?php echo esc_attr($group_status) ?>"<?php if ( $group_status == $new_group_status ) { ?> checked="checked"<?php } ?> /> 71 <strong><?php printf(__( 'This is a %s group', 'buddypress' ), $group_status); ?></strong> 81 72 <ul> 82 <li><?php _e( 'Only users who are invited can join the group.', 'buddypress' ); ?></li>83 <li><?php _e( 'This group will not be listed in the groups directory or search results.', 'buddypress' ); ?></li>84 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li>73 <li><?php group_membership_request_description( 'public' ); ?></li> 74 <li><?php group_listing_visibility_description( 'public' ); ?></li> 75 <li><?php group_content_visibility_description( 'public' ); ?></li> 85 76 </ul> 86 77 </label> 78 <?php 79 } 80 } 81 ?> 87 82 </div> 88 83 89 84 <h4><?php _e( 'Group Invitations', 'buddypress' ); ?></h4> -
buddypress/bp-themes/bp-default/_inc/ajax.php
diff --exclude=.svn -ur plugins.orig/buddypress/bp-themes/bp-default/groups/single/admin.php plugins/buddypress/bp-themes/bp-default/groups/single/admin.php
old new 735 735 return; 736 736 737 737 if ( ! groups_is_user_member( bp_loggedin_user_id(), $group->id ) ) { 738 if ( 'public' == $group->status ) { 738 if ( groups_membership_request_allowed( $group->status ) ) { 739 if ( ! groups_membership_request_moderated( $group->status ) ) { 739 740 check_ajax_referer( 'groups_join_group' ); 740 741 741 742 if ( ! groups_join_group( $group->id ) ) { … … 744 745 echo '<a id="group-' . esc_attr( $group->id ) . '" class="leave-group" rel="leave" title="' . __( 'Leave Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>'; 745 746 } 746 747 747 } else if ( 'private' == $group->status ){748 } else { 748 749 749 750 // If the user has already been invited, then this is 750 751 // an Accept Invitation button … … 768 769 } 769 770 } 770 771 } 771 772 } 772 773 } else { 773 774 check_ajax_referer( 'groups_leave_group' ); 774 775 775 776 if ( ! groups_leave_group( $group->id ) ) { 776 777 _e( 'Error leaving group', 'buddypress' ); 777 } elseif ( 'public' == $group->status ) { 778 echo '<a id="group-' . esc_attr( $group->id ) . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>'; 779 } elseif ( 'private' == $group->status ) { 778 } elseif ( groups_membership_request_moderated( $group->status ) ) { 780 779 echo '<a id="group-' . esc_attr( $group->id ) . '" class="request-membership" rel="join" title="' . __( 'Request Membership', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_send_membership_request' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>'; 780 } elseif ( groups_membership_request_allowed( $group->status ) ) { 781 echo '<a id="group-' . esc_attr( $group->id ) . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>'; 781 782 } 782 783 } 783 784 -
buddypress/bp-themes/bp-default/_inc/ajax.php
old new 735 735 return; 736 736 737 737 if ( ! groups_is_user_member( bp_loggedin_user_id(), $group->id ) ) { 738 if ( 'public' == $group->status ) { 738 if ( groups_membership_request_allowed( $group->status ) ) { 739 if ( ! groups_membership_request_moderated( $group->status ) ) { 739 740 check_ajax_referer( 'groups_join_group' ); 740 741 741 742 if ( ! groups_join_group( $group->id ) ) { … … 744 745 echo '<a id="group-' . esc_attr( $group->id ) . '" class="leave-group" rel="leave" title="' . __( 'Leave Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>'; 745 746 } 746 747 747 } else if ( 'private' == $group->status ){748 } else { 748 749 749 750 // If the user has already been invited, then this is 750 751 // an Accept Invitation button … … 768 769 } 769 770 } 770 771 } 771 772 } 772 773 } else { 773 774 check_ajax_referer( 'groups_leave_group' ); 774 775 775 776 if ( ! groups_leave_group( $group->id ) ) { 776 777 _e( 'Error leaving group', 'buddypress' ); 777 } elseif ( 'public' == $group->status ) { 778 echo '<a id="group-' . esc_attr( $group->id ) . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>'; 779 } elseif ( 'private' == $group->status ) { 778 } elseif ( groups_membership_request_moderated( $group->status ) ) { 780 779 echo '<a id="group-' . esc_attr( $group->id ) . '" class="request-membership" rel="join" title="' . __( 'Request Membership', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_send_membership_request' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>'; 780 } elseif ( groups_membership_request_allowed( $group->status ) ) { 781 echo '<a id="group-' . esc_attr( $group->id ) . '" class="join-group" rel="join" title="' . __( 'Join Group', 'buddypress' ) . '" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>'; 781 782 } 782 783 } 783 784