Changeset 12430
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-groups/classes/class-bp-groups-group.php
r12426 r12430 772 772 */ 773 773 public static function get_invites( $user_id, $group_id, $sent = null ) { 774 global $wpdb; 775 776 $bp = buddypress(); 777 $sql = $wpdb->prepare( "SELECT user_id FROM {$bp->groups->table_name_members} WHERE group_id = %d and is_confirmed = 0 AND inviter_id = %d", $group_id, $user_id ); 778 779 // Query for a specific invite sent status. 780 if ( ! is_null( $sent ) ) { 781 $sql .= $wpdb->prepare( ' AND invite_sent = %d', $sent ); 782 } 783 784 return $wpdb->get_col( $sql ); 774 if ( 0 === $sent ) { 775 $sent_arg = 'draft'; 776 } else if ( 1 === $sent ) { 777 $sent_arg = 'sent'; 778 } else { 779 $sent_arg = 'all'; 780 } 781 782 return groups_get_invites( array( 783 'item_id' => $group_id, 784 'inviter_id' => $user_id, 785 'invite_sent' => $sent_arg, 786 'fields' => 'user_ids', 787 ) ); 785 788 } 786 789 … … 960 963 */ 961 964 public static function get_membership_requests( $group_id, $limit = null, $page = null ) { 962 global $wpdb; 963 964 if ( !empty( $limit ) && !empty( $page ) ) { 965 $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) ); 966 } 967 968 $bp = buddypress(); 969 970 $paged_requests = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_confirmed = 0 AND inviter_id = 0{$pag_sql}", $group_id ) ); 971 $total_requests = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(id) FROM {$bp->groups->table_name_members} WHERE group_id = %d AND is_confirmed = 0 AND inviter_id = 0", $group_id ) ); 972 973 return array( 'requests' => $paged_requests, 'total' => $total_requests ); 965 $args = array( 966 'item_id' => $group_id 967 ); 968 if ( $limit ) { 969 $args['per_page'] = $limit; 970 } 971 if ( $page ) { 972 $args['page'] = $page; 973 } 974 975 $requests = groups_get_requests( $args ); 976 $total = count( groups_get_membership_requested_user_ids( $group_id ) ); 977 978 return array( 'requests' => $requests, 'total' => $total ); 974 979 } 975 980 … … 1638 1643 */ 1639 1644 public static function delete_all_invites( $group_id ) { 1640 global $wpdb; 1641 1642 $bp = buddypress(); 1643 1644 return $wpdb->query( $wpdb->prepare( "DELETE FROM {$bp->groups->table_name_members} WHERE group_id = %d AND invite_sent = 1", $group_id ) ); 1645 if ( empty( $group_id ) ) { 1646 return false; 1647 } 1648 1649 $invites_class = new BP_Groups_Invitation_Manager(); 1650 1651 return $invites_class->delete( array( 1652 'item_id' => $group_id, 1653 ) ); 1645 1654 } 1646 1655 -
trunk/tests/phpunit/testcases/groups/class-bp-groups-group.php
r12328 r12430 1373 1373 public function test_get_group_extras_invited() { 1374 1374 $u = self::factory()->user->create(); 1375 $g = self::factory()->group->create(); 1376 1377 $invite = new BP_Groups_Member; 1378 $invite->group_id = $g; 1379 $invite->user_id = $u; 1380 $invite->date_modified = bp_core_current_time(); 1381 $invite->invite_sent = true; 1382 $invite->is_confirmed = false; 1383 $invite->save(); 1375 $u2 = self::factory()->user->create(); 1376 $g = self::factory()->group->create( array( 'creator_id' => $u2, 'status' => 'private' ) ); 1377 1378 // Outstanding invitations should be left intact. 1379 groups_invite_user( array( 1380 'user_id' => $u, 1381 'group_id' => $g, 1382 'inviter_id' => $u2, 1383 'send_invite' => 1, 1384 ) ); 1384 1385 1385 1386 $paged_groups = array(); … … 1412 1413 public function test_get_group_extras_pending() { 1413 1414 $u = self::factory()->user->create(); 1414 $g = self::factory()->group->create(); 1415 1416 $invite = new BP_Groups_Member; 1417 $invite->group_id = $g; 1418 $invite->user_id = $u; 1419 $invite->date_modified = bp_core_current_time(); 1420 $invite->invite_sent = false; 1421 $invite->is_confirmed = false; 1422 $invite->save(); 1415 $g = self::factory()->group->create( array( 'status' => 'private' ) ); 1416 1417 // Create membership request 1418 groups_send_membership_request( array( 1419 'user_id' => $u, 1420 'group_id' => $g, 1421 ) ); 1423 1422 1424 1423 $paged_groups = array(); … … 1607 1606 $this->assertFalse( $group_a->is_invited ); 1608 1607 1609 $this->add_user_to_group( $users[1], $g, array( 1610 'invite_sent' => 1, 1608 groups_invite_user( array( 1609 'user_id' => $users[1], 1610 'group_id' => $g, 1611 1611 'inviter_id' => $users[0], 1612 'is_confirmed' => 0, 1613 ) ); 1612 'send_invite' => 1 1613 ) ); 1614 1614 1615 $group_b = new BP_Groups_Group( $g ); 1615 1616 $this->assertFalse( $group_b->is_invited ); … … 1631 1632 $this->assertFalse( $group_a->is_pending ); 1632 1633 1633 $this->add_user_to_group( $users[1], $g,array(1634 ' is_confirmed' => 0,1635 ' invite_sent' => 0,1636 'inviter_id' => 0,1637 ) ); 1634 groups_send_membership_request( array( 1635 'user_id' => $users[1], 1636 'group_id' => $g 1637 ) ); 1638 1638 1639 $group_b = new BP_Groups_Group( $g ); 1639 1640 $this->assertFalse( $group_b->is_pending );
Note: See TracChangeset
for help on using the changeset viewer.