Ticket #5032: 5032.003.diff
| File 5032.003.diff, 10.7 KB (added by , 13 years ago) |
|---|
-
bp-groups/bp-groups-classes.php
class BP_Groups_Member { 1475 1475 return $wpdb->get_var( $wpdb->prepare( $sql, $user_id, $group_id ) ); 1476 1476 } 1477 1477 1478 function get_invites_and_requests( $user_id, $group_id ) { 1479 global $wpdb, $bp; 1480 1481 if ( empty( $user_id ) ) 1482 return false; 1483 1484 $sql = "SELECT id, inviter_id FROM {$bp->groups->table_name_members} WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND is_banned = 0"; 1485 1486 return $wpdb->get_results( $wpdb->prepare( $sql, $user_id, $group_id ), "ARRAY_A" ); 1487 } 1488 1478 1489 function delete_invite( $user_id, $group_id ) { 1479 1490 global $wpdb, $bp; 1480 1491 -
bp-groups/bp-groups-functions.php
function groups_invite_user( $args = '' ) { 655 655 return false; 656 656 657 657 if ( !groups_is_user_member( $user_id, $group_id ) && !groups_check_user_has_invite( $user_id, $group_id, 'all' ) ) { 658 659 // Check if the user already requested membership - if so, simply accept membership request 660 if ( $membership_id = groups_check_for_membership_request ( $user_id, $group_id ) ) { 661 groups_accept_membership_request ($membership_id, $user_id, $group_id); 662 return true; 663 } 664 658 665 $invite = new BP_Groups_Member; 659 666 $invite->group_id = $group_id; 660 667 $invite->user_id = $user_id; … … function groups_send_membership_request( $requesting_user_id, $group_id ) { 872 879 if ( groups_is_user_member( $requesting_user_id, $group_id ) || groups_is_user_banned( $requesting_user_id, $group_id ) ) 873 880 return false; 874 881 882 // Check if the user is already invited - if so, simply accept invite 883 if ( groups_check_user_has_invite ( $requesting_user_id, $group_id ) ) { 884 groups_accept_invite ( $requesting_user_id, $group_id ); 885 return true; 886 } 887 875 888 $requesting_user = new BP_Groups_Member; 876 889 $requesting_user->group_id = $group_id; 877 890 $requesting_user->user_id = $requesting_user_id; … … function groups_accept_all_pending_membership_requests( $group_id ) { 973 986 return true; 974 987 } 975 988 989 function groups_check_for_membership_request_and_invite( $user_id, $group_id ) { 990 $ret = array( 991 'has_invite' => false, 992 'has_request' => false, 993 ); 994 995 $data = BP_Groups_Member::get_invites_and_requests( $user_id, $group_id ); 996 foreach ( $data as $row ) { 997 if ( $row['inviter_id'] != 0 ) { 998 $ret['has_invite'] = true; 999 } else { 1000 $ret['has_request'] = true; 1001 } 1002 } 1003 1004 return $ret; 1005 } 1006 976 1007 /*** Group Meta ****************************************************/ 977 1008 978 1009 function groups_delete_groupmeta( $group_id, $meta_key = false, $meta_value = false ) { -
bp-groups/bp-groups-loader.php
class BP_Groups_Component extends BP_Component { 423 423 !groups_check_for_membership_request( bp_loggedin_user_id(), $this->current_group->id ) && 424 424 $this->current_group->status == 'private' 425 425 ) { 426 if ( groups_check_user_has_invite( bp_loggedin_user_id(), $this->current_group->id ) ) 427 $label = __( 'Accept Invitation', 'buddypress' ); 428 else 429 $label = __( 'Request Membership', 'buddypress' ); 430 426 431 $sub_nav[] = array( 427 'name' => __( 'Request Membership', 'buddypress' ),432 'name' => $label, 428 433 'slug' => 'request-membership', 429 434 'parent_url' => $group_link, 430 435 'parent_slug' => $this->current_group->slug, -
bp-groups/bp-groups-screens.php
function groups_screen_group_request_membership() { 467 467 if ( 'private' != $bp->groups->current_group->status ) 468 468 return false; 469 469 470 // If the user is already invited, accept invitation 471 if ( groups_check_user_has_invite( bp_loggedin_user_id(), $bp->groups->current_group->id ) ) { 472 if ( groups_accept_invite( bp_loggedin_user_id(), $bp->groups->current_group->id ) ) 473 bp_core_add_message( __( 'Group invite accepted', 'buddypress' ) ); 474 else 475 bp_core_add_message( __( 'There was an error accepting the group invitation, please try again.', 'buddypress' ), 'error' ); 476 bp_core_redirect( bp_get_group_permalink( $bp->groups->current_group ) ); 477 } 478 470 479 // If the user has submitted a request, send it. 471 480 if ( isset( $_POST['group-request-send']) ) { 472 481 … … class BP_Groups_Theme_Compat { 1115 1124 /** Single ****************************************************************/ 1116 1125 1117 1126 /** 1118 * Add custom template hierarchy to theme compat for group pages. 1127 * Add custom template hierarchy to theme compat for group pages. 1119 1128 * 1120 1129 * This is to mirror how WordPress has {@link https://codex.wordpress.org/Template_Hierarchy template hierarchy}. 1121 1130 * -
bp-groups/bp-groups-template.php
function bp_group_join_button( $group = false ) { 1780 1780 1781 1781 case 'private' : 1782 1782 1783 // Member has not requested membership yet 1784 if ( !bp_group_has_requested_membership( $group ) ) { 1783 $membership_status = groups_check_for_membership_request_and_invite( bp_loggedin_user_id(), $group->id ); 1784 1785 // Member has invite 1786 if ( $membership_status['has_invite'] ) { 1785 1787 $button = array( 1786 'id' => ' request_membership',1788 'id' => 'accept_invite', 1787 1789 'component' => 'groups', 1788 1790 'must_be_logged_in' => true, 1789 1791 'block_self' => false, 1790 1792 'wrapper_class' => 'group-button ' . $group->status, 1791 1793 'wrapper_id' => 'groupbutton-' . $group->id, 1792 1794 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ), 1793 'link_text' => __( ' Request Membership', 'buddypress' ),1794 'link_title' => __( ' Request Membership', 'buddypress' ),1795 'link_class' => 'group-button request-membership',1795 'link_text' => __( 'Accept Invitation', 'buddypress' ), 1796 'link_title' => __( 'Accept Invitation', 'buddypress' ), 1797 'link_class' => 'group-button accept-invite', 1796 1798 ); 1797 1799 1798 1800 // Member has requested membership already 1799 } else {1801 } elseif ( $membership_status['has_request'] ) { 1800 1802 $button = array( 1801 1803 'id' => 'membership_requested', 1802 1804 'component' => 'groups', … … function bp_group_join_button( $group = false ) { 1809 1811 'link_title' => __( 'Request Sent', 'buddypress' ), 1810 1812 'link_class' => 'group-button pending membership-requested', 1811 1813 ); 1814 1815 // Member has not requested membership yet 1816 } else { 1817 $button = array( 1818 'id' => 'request_membership', 1819 'component' => 'groups', 1820 'must_be_logged_in' => true, 1821 'block_self' => false, 1822 'wrapper_class' => 'group-button ' . $group->status, 1823 'wrapper_id' => 'groupbutton-' . $group->id, 1824 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ), 1825 'link_text' => __( 'Request Membership', 'buddypress' ), 1826 'link_title' => __( 'Request Membership', 'buddypress' ), 1827 'link_class' => 'group-button request-membership', 1828 ); 1812 1829 } 1813 1830 1814 1831 break; -
bp-templates/bp-legacy/buddypress-functions.php
function bp_legacy_theme_ajax_joinleave_group() { 1056 1056 } elseif ( 'private' == $group->status ) { 1057 1057 check_ajax_referer( 'groups_request_membership' ); 1058 1058 1059 if ( ! groups_send_membership_request( bp_loggedin_user_id(), $group->id ) ) { 1059 if ( groups_check_user_has_invite ( bp_loggedin_user_id(), $group->id ) ) { 1060 if ( ! groups_accept_invite ( bp_loggedin_user_id(), $group->id ) ) { 1061 _e( 'Error requesting membership', 'buddypress' ); 1062 } else { 1063 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>'; 1064 } 1065 } elseif ( ! groups_send_membership_request( bp_loggedin_user_id(), $group->id ) ) { 1060 1066 _e( 'Error requesting membership', 'buddypress' ); 1061 1067 } else { 1062 1068 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>'; -
bp-themes/bp-default/_inc/ajax.php
function bp_dtheme_ajax_joinleave_group() { 718 718 } elseif ( 'private' == $group->status ) { 719 719 check_ajax_referer( 'groups_request_membership' ); 720 720 721 if ( ! groups_send_membership_request( bp_loggedin_user_id(), $group->id ) ) { 721 if ( groups_check_user_has_invite ( bp_loggedin_user_id(), $group->id ) ) { 722 if ( ! groups_accept_invite ( bp_loggedin_user_id(), $group->id ) ) { 723 _e( 'Error requesting membership', 'buddypress' ); 724 } else { 725 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>'; 726 } 727 } elseif ( ! groups_send_membership_request( bp_loggedin_user_id(), $group->id ) ) { 722 728 _e( 'Error requesting membership', 'buddypress' ); 723 729 } else { 724 730 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>';
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)