Skip to:
Content

BuddyPress.org

Ticket #1125: bp-groups.patch

File bp-groups.patch, 3.4 KB (added by messenlehner, 15 years ago)

Patch for /bp-groups.php to add semi-private group functionality

  • bp-groups.php

     
    146146                'group-invites' => array( 'name' => __( 'Group Invites', 'buddypress' ), 'position' => 30 )
    147147        ) );
    148148       
    149         $bp->groups->valid_status = apply_filters( 'groups_valid_status', array( 'public', 'private', 'hidden' ) );
     149        $bp->groups->valid_status = apply_filters( 'groups_valid_status', array( 'public', 'private', 'hidden', 'semi' ) );
    150150
    151151        do_action( 'groups_setup_globals' );
    152152}
     
    272272                                bp_core_new_subnav_item( array( 'name' => __( 'Admin', 'buddypress' ), 'slug' => 'admin', 'parent_url' => $group_link, 'parent_slug' => $bp->groups->slug, 'screen_function' => 'groups_screen_group_admin', 'position' => 20, 'user_has_access' => ( $bp->is_item_admin + (int)$bp->is_item_mod ), 'item_css_id' => 'group-admin' ) );
    273273
    274274                        // If this is a private group, and the user is not a member, show a "Request Membership" nav item.
    275                         if ( is_user_logged_in() && !$bp->groups->current_group->is_user_member && !groups_check_for_membership_request( $bp->loggedin_user->id, $bp->groups->current_group->id ) && $bp->groups->current_group->status == 'private' )
     275                        if ( is_user_logged_in() && !$bp->groups->current_group->is_user_member && !groups_check_for_membership_request( $bp->loggedin_user->id, $bp->groups->current_group->id ) && $bp->groups->current_group->status == 'private' || is_user_logged_in() && !$bp->groups->current_group->is_user_member && !groups_check_for_membership_request( $bp->loggedin_user->id, $bp->groups->current_group->id ) && $bp->groups->current_group->status == 'semi')
    276276                                bp_core_new_subnav_item( array( 'name' => __( 'Request Membership', 'buddypress' ), 'slug' => 'request-membership', 'parent_url' => $group_link, 'parent_slug' => $bp->groups->slug, 'screen_function' => 'groups_screen_group_request_membership', 'position' => 30 ) );
    277277
    278278                        if ( $bp->groups->current_group->enable_forum && function_exists('bp_forums_setup') )
     
    481481                                $group_status = 'private';
    482482                        else if ( 'hidden' == $_POST['group-status'] )
    483483                                $group_status = 'hidden';
     484                        else if ( 'semi' == $_POST['group-status'] )
     485                                $group_status = 'semi';
    484486               
    485487                        if ( !$bp->groups->new_group_id = groups_create_group( array( 'group_id' => $bp->groups->new_group_id, 'status' => $group_status, 'enable_wire' => $group_enable_wire, 'enable_forum' => $group_enable_forum ) ) ) {
    486488                                bp_core_add_message( __( 'There was an error saving group details, please try again.', 'buddypress' ), 'error' );
     
    924926        if ( !is_user_logged_in() )
    925927                return false;
    926928       
    927         if ( 'private' == $bp->groups->current_group->status ) {
     929        if ( 'private' == $bp->groups->current_group->status || 'semi' == $bp->groups->current_group->status ) {
    928930                // If the user has submitted a request, send it.
    929931                if ( isset( $_POST['group-request-send']) ) {
    930932                        /* Check the nonce first. */
     
    10101012                        $enable_photos = ( isset($_POST['group-show-photos'] ) ) ? 1 : 0;
    10111013                        $photos_admin_only = ( $_POST['group-photos-status'] != 'all' ) ? 1 : 0;
    10121014                       
    1013                         $allowed_status = apply_filters( 'groups_allowed_status', array( 'public', 'private', 'hidden' ) );
     1015                        $allowed_status = apply_filters( 'groups_allowed_status', array( 'public', 'private', 'hidden', 'semi' ) );
    10141016                        $status = ( in_array( $_POST['group-status'], (array)$allowed_status ) ) ? $_POST['group-status'] : 'public';
    10151017                       
    10161018                        /* Check the nonce first. */