function bp_get_group_join_button($group = false)
{
    global $groups_template;
    if (empty($group)) {
        $group =& $groups_template->group;
    }
    if (!is_user_logged_in() || bp_group_is_user_banned($group)) {
        return false;
    }
    // Group creation was not completed or status is unknown
    if (!$group->status) {
        return false;
    }
    // Already a member
    if (isset($group->is_member) && $group->is_member) {
        // Stop sole admins from abandoning their group
        $group_admins = groups_get_group_admins($group->id);
        if (1 == count($group_admins) && $group_admins[0]->user_id == bp_loggedin_user_id()) {
            return false;
        }
        $button = array('id' => 'leave_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'leave-group', 'groups_leave_group'), 'link_text' => __('Leave Group', 'buddypress'), 'link_title' => __('Leave Group', 'buddypress'), 'link_class' => 'group-button leave-group');
        // Not a member
    } else {
        // Show different buttons based on group status
        switch ($group->status) {
            case 'hidden':
                return false;
                break;
            case 'public':
                $button = array('id' => 'join_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'join', 'groups_join_group'), 'link_text' => __('Join Group', 'buddypress'), 'link_title' => __('Join Group', 'buddypress'), 'link_class' => 'group-button join-group');
                break;
            case 'private':
                // Member has outstanding invitation -
                // show an "Accept Invitation" button
                if ($group->is_invited) {
                    $button = array('id' => 'accept_invite', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => add_query_arg('redirect_to', bp_get_group_permalink($group), bp_get_group_accept_invite_link($group)), 'link_text' => __('Accept Invitation', 'buddypress'), 'link_title' => __('Accept Invitation', 'buddypress'), 'link_class' => 'group-button accept-invite');
                    // Member has requested membership but request is pending -
                    // show a "Request Sent" button
                } elseif ($group->is_pending) {
                    $button = array('id' => 'membership_requested', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button pending ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => bp_get_group_permalink($group), 'link_text' => __('Request Sent', 'buddypress'), 'link_title' => __('Request Sent', 'buddypress'), 'link_class' => 'group-button pending membership-requested');
                    // Member has not requested membership yet -
                    // show a "Request Membership" button
                } else {
                    $button = array('id' => 'request_membership', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'request-membership', 'groups_request_membership'), 'link_text' => __('Request Membership', 'buddypress'), 'link_title' => __('Request Membership', 'buddypress'), 'link_class' => 'group-button request-membership');
                }
                break;
        }
    }
    // Filter and return the HTML button
    return bp_get_button(apply_filters('bp_get_group_join_button', $button));
}
/**
 * Return button to join a group.
 *
 * @since 1.0.0
 *
 * @param object|bool $group Single group object.
 * @return mixed
 */
function bp_get_group_join_button($group = false)
{
    global $groups_template;
    // Set group to current loop group if none passed.
    if (empty($group)) {
        $group =& $groups_template->group;
    }
    // Don't show button if not logged in or previously banned.
    if (!is_user_logged_in() || bp_group_is_user_banned($group)) {
        return false;
    }
    // Group creation was not completed or status is unknown.
    if (empty($group->status)) {
        return false;
    }
    // Already a member.
    if (!empty($group->is_member)) {
        // Stop sole admins from abandoning their group.
        $group_admins = groups_get_group_admins($group->id);
        if (1 == count($group_admins) && bp_loggedin_user_id() === (int) $group_admins[0]->user_id) {
            return false;
        }
        // Setup button attributes.
        $button = array('id' => 'leave_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'leave-group', 'groups_leave_group'), 'link_text' => __('Leave Group', 'buddypress'), 'link_title' => __('Leave Group', 'buddypress'), 'link_class' => 'group-button leave-group');
        // Not a member.
    } else {
        // Show different buttons based on group status.
        switch ($group->status) {
            case 'hidden':
                return false;
            case 'public':
                $button = array('id' => 'join_group', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'join', 'groups_join_group'), 'link_text' => __('Join Group', 'buddypress'), 'link_title' => __('Join Group', 'buddypress'), 'link_class' => 'group-button join-group');
                break;
            case 'private':
                // Member has outstanding invitation -
                // show an "Accept Invitation" button.
                if ($group->is_invited) {
                    $button = array('id' => 'accept_invite', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => add_query_arg('redirect_to', bp_get_group_permalink($group), bp_get_group_accept_invite_link($group)), 'link_text' => __('Accept Invitation', 'buddypress'), 'link_title' => __('Accept Invitation', 'buddypress'), 'link_class' => 'group-button accept-invite');
                    // Member has requested membership but request is pending -
                    // show a "Request Sent" button.
                } elseif ($group->is_pending) {
                    $button = array('id' => 'membership_requested', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button pending ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => bp_get_group_permalink($group), 'link_text' => __('Request Sent', 'buddypress'), 'link_title' => __('Request Sent', 'buddypress'), 'link_class' => 'group-button pending membership-requested');
                    // Member has not requested membership yet -
                    // show a "Request Membership" button.
                } else {
                    $button = array('id' => 'request_membership', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'group-button ' . $group->status, 'wrapper_id' => 'groupbutton-' . $group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($group) . 'request-membership', 'groups_request_membership'), 'link_text' => __('Request Membership', 'buddypress'), 'link_title' => __('Request Membership', 'buddypress'), 'link_class' => 'group-button request-membership');
                }
                break;
        }
    }
    /**
     * Filters the HTML button for joining a group.
     *
     * @since 1.2.6
     * @since 2.4.0 Added $group parameter to filter args.
     *
     * @param string $button HTML button for joining a group.
     * @param object $group BuddyPress group object
     */
    return bp_get_button(apply_filters('bp_get_group_join_button', $button, $group));
}
function bp_group_accept_invite_link()
{
    echo bp_get_group_accept_invite_link();
}
function bp_legacy_theme_ajax_get_user_joinleave_group_status_a($group, $my_current_user_id)
{
    // Not a member
    if (!groups_is_user_member(bp_loggedin_user_id(), $group->id)) {
        if ('public' == $group->status) {
            //check_ajax_referer( 'groups_join_group' );
            //if ( ! groups_join_group( $group->id ) ) {
            //        _e( 'Error joining group', 'buddypress' );
            //} else {
            return '<div class="generic-button group-button public" id="groupbutton-' . esc_attr($group->id) . '"><a id="group-' . esc_attr($group->id) . '" class="group-button 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>' . '</div>';
            //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>';
            //}
        } elseif ('private' == $group->status) {
            // If the user has already been invited, then this is
            // an Accept Invitation button
            if (groups_check_user_has_invite($my_current_user_id, $group->id)) {
                //check_ajax_referer( 'groups_accept_invite' );
                //if ( ! groups_accept_invite( bp_loggedin_user_id(), $group->id ) ) {
                //        _e( 'Error requesting membership', 'buddypress' );
                //} else {
                return '<div class="generic-button group-button private" id="groupbutton-' . esc_attr($group->id) . '"><a id="group-' . esc_attr($group->id) . '" class="group-button accept-invite" rel="accept-invite" title="' . __('Accept Invitation', 'buddypress') . '" href="' . add_query_arg('redirect_to', bp_get_group_permalink($group), bp_get_group_accept_invite_link($group)) . '">' . __('Accept Invitation', 'buddypress') . '</a>' . '</div>';
                //}
                // The user requested membership and the request is pending
            } else {
                if ($group->is_pending) {
                    return '<div class="generic-button group-button pending private" id="groupbutton-' . esc_attr($group->id) . '"><a id="group-' . esc_attr($group->id) . '" class="group-button membership-requested" rel="membership-requested" title="' . __('Membership Requested', 'buddypress') . '" href="' . bp_get_group_permalink($group) . '">' . __('Membership Requested', 'buddypress') . '</a>' . '</div>';
                    // Otherwise, the user hasn't requested membership yet
                } else {
                    //check_ajax_referer( 'groups_request_membership' );
                    //if ( ! groups_send_membership_request( bp_loggedin_user_id(), $group->id ) ) {
                    //        _e( 'Error requesting membership', 'buddypress' );
                    //} else {
                    return '<div class="generic-button group-button private" id="groupbutton-' . esc_attr($group->id) . '"><a id="group-' . esc_attr($group->id) . '" class="group-button request-membership" rel="request-membership" title="' . __('Request Membership', 'buddypress') . '" href="' . wp_nonce_url(bp_get_group_permalink($group) . 'request-membership', 'groups_request_membership') . '">' . __('Request Membership', 'buddypress') . '</a>' . '</div>';
                    //}
                }
            }
        }
    } else {
        // The user is a member
        //check_ajax_referer( 'groups_leave_group' );
        $myclasstoadd = "";
        //if ( ! groups_leave_group( $group->id ) ) {
        //        _e( 'Error leaving group', 'buddypress' );
        //} elseif ( 'public' == $group->status ) {
        //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>';
        return '<div class="generic-button group-button ' . $group->status . '" id="groupbutton-' . esc_attr($group->id) . '"><a id="group-' . esc_attr($group->id) . '" class="group-button 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>';
        //} elseif ( 'private' == $group->status ) {
        // 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>';
        //}
    }
    //exit;
}
function bp_group_accept_invite_link($deprecated = false)
{
    echo bp_get_group_accept_invite_link();
}
 /**
  * Eventually change the group action buttons
  */
 public function join_button($button)
 {
     global $groups_template;
     if (empty($groups_template->group->need_request) || 'leave_group' == $button['id']) {
         return $button;
     }
     // Difficult to filter BuddyPress ajax functions, so disabling them.
     if ($groups_template->group->is_invited) {
         $button = array('id' => 'accept_invite', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'no-ajax ' . $groups_template->group->status, 'wrapper_id' => 'groupbutton-' . $groups_template->group->id, 'link_href' => add_query_arg('redirect_to', bp_get_group_permalink($groups_template->group), bp_get_group_accept_invite_link($groups_template->group)), 'link_text' => __('Accept Invitation', 'altctrl-public-group'), 'link_title' => __('Accept Invitation', 'altctrl-public-group'), 'link_class' => 'group-button accept-invite');
     } elseif ($groups_template->group->is_pending) {
         $button = array('id' => 'membership_requested', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'no-ajax pending ' . $groups_template->group->status, 'wrapper_id' => 'groupbutton-' . $groups_template->group->id, 'link_href' => bp_get_group_permalink($groups_template->group), 'link_text' => __('Request Sent', 'altctrl-public-group'), 'link_title' => __('Request Sent', 'altctrl-public-group'), 'link_class' => 'group-button pending membership-requested');
     } elseif (!is_super_admin()) {
         $button = array('id' => 'request_membership', 'component' => 'groups', 'must_be_logged_in' => true, 'block_self' => false, 'wrapper_class' => 'no-ajax ' . $groups_template->group->status, 'wrapper_id' => 'groupbutton-' . $groups_template->group->id, 'link_href' => wp_nonce_url(bp_get_group_permalink($groups_template->group) . 'request-membership', 'groups_request_membership'), 'link_text' => __('Request Membership', 'altctrl-public-group'), 'link_title' => __('Request Membership', 'altctrl-public-group'), 'link_class' => 'group-button request-membership');
     }
     return $button;
 }