has_caps = true; /* Group API Extension Properties */ $this->name = __( 'Send Invites', 'buddypress' ); $this->slug = BP_INVITE_ANYONE_SLUG; /* Set as early in the order as possible */ $this->create_step_position = 42; $this->nav_item_position = 71; /* Generic check access */ if ( $this->has_caps == false ) { $this->enable_create_step = false; $this->enable_edit_step = false; } } function display() { invite_anyone_create_screen_content( 'invite' ); } function create_screen() { global $bp; /* If we're not at this step, go bye bye */ if ( !bp_is_group_creation_step( $this->slug ) ) return false; invite_anyone_create_screen_content( 'create' ); wp_nonce_field( 'groups_create_save_' . $this->slug ); } function create_screen_save( ) { global $bp; /* Always check the referer */ check_admin_referer( 'groups_create_save_' . $this->slug ); /* Set method and save */ $this->method = 'create'; $this->save(); } function save() { global $bp; /* Set error redirect based on save method */ if ( $this->method == 'create' ) $redirect_url = $bp->loggedin_user->domain . $bp->groups->slug . '/create/step/' . $this->slug; else $redirect_url = bp_get_group_permalink( $bp->groups->current_group ) . '/admin/' . $this->slug; groups_send_invites( $bp->loggedin_user->id, $bp->groups->current_group->id ); bp_core_add_message( __('Group invites sent.', 'buddypress') ); } function widget_display() {} } bp_register_group_extension( 'BP_Invite_Anyone' ); function invite_anyone_create_screen_content( $event ) { ?>

 

false, 'separator' => 'li' ); $r = wp_parse_args( $args, $defaults ); extract( $r, EXTR_SKIP ); if ( !$group_id ) $group_id = ( $bp->groups->new_group_id ) ? $bp->groups->new_group_id : $bp->groups->current_group->id; $friends = get_members_invite_list( $bp->loggedin_user->id, $group_id ); if ( $friends ) { $invites = groups_get_invites_for_group( $bp->loggedin_user->id, $group_id ); for ( $i = 0; $i < count( $friends ); $i++ ) { if ( $invites ) { if ( in_array( $friends[$i]['id'], $invites ) ) { $checked = ' checked="checked"'; } else { $checked = ''; } } $items[] = '<' . $separator . '> ' . $friends[$i]['full_name'] . ''; } } return implode( "\n", (array)$items ); } function get_members_invite_list( $user_id = false, $group_id ) { global $bp; if ( !$user_id ) $user_id = $bp->loggedin_user->id; if ( method_exists ( 'BP_Core_User', 'get_alphabetical_users' ) ) // For BP < 1.2 $friend_ids = BP_Core_User::get_alphabetical_users(); else $friend_ids = BP_Core_User::get_users('alphabetical'); if ( (int) $friend_ids['total'] < 1 ) return false; for ( $i = 0; $i < count($friend_ids['users']); $i++ ) { if ( $friend_ids['users'][$i]->user_id ) // For BP < 1.2 $user_id = $friend_ids['users'][$i]->user_id; else $user_id = $friend_ids['users'][$i]->id; if ( groups_check_user_has_invite( $user_id, $group_id ) || groups_is_user_member( $user_id, $group_id ) ) continue; $display_name = bp_core_get_user_displayname( $user_id ); if ( $display_name != '' ) { $friends[] = array( 'id' => $user_id, 'full_name' => $display_name ); } } if ( !$friends ) return false; return $friends; } function invite_anyone_ajax_invite_user() { global $bp; check_ajax_referer( 'groups_invite_uninvite_user' ); if ( !$_POST['friend_id'] || !$_POST['friend_action'] || !$_POST['group_id'] ) return false; if ( !groups_is_user_admin( $bp->loggedin_user->id, $_POST['group_id'] ) ) return false; //if ( !friends_check_friendship( $bp->loggedin_user->id, $_POST['friend_id'] ) ) //return false; if ( 'invite' == $_POST['friend_action'] ) { if ( !groups_invite_user( array( 'user_id' => $_POST['friend_id'], 'group_id' => $_POST['group_id'] ) ) ) return false; $user = new BP_Core_User( $_POST['friend_id'] ); echo '
  • '; echo $user->avatar_thumb; echo '

    ' . $user->user_link . '

    '; echo '' . attribute_escape( $user->last_active ) . ''; echo ''; echo '
  • '; } else if ( 'uninvite' == $_POST['friend_action'] ) { if ( !groups_uninvite_user( $_POST['friend_id'], $_POST['group_id'] ) ) return false; return true; } else { return false; } } add_action( 'wp_ajax_invite_anyone_groups_invite_user', 'invite_anyone_ajax_invite_user' ); function invite_anyone_ajax_autocomplete_results() { global $bp; $friends = false; // Get the friend ids based on the search terms if ( function_exists( 'invite_anyone_search_members' ) ) $friends = invite_anyone_search_members( $_GET['q'], 500, 1 ); //print_r($friends); $friends = apply_filters( 'bp_friends_autocomplete_list', $friends, $_GET['q'], $_GET['limit'] ); if ( $friends['users'] ) { foreach ( $friends['users'] as $user ) { if ( $user->user_id ) // For BP < 1.2 $user_id = $user->user_id; else $user_id = $user->id; $ud = get_userdata($user_id); $username = $ud->user_login; echo bp_core_fetch_avatar( array( 'item_id' => $user_id, 'type' => 'thumb', 'width' => 25, 'height' => 25 ) ) . ' ' . bp_core_get_user_displayname( $user->user_id ) . ' (' . $username . ') '; } } } add_action( 'wp_ajax_invite_anyone_autocomplete_results', 'invite_anyone_ajax_autocomplete_results' ); function invite_anyone_search_members( $search_terms, $pag_num = 10, $pag_page = 1 ) { return BP_Core_User::search_users( $search_terms, $pag_num, $pag_page ); } require ( WP_PLUGIN_DIR . '/invite-anyone/invite-anyone/invite-anyone-cssjs.php' ); function invite_anyone_js_loader() { wp_enqueue_script( 'inviteAnyoneJS' ); } add_action( 'init', 'invite_anyone_js_loader' ); function invite_anyone_remove_group_creation_invites( $a ) { foreach ( $a as $key => $value ) { if ( $key == 'group-invites' ) { unset( $a[$key] ); } } return $a; } add_filter( 'groups_create_group_steps', 'invite_anyone_remove_group_creation_invites', 1 ); function invite_anyone_remove_invite_subnav() { global $bp; bp_core_remove_subnav_item( $bp->groups->slug, 'send-invites' ); } add_action( 'wp', 'invite_anyone_remove_invite_subnav', 2 ); add_action( 'admin_menu', 'invite_anyone_remove_invite_subnav', 2 ); ?>