Ticket #6095: buddypress-2.1.1-status.patch
File buddypress-2.1.1-status.patch, 35.0 KB (added by , 10 years ago) |
---|
-
buddypress/bp-groups/bp-groups-actions.php
diff -ur ../plugins.orig/buddypress/bp-groups/bp-groups-actions.php buddypress/bp-groups/bp-groups-actions.php
old new 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 = 'public'; 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' ); -
buddypress/bp-groups/bp-groups-adminbar.php
diff -ur ../plugins.orig/buddypress/bp-groups/bp-groups-adminbar.php 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_get_group_status( $bp->groups->current_group ) ) ) { 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-buddybar.php
diff -ur ../plugins.orig/buddypress/bp-groups/bp-groups-buddybar.php 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-functions.php
diff -ur ../plugins.orig/buddypress/bp-groups/bp-groups-functions.php 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 * Display membership request description for group status. 331 * 332 * @param string $status Status to check. 333 */ 334 function group_membership_request_description( $status ) { 335 if ( groups_membership_request_moderated( $status ) ) 336 _e( 'Only users who request membership and are accepted can join the group.', 'buddypress' ); 337 elseif ( groups_membership_request_allowed( $status ) ) 338 _e( 'Any site member can join this group.', 'buddypress' ); 339 else 340 _e( 'Only users who are invited can join the group.', 'buddypress' ); 341 } 342 343 /** 294 344 * Provide a unique, sanitized version of a group slug. 295 345 * 296 346 * @param string $slug Group slug to check. -
buddypress/bp-groups/bp-groups-loader.php
diff -ur ../plugins.orig/buddypress/bp-groups/bp-groups-loader.php 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 /** 83 111 * Start the groups component creation process. 84 112 * 85 113 * @since BuddyPress (1.5.0) … … 292 320 'hidden' 293 321 ) ); 294 322 323 $this->valid_creation_status = apply_filters( 'groups_valid_creation_status', array( 324 'public', 325 'private', 326 'hidden' 327 ) ); 328 329 330 $this->membership_request_allowed_status = apply_filters( 'groups_membership_request_allowed', array( 331 'public', 332 'private' 333 ) ); 334 335 $this->membership_request_moderated_status = apply_filters( 'groups_membership_request_moderated', array( 336 'private' 337 ) ); 338 295 339 // Auto join group when non group member performs group activity 296 340 $this->auto_join = defined( 'BP_DISABLE_AUTO_GROUP_JOIN' ) && BP_DISABLE_AUTO_GROUP_JOIN ? false : true; 297 341 } … … 440 484 if ( is_user_logged_in() && 441 485 ! $this->current_group->is_user_member && 442 486 ! groups_check_for_membership_request( bp_loggedin_user_id(), $this->current_group->id ) && 443 $this->current_group->status == 'private' && 487 groups_membership_request_allowed( $this->current_group->status ) && 488 groups_membership_request_moderated( $this->current_group->status ) && 444 489 ! groups_check_user_has_invite( bp_loggedin_user_id(), $this->current_group->id ) 445 490 ) { 446 491 -
buddypress/bp-groups/bp-groups-screens.php
diff -ur ../plugins.orig/buddypress/bp-groups/bp-groups-screens.php 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 -ur ../plugins.orig/buddypress/bp-groups/bp-groups-template.php 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 -ur ../plugins.orig/buddypress/bp-templates/bp-legacy/buddypress/groups/create.php 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 … … 306 313 307 314 </div> 308 315 309 <?php do_action( 'bp_after_create_group_page' ); ?> 310 No newline at end of file 316 <?php do_action( 'bp_after_create_group_page' ); ?> -
buddypress/bp-templates/bp-legacy/buddypress/groups/single/admin.php
diff -ur ../plugins.orig/buddypress/bp-templates/bp-legacy/buddypress/groups/single/admin.php 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() && !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 switch ($current_group_status) { 70 case 'public': 71 _e( 'This is a public group', 'buddypress' ); 72 break; 73 case 'private': 74 _e( 'This is a private group', 'buddypress' ); 75 break; 76 case 'hidden': 77 _e( 'This is a hidden group', 'buddypress' ); 78 break; 79 default: 80 printf( __( 'This is a %s group', 'buddypress' ), 81 $current_group_status ); 82 break; 83 } 84 ?> 85 </strong> 86 </label> 87 </div> 88 <?php else : ?> 58 89 <div class="radio"> 90 <?php if (is_super_admin() || is_valid_creation_status( 'public' ) ) : ?> 59 91 <label> 60 92 <input type="radio" name="group-status" value="public"<?php bp_group_show_status_setting( 'public' ); ?> /> 61 93 <strong><?php _e( 'This is a public group', 'buddypress' ); ?></strong> 62 94 <ul> 63 <li><?php _e( 'Any site member can join this group.', 'buddypress' ); ?></li>95 <li><?php group_membership_request_description( 'public' ); ?></li> 64 96 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 65 97 <li><?php _e( 'Group content and activity will be visible to any site member.', 'buddypress' ); ?></li> 66 98 </ul> 67 99 </label> 100 <?php endif; ?> 68 101 102 <?php if (is_super_admin() || is_valid_creation_status( 'private' ) ) : ?> 69 103 <label> 70 104 <input type="radio" name="group-status" value="private"<?php bp_group_show_status_setting( 'private' ); ?> /> 71 105 <strong><?php _e( 'This is a private group', 'buddypress' ); ?></strong> 72 106 <ul> 73 <li><?php _e( 'Only users who request membership and are accepted can join the group.', 'buddypress' ); ?></li>107 <li><?php group_membership_request_description( 'public' ); ?></li> 74 108 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 75 109 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 76 110 </ul> 77 111 </label> 112 <?php endif; ?> 78 113 114 <?php if (is_super_admin() || is_valid_creation_status( 'hidden' ) ) : ?> 79 115 <label> 80 116 <input type="radio" name="group-status" value="hidden"<?php bp_group_show_status_setting( 'hidden' ); ?> /> 81 117 <strong><?php _e( 'This is a hidden group', 'buddypress' ); ?></strong> 82 118 <ul> 83 <li><?php _e( 'Only users who are invited can join the group.', 'buddypress' ); ?></li>119 <li><?php group_membership_request_description( 'public' ); ?></li> 84 120 <li><?php _e( 'This group will not be listed in the groups directory or search results.', 'buddypress' ); ?></li> 85 121 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 86 122 </ul> 87 123 </label> 124 125 <?php endif; ?> 126 127 <?php endif; ?> 128 88 129 </div> 89 130 90 131 <hr /> -
buddypress/bp-templates/bp-legacy/buddypress-functions.php
diff -ur ../plugins.orig/buddypress/bp-templates/bp-legacy/buddypress-functions.php 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 -ur ../plugins.orig/buddypress/bp-themes/bp-default/groups/create.php 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 62 <?php if ( is_super_admin() || groups_is_valid_creation_status( 'public' ) ) : ?> 61 63 <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 64 <strong><?php _e( 'This is a public group', 'buddypress' ); ?></strong> 63 65 <ul> 64 <li><?php _e( 'Any site member can join this group.', 'buddypress' ); ?></li>66 <li><?php group_membership_request_description( 'public' ); ?></li> 65 67 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 66 68 <li><?php _e( 'Group content and activity will be visible to any site member.', 'buddypress' ); ?></li> 67 69 </ul> 68 70 </label> 71 <?php endif; ?> 69 72 73 <?php if ( is_super_admin() || groups_is_valid_creation_status( 'private' ) ) : ?> 70 74 <label><input type="radio" name="group-status" value="private"<?php if ( 'private' == bp_get_new_group_status() ) { ?> checked="checked"<?php } ?> /> 71 75 <strong><?php _e( 'This is a private group', 'buddypress' ); ?></strong> 72 76 <ul> 73 <li><?php _e( 'Only users who request membership and are accepted can join the group.', 'buddypress' ); ?></li>77 <li><?php group_membership_request_description( 'private' ); ?></li> 74 78 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 75 79 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 76 80 </ul> 77 81 </label> 82 <?php endif; ?> 78 83 84 <?php if ( is_super_admin() || groups_is_valid_creation_status( 'hidden' ) ) : ?> 79 85 <label><input type="radio" name="group-status" value="hidden"<?php if ( 'hidden' == bp_get_new_group_status() ) { ?> checked="checked"<?php } ?> /> 80 86 <strong><?php _e('This is a hidden group', 'buddypress'); ?></strong> 81 87 <ul> 82 <li><?php _e( 'Only users who are invited can join the group.', 'buddypress' ); ?></li>88 <li><?php group_membership_request_description( 'hidden' ); ?></li> 83 89 <li><?php _e( 'This group will not be listed in the groups directory or search results.', 'buddypress' ); ?></li> 84 90 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 85 91 </ul> 86 92 </label> 93 <?php endif; ?> 87 94 </div> 88 95 89 96 <h4><?php _e( 'Group Invitations', 'buddypress' ); ?></h4> -
buddypress/bp-themes/bp-default/groups/single/admin.php
diff -ur ../plugins.orig/buddypress/bp-themes/bp-default/groups/single/admin.php buddypress/bp-themes/bp-default/groups/single/admin.php
old new 60 60 <input type="radio" name="group-status" value="public"<?php bp_group_show_status_setting( 'public' ); ?> /> 61 61 <strong><?php _e( 'This is a public group', 'buddypress' ); ?></strong> 62 62 <ul> 63 <li><?php _e( 'Any site member can join this group.', 'buddypress' ); ?></li>63 <li><?php group_membership_request_description( 'public' ); ?></li> 64 64 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 65 65 <li><?php _e( 'Group content and activity will be visible to any site member.', 'buddypress' ); ?></li> 66 66 </ul> … … 70 70 <input type="radio" name="group-status" value="private"<?php bp_group_show_status_setting( 'private' ); ?> /> 71 71 <strong><?php _e( 'This is a private group', 'buddypress' ); ?></strong> 72 72 <ul> 73 <li><?php _e( 'Only users who request membership and are accepted can join the group.', 'buddypress' ); ?></li>73 <li><?php group_membership_request_description( 'private' ); ?></li> 74 74 <li><?php _e( 'This group will be listed in the groups directory and in search results.', 'buddypress' ); ?></li> 75 75 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 76 76 </ul> … … 80 80 <input type="radio" name="group-status" value="hidden"<?php bp_group_show_status_setting( 'hidden' ); ?> /> 81 81 <strong><?php _e( 'This is a hidden group', 'buddypress' ); ?></strong> 82 82 <ul> 83 <li><?php _e( 'Only users who are invited can join the group.', 'buddypress' ); ?></li>83 <li><?php group_membership_request_description( 'hidden' ); ?></li> 84 84 <li><?php _e( 'This group will not be listed in the groups directory or search results.', 'buddypress' ); ?></li> 85 85 <li><?php _e( 'Group content and activity will only be visible to members of the group.', 'buddypress' ); ?></li> 86 86 </ul> -
buddypress/bp-themes/bp-default/_inc/ajax.php
diff -ur ../plugins.orig/buddypress/bp-themes/bp-default/_inc/ajax.php 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