Ticket #7126: 7126.patch
File 7126.patch, 32.3 KB (added by , 7 years ago) |
---|
-
src/bp-activity/bp-activity-functions.php
diff --git src/bp-activity/bp-activity-functions.php src/bp-activity/bp-activity-functions.php index 3c8abff..d272dc4 100644
function bp_activity_do_heartbeat() { 3583 3583 3584 3584 return $retval; 3585 3585 } 3586 /** 3587 * Get the arguments for the public message button. 3588 * 3589 * @since ? 3590 * 3591 * @param array|string $args { 3592 * All arguments are optional. See {@link BP_Button} for complete 3593 * descriptions. 3594 * @type string $id Default: 'public_message'. 3595 * @type string $component Default: 'activity'. 3596 * @type bool $must_be_logged_in Default: true. 3597 * @type bool $block_self Default: true. 3598 * @type string $wrapper_id Default: 'post-mention'. 3599 * @type string $link_href Default: the public message link for 3600 * the current member in the loop. 3601 * @type string $link_title Default: 'Send a public message on your 3602 * activity stream.'. 3603 * @type string $link_text Default: 'Public Message'. 3604 * @type string $link_class Default: 'activity-button mention'. 3605 * } 3606 * @return array The arguments for the public message button. 3607 */ 3608 function bp_activity_get_public_message_button_args( $args = '' ) { 3609 /** 3610 * Filters the public message button HTML. 3611 * 3612 * @since 1.2.10 3613 * 3614 * @param array $value Array of arguments for the public message button HTML. 3615 */ 3616 return apply_filters( 'bp_get_send_public_message_button', bp_parse_args( $args, array( 3617 'id' => 'public_message', 3618 'component' => 'activity', 3619 'must_be_logged_in' => true, 3620 'block_self' => true, 3621 'wrapper_id' => 'post-mention', 3622 'link_href' => bp_get_send_public_message_link(), 3623 'link_title' => __( 'Send a public message on your activity stream.', 'buddypress' ), 3624 'link_text' => __( 'Public Message', 'buddypress' ), 3625 'link_class' => 'activity-button mention' 3626 ) ) ); 3627 } -
src/bp-activity/bp-activity-template.php
diff --git src/bp-activity/bp-activity-template.php src/bp-activity/bp-activity-template.php index 810b76e..7fb3c34 100644
function bp_mentioned_user_display_name( $user_id_or_username = false ) { 3145 3145 * 3146 3146 * @since 1.2.0 3147 3147 * 3148 * @see bp_ get_send_public_message_button() for description of parameters.3148 * @see bp_activity_get_public_message_button_args() for description of parameters. 3149 3149 * 3150 * @param array|string $args See {@link bp_ get_send_public_message_button()}.3150 * @param array|string $args See {@link bp_activity_get_public_message_button_args()}. 3151 3151 */ 3152 3152 function bp_send_public_message_button( $args = '' ) { 3153 3153 echo bp_get_send_public_message_button( $args ); … … function bp_send_public_message_button( $args = '' ) { 3158 3158 * 3159 3159 * @since 1.2.0 3160 3160 * 3161 * 3162 * @param array|string $args { 3163 * All arguments are optional. See {@link BP_Button} for complete 3164 * descriptions. 3165 * @type string $id Default: 'public_message'. 3166 * @type string $component Default: 'activity'. 3167 * @type bool $must_be_logged_in Default: true. 3168 * @type bool $block_self Default: true. 3169 * @type string $wrapper_id Default: 'post-mention'. 3170 * @type string $link_href Default: the public message link for 3171 * the current member in the loop. 3172 * @type string $link_title Default: 'Send a public message on your 3173 * activity stream.'. 3174 * @type string $link_text Default: 'Public Message'. 3175 * @type string $link_class Default: 'activity-button mention'. 3176 * } 3161 * @param array|string $args See {@link bp_activity_get_public_message_button_args()}. 3177 3162 * @return string The button for sending a public message. 3178 3163 */ 3179 3164 function bp_get_send_public_message_button( $args = '' ) { 3180 3165 3181 $r = bp_parse_args( $args, array( 3182 'id' => 'public_message', 3183 'component' => 'activity', 3184 'must_be_logged_in' => true, 3185 'block_self' => true, 3186 'wrapper_id' => 'post-mention', 3187 'link_href' => bp_get_send_public_message_link(), 3188 'link_title' => __( 'Send a public message on your activity stream.', 'buddypress' ), 3189 'link_text' => __( 'Public Message', 'buddypress' ), 3190 'link_class' => 'activity-button mention' 3191 ) ); 3166 $button = bp_activity_get_public_message_button_args( $args ); 3192 3167 3193 /** 3194 * Filters the public message button HTML. 3195 * 3196 * @since 1.2.10 3197 * 3198 * @param array $r Array of arguments for the public message button HTML. 3199 */ 3200 return bp_get_button( apply_filters( 'bp_get_send_public_message_button', $r ) ); 3168 if ( ! $button ) { 3169 return false; 3170 } 3171 3172 return bp_get_button( $button ); 3201 3173 } 3202 3174 3203 3175 /** -
src/bp-blogs/bp-blogs-functions.php
diff --git src/bp-blogs/bp-blogs-functions.php src/bp-blogs/bp-blogs-functions.php index 595c305..abf0111 100644
function bp_blogs_restore_data( $user_id = 0 ) { 1349 1349 } 1350 1350 } 1351 1351 add_action( 'bp_make_ham_user', 'bp_blogs_restore_data', 10, 1 ); 1352 1353 /** 1354 * Get the arguments for the create a site button. 1355 * 1356 * @since ? 1357 * 1358 * @return array Array of arguments to be used for the Create a Site button. 1359 */ 1360 function bp_blogs_get_create_button_args() { 1361 /** 1362 * Filters the Create a Site button. 1363 * 1364 * @since 2.0.0 1365 * 1366 * @param array $value Array of arguments to be used for the Create a Site button. 1367 */ 1368 return apply_filters( 'bp_get_blog_create_button', array( 1369 'id' => 'create_blog', 1370 'component' => 'blogs', 1371 'link_text' => __( 'Create a Site', 'buddypress' ), 1372 'link_title' => __( 'Create a Site', 'buddypress' ), 1373 'link_class' => 'blog-create no-ajax', 1374 'link_href' => trailingslashit( bp_get_blogs_directory_permalink() . 'create' ), 1375 'wrapper' => false, 1376 'block_self' => false, 1377 ) ); 1378 } 1379 1380 /** 1381 * Return the arguments of the button for visiting a blog in a loop. 1382 * 1383 * @see BP_Button for a complete description of arguments and return 1384 * value. 1385 * 1386 * @since ? 1387 * 1388 * @param array|string $args { 1389 * Arguments are listed below, with their default values. For a 1390 * complete description of arguments, see {@link BP_Button}. 1391 * @type string $id Default: 'visit_blog'. 1392 * @type string $component Default: 'blogs'. 1393 * @type bool $must_be_logged_in Default: false. 1394 * @type bool $block_self Default: false. 1395 * @type string $wrapper_class Default: 'blog-button visit'. 1396 * @type string $link_href Permalink of the current blog in the loop. 1397 * @type string $link_class Default: 'blog-button visit'. 1398 * @type string $link_text Default: 'Visit Site'. 1399 * @type string $link_title Default: 'Visit Site'. 1400 * } 1401 * @return array Thhe arguments of the button for visiting a blog in a loop. 1402 */ 1403 function bp_blogs_get_visit_button_args( $args = '' ) { 1404 /** 1405 * Filters the button for visiting a blog in a loop. 1406 * 1407 * @since 1.2.10 1408 * 1409 * @param array $value Array of arguments to be used for the button to visit a blog. 1410 */ 1411 return apply_filters( 'bp_get_blogs_visit_blog_button', wp_parse_args( $args, array( 1412 'id' => 'visit_blog', 1413 'component' => 'blogs', 1414 'must_be_logged_in' => false, 1415 'block_self' => false, 1416 'wrapper_class' => 'blog-button visit', 1417 'link_href' => bp_get_blog_permalink(), 1418 'link_class' => 'blog-button visit', 1419 'link_text' => __( 'Visit Site', 'buddypress' ), 1420 'link_title' => __( 'Visit Site', 'buddypress' ), 1421 ) ) ); 1422 } -
src/bp-blogs/bp-blogs-template.php
diff --git src/bp-blogs/bp-blogs-template.php src/bp-blogs/bp-blogs-template.php index 312056f..57e867f 100644
function bp_blog_create_button() { 1276 1276 return false; 1277 1277 } 1278 1278 1279 $button_args = array( 1280 'id' => 'create_blog', 1281 'component' => 'blogs', 1282 'link_text' => __( 'Create a Site', 'buddypress' ), 1283 'link_title' => __( 'Create a Site', 'buddypress' ), 1284 'link_class' => 'blog-create no-ajax', 1285 'link_href' => trailingslashit( bp_get_blogs_directory_permalink() . 'create' ), 1286 'wrapper' => false, 1287 'block_self' => false, 1288 ); 1279 $button_args = bp_blogs_get_create_button_args(); 1289 1280 1290 /** 1291 * Filters the Create a Site button. 1292 * 1293 * @since 2.0.0 1294 * 1295 * @param array $button_args Array of arguments to be used for the Create a Site button. 1296 */ 1297 return bp_get_button( apply_filters( 'bp_get_blog_create_button', $button_args ) ); 1281 if ( ! $button_args ) { 1282 return false; 1283 } 1284 1285 return bp_get_button( $button_args ); 1298 1286 } 1299 1287 1300 1288 /** … … add_action( 'bp_blogs_directory_blog_types', 'bp_blog_backcompat_create_nav_item 1353 1341 /** 1354 1342 * Output button for visiting a blog in a loop. 1355 1343 * 1356 * @see bp_ get_blogs_visit_blog_button() for description of arguments.1344 * @see bp_blogs_get_visit_button_args() for description of arguments. 1357 1345 * 1358 * @param array|string $args See {@link bp_ get_blogs_visit_blog_button()}.1346 * @param array|string $args See {@link bp_blogs_get_visit_button_args()}. 1359 1347 */ 1360 1348 function bp_blogs_visit_blog_button( $args = '' ) { 1361 1349 echo bp_get_blogs_visit_blog_button( $args ); … … function bp_blogs_visit_blog_button( $args = '' ) { 1366 1354 * @see BP_Button for a complete description of arguments and return 1367 1355 * value. 1368 1356 * 1369 * @param array|string $args { 1370 * Arguments are listed below, with their default values. For a 1371 * complete description of arguments, see {@link BP_Button}. 1372 * @type string $id Default: 'visit_blog'. 1373 * @type string $component Default: 'blogs'. 1374 * @type bool $must_be_logged_in Default: false. 1375 * @type bool $block_self Default: false. 1376 * @type string $wrapper_class Default: 'blog-button visit'. 1377 * @type string $link_href Permalink of the current blog in the loop. 1378 * @type string $link_class Default: 'blog-button visit'. 1379 * @type string $link_text Default: 'Visit Site'. 1380 * @type string $link_title Default: 'Visit Site'. 1381 * } 1357 * @param array|string $args See {@link bp_blogs_get_visit_button_args()} 1382 1358 * @return string The HTML for the Visit button. 1383 1359 */ 1384 1360 function bp_get_blogs_visit_blog_button( $args = '' ) { 1385 $defaults = array( 1386 'id' => 'visit_blog', 1387 'component' => 'blogs', 1388 'must_be_logged_in' => false, 1389 'block_self' => false, 1390 'wrapper_class' => 'blog-button visit', 1391 'link_href' => bp_get_blog_permalink(), 1392 'link_class' => 'blog-button visit', 1393 'link_text' => __( 'Visit Site', 'buddypress' ), 1394 'link_title' => __( 'Visit Site', 'buddypress' ), 1395 ); 1396 1397 $button = wp_parse_args( $args, $defaults ); 1361 $button = bp_blogs_get_visit_button_args( $args ); 1398 1362 1399 /** 1400 * Filters the button for visiting a blog in a loop. 1401 * 1402 * @since 1.2.10 1403 * 1404 * @param array $button Array of arguments to be used for the button to visit a blog. 1405 */ 1406 return bp_get_button( apply_filters( 'bp_get_blogs_visit_blog_button', $button ) ); 1363 if ( ! $button ) { 1364 return false; 1365 } 1366 1367 return bp_get_button( $button ); 1407 1368 } 1408 1369 1409 1370 /** Stats **********************************************************************/ -
src/bp-friends/bp-friends-functions.php
diff --git src/bp-friends/bp-friends-functions.php src/bp-friends/bp-friends-functions.php index d9de4cb..95013c1 100644
function bp_friends_prime_mentions_results() { 795 795 ) ); 796 796 } 797 797 add_action( 'bp_activity_mentions_prime_results', 'bp_friends_prime_mentions_results' ); 798 799 /** 800 * Get the arguments for the add friend button 801 * 802 * @since ? 803 * 804 * @param int $potential_friend_id ID of the user to whom the button applies. 805 * Default: value of {@link bp_get_potential_friend_id()}. 806 * @param bool $friend_status Not currently used. 807 * @return array The button arguments. 808 */ 809 function bp_friends_get_add_friend_button_args( $potential_friend_id = 0, $friend_status = false ) { 810 $button = array(); 811 812 if ( empty( $potential_friend_id ) ) { 813 $potential_friend_id = bp_get_potential_friend_id( $potential_friend_id ); 814 } 815 816 $is_friend = bp_is_friend( $potential_friend_id ); 817 818 if ( empty( $is_friend ) ) { 819 return $button; 820 } 821 822 switch ( $is_friend ) { 823 case 'pending' : 824 $button = array( 825 'id' => 'pending', 826 'component' => 'friends', 827 'must_be_logged_in' => true, 828 'block_self' => true, 829 'wrapper_class' => 'friendship-button pending_friend', 830 'wrapper_id' => 'friendship-button-' . $potential_friend_id, 831 'link_href' => wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/requests/cancel/' . $potential_friend_id . '/', 'friends_withdraw_friendship' ), 832 'link_text' => __( 'Cancel Friendship Request', 'buddypress' ), 833 'link_title' => __( 'Cancel Friendship Requested', 'buddypress' ), 834 'link_id' => 'friend-' . $potential_friend_id, 835 'link_rel' => 'remove', 836 'link_class' => 'friendship-button pending_friend requested' 837 ); 838 break; 839 840 case 'awaiting_response' : 841 $button = array( 842 'id' => 'awaiting_response', 843 'component' => 'friends', 844 'must_be_logged_in' => true, 845 'block_self' => true, 846 'wrapper_class' => 'friendship-button awaiting_response_friend', 847 'wrapper_id' => 'friendship-button-' . $potential_friend_id, 848 'link_href' => bp_loggedin_user_domain() . bp_get_friends_slug() . '/requests/', 849 'link_text' => __( 'Friendship Requested', 'buddypress' ), 850 'link_title' => __( 'Friendship Requested', 'buddypress' ), 851 'link_id' => 'friend-' . $potential_friend_id, 852 'link_rel' => 'remove', 853 'link_class' => 'friendship-button awaiting_response_friend requested' 854 ); 855 break; 856 857 case 'is_friend' : 858 $button = array( 859 'id' => 'is_friend', 860 'component' => 'friends', 861 'must_be_logged_in' => true, 862 'block_self' => false, 863 'wrapper_class' => 'friendship-button is_friend', 864 'wrapper_id' => 'friendship-button-' . $potential_friend_id, 865 'link_href' => wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/remove-friend/' . $potential_friend_id . '/', 'friends_remove_friend' ), 866 'link_text' => __( 'Cancel Friendship', 'buddypress' ), 867 'link_title' => __( 'Cancel Friendship', 'buddypress' ), 868 'link_id' => 'friend-' . $potential_friend_id, 869 'link_rel' => 'remove', 870 'link_class' => 'friendship-button is_friend remove' 871 ); 872 break; 873 874 default: 875 $button = array( 876 'id' => 'not_friends', 877 'component' => 'friends', 878 'must_be_logged_in' => true, 879 'block_self' => true, 880 'wrapper_class' => 'friendship-button not_friends', 881 'wrapper_id' => 'friendship-button-' . $potential_friend_id, 882 'link_href' => wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/add-friend/' . $potential_friend_id . '/', 'friends_add_friend' ), 883 'link_text' => __( 'Add Friend', 'buddypress' ), 884 'link_title' => __( 'Add Friend', 'buddypress' ), 885 'link_id' => 'friend-' . $potential_friend_id, 886 'link_rel' => 'add', 887 'link_class' => 'friendship-button not_friends add' 888 ); 889 break; 890 } 891 892 /** 893 * Filters the HTML for the add friend button. 894 * 895 * @since 1.1.0 896 * 897 * @param string $button HTML markup for add friend button. 898 */ 899 return apply_filters( 'bp_get_add_friend_button', $button ); 900 } -
src/bp-friends/bp-friends-template.php
diff --git src/bp-friends/bp-friends-template.php src/bp-friends/bp-friends-template.php index d3cc442..abffa4f 100644
function bp_add_friend_button( $potential_friend_id = 0, $friend_status = false 349 349 * @return string HTML for the Add Friend button. 350 350 */ 351 351 function bp_get_add_friend_button( $potential_friend_id = 0, $friend_status = false ) { 352 $button = bp_friends_get_add_friend_button_args( $potential_friend_id, $friend_status ); 352 353 353 if ( empty( $potential_friend_id ) ) 354 $potential_friend_id = bp_get_potential_friend_id( $potential_friend_id ); 355 356 $is_friend = bp_is_friend( $potential_friend_id ); 357 358 if ( empty( $is_friend ) ) 354 if ( ! $button ) { 359 355 return false; 360 361 switch ( $is_friend ) {362 case 'pending' :363 $button = array(364 'id' => 'pending',365 'component' => 'friends',366 'must_be_logged_in' => true,367 'block_self' => true,368 'wrapper_class' => 'friendship-button pending_friend',369 'wrapper_id' => 'friendship-button-' . $potential_friend_id,370 'link_href' => wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/requests/cancel/' . $potential_friend_id . '/', 'friends_withdraw_friendship' ),371 'link_text' => __( 'Cancel Friendship Request', 'buddypress' ),372 'link_title' => __( 'Cancel Friendship Requested', 'buddypress' ),373 'link_id' => 'friend-' . $potential_friend_id,374 'link_rel' => 'remove',375 'link_class' => 'friendship-button pending_friend requested'376 );377 break;378 379 case 'awaiting_response' :380 $button = array(381 'id' => 'awaiting_response',382 'component' => 'friends',383 'must_be_logged_in' => true,384 'block_self' => true,385 'wrapper_class' => 'friendship-button awaiting_response_friend',386 'wrapper_id' => 'friendship-button-' . $potential_friend_id,387 'link_href' => bp_loggedin_user_domain() . bp_get_friends_slug() . '/requests/',388 'link_text' => __( 'Friendship Requested', 'buddypress' ),389 'link_title' => __( 'Friendship Requested', 'buddypress' ),390 'link_id' => 'friend-' . $potential_friend_id,391 'link_rel' => 'remove',392 'link_class' => 'friendship-button awaiting_response_friend requested'393 );394 break;395 396 case 'is_friend' :397 $button = array(398 'id' => 'is_friend',399 'component' => 'friends',400 'must_be_logged_in' => true,401 'block_self' => false,402 'wrapper_class' => 'friendship-button is_friend',403 'wrapper_id' => 'friendship-button-' . $potential_friend_id,404 'link_href' => wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/remove-friend/' . $potential_friend_id . '/', 'friends_remove_friend' ),405 'link_text' => __( 'Cancel Friendship', 'buddypress' ),406 'link_title' => __( 'Cancel Friendship', 'buddypress' ),407 'link_id' => 'friend-' . $potential_friend_id,408 'link_rel' => 'remove',409 'link_class' => 'friendship-button is_friend remove'410 );411 break;412 413 default:414 $button = array(415 'id' => 'not_friends',416 'component' => 'friends',417 'must_be_logged_in' => true,418 'block_self' => true,419 'wrapper_class' => 'friendship-button not_friends',420 'wrapper_id' => 'friendship-button-' . $potential_friend_id,421 'link_href' => wp_nonce_url( bp_loggedin_user_domain() . bp_get_friends_slug() . '/add-friend/' . $potential_friend_id . '/', 'friends_add_friend' ),422 'link_text' => __( 'Add Friend', 'buddypress' ),423 'link_title' => __( 'Add Friend', 'buddypress' ),424 'link_id' => 'friend-' . $potential_friend_id,425 'link_rel' => 'add',426 'link_class' => 'friendship-button not_friends add'427 );428 break;429 356 } 430 357 431 /** 432 * Filters the HTML for the add friend button. 433 * 434 * @since 1.1.0 435 * 436 * @param string $button HTML markup for add friend button. 437 */ 438 return bp_get_button( apply_filters( 'bp_get_add_friend_button', $button ) ); 358 return bp_get_button( $button ); 439 359 } 440 360 441 361 /** -
src/bp-groups/bp-groups-functions.php
diff --git src/bp-groups/bp-groups-functions.php src/bp-groups/bp-groups-functions.php index cb0753e..78f40c2 100644
function bp_remove_group_type_on_group_delete( $group_id = 0 ) { 2393 2393 bp_groups_set_group_type( $group_id, '' ); 2394 2394 } 2395 2395 add_action( 'groups_delete_group', 'bp_remove_group_type_on_group_delete' ); 2396 2397 /** 2398 * Get the arguments for the Join button group 2399 * 2400 * @since ? 2401 * 2402 * @param BP_Groups_Group $group The group object. 2403 * @return Array The arguments for the Join button group 2404 */ 2405 function bp_groups_get_group_join_button_args( $group = null ) { 2406 $button = array(); 2407 2408 if ( empty( $group->id ) ) { 2409 return $button; 2410 } 2411 2412 // Don't show button if not logged in or previously banned. 2413 if ( ! is_user_logged_in() || bp_group_is_user_banned( $group ) ) { 2414 return $button; 2415 } 2416 2417 // Group creation was not completed or status is unknown. 2418 if ( empty( $group->status ) ) { 2419 return $button; 2420 } 2421 2422 // Already a member. 2423 if ( ! empty( $group->is_member ) ) { 2424 2425 // Stop sole admins from abandoning their group. 2426 $group_admins = groups_get_group_admins( $group->id ); 2427 if ( ( 1 == count( $group_admins ) ) && ( bp_loggedin_user_id() === (int) $group_admins[0]->user_id ) ) { 2428 return false; 2429 } 2430 2431 // Setup button attributes. 2432 $button = array( 2433 'id' => 'leave_group', 2434 'component' => 'groups', 2435 'must_be_logged_in' => true, 2436 'block_self' => false, 2437 'wrapper_class' => 'group-button ' . $group->status, 2438 'wrapper_id' => 'groupbutton-' . $group->id, 2439 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ), 2440 'link_text' => __( 'Leave Group', 'buddypress' ), 2441 'link_title' => __( 'Leave Group', 'buddypress' ), 2442 'link_class' => 'group-button leave-group', 2443 ); 2444 2445 // Not a member. 2446 } else { 2447 2448 // Show different buttons based on group status. 2449 switch ( $group->status ) { 2450 case 'hidden' : 2451 return false; 2452 2453 case 'public': 2454 $button = array( 2455 'id' => 'join_group', 2456 'component' => 'groups', 2457 'must_be_logged_in' => true, 2458 'block_self' => false, 2459 'wrapper_class' => 'group-button ' . $group->status, 2460 'wrapper_id' => 'groupbutton-' . $group->id, 2461 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ), 2462 'link_text' => __( 'Join Group', 'buddypress' ), 2463 'link_title' => __( 'Join Group', 'buddypress' ), 2464 'link_class' => 'group-button join-group', 2465 ); 2466 break; 2467 2468 case 'private' : 2469 2470 // Member has outstanding invitation - 2471 // show an "Accept Invitation" button. 2472 if ( $group->is_invited ) { 2473 $button = array( 2474 'id' => 'accept_invite', 2475 'component' => 'groups', 2476 'must_be_logged_in' => true, 2477 'block_self' => false, 2478 'wrapper_class' => 'group-button ' . $group->status, 2479 'wrapper_id' => 'groupbutton-' . $group->id, 2480 'link_href' => add_query_arg( 'redirect_to', bp_get_group_permalink( $group ), bp_get_group_accept_invite_link( $group ) ), 2481 'link_text' => __( 'Accept Invitation', 'buddypress' ), 2482 'link_title' => __( 'Accept Invitation', 'buddypress' ), 2483 'link_class' => 'group-button accept-invite', 2484 ); 2485 2486 // Member has requested membership but request is pending - 2487 // show a "Request Sent" button. 2488 } elseif ( $group->is_pending ) { 2489 $button = array( 2490 'id' => 'membership_requested', 2491 'component' => 'groups', 2492 'must_be_logged_in' => true, 2493 'block_self' => false, 2494 'wrapper_class' => 'group-button pending ' . $group->status, 2495 'wrapper_id' => 'groupbutton-' . $group->id, 2496 'link_href' => bp_get_group_permalink( $group ), 2497 'link_text' => __( 'Request Sent', 'buddypress' ), 2498 'link_title' => __( 'Request Sent', 'buddypress' ), 2499 'link_class' => 'group-button pending membership-requested', 2500 ); 2501 2502 // Member has not requested membership yet - 2503 // show a "Request Membership" button. 2504 } else { 2505 $button = array( 2506 'id' => 'request_membership', 2507 'component' => 'groups', 2508 'must_be_logged_in' => true, 2509 'block_self' => false, 2510 'wrapper_class' => 'group-button ' . $group->status, 2511 'wrapper_id' => 'groupbutton-' . $group->id, 2512 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ), 2513 'link_text' => __( 'Request Membership', 'buddypress' ), 2514 'link_title' => __( 'Request Membership', 'buddypress' ), 2515 'link_class' => 'group-button request-membership', 2516 ); 2517 } 2518 2519 break; 2520 } 2521 } 2522 2523 /** 2524 * Filters the arguments of the button for joining a group. 2525 * 2526 * @since 1.2.6 2527 * @since 2.4.0 Added $group parameter to filter args. 2528 * 2529 * @param array $button The arguments for the button. 2530 * @param object $group BuddyPress group object 2531 */ 2532 return apply_filters( 'bp_get_group_join_button', $button, $group ); 2533 } 2534 2535 /** 2536 * Get the arguments for the Create a group button. 2537 * 2538 * @since ? 2539 * 2540 * @return Array The arguments for the Create a group button. 2541 */ 2542 function bp_groups_get_create_group_button_args() { 2543 /** 2544 * Filters the arguments of the button for creating a group. 2545 * 2546 * @since 2.0.0 2547 * 2548 * @param array $value The arguments of the button for creating a group. 2549 */ 2550 return apply_filters( 'bp_get_group_create_button', array( 2551 'id' => 'create_group', 2552 'component' => 'groups', 2553 'link_text' => __( 'Create a Group', 'buddypress' ), 2554 'link_title' => __( 'Create a Group', 'buddypress' ), 2555 'link_class' => 'group-create no-ajax', 2556 'link_href' => trailingslashit( bp_get_groups_directory_permalink() . 'create' ), 2557 'wrapper' => false, 2558 'block_self' => false, 2559 ) ); 2560 } -
src/bp-groups/bp-groups-template.php
diff --git src/bp-groups/bp-groups-template.php src/bp-groups/bp-groups-template.php index be28ded..898d88b 100644
function bp_group_join_button( $group = false ) { 3203 3203 $group =& $groups_template->group; 3204 3204 } 3205 3205 3206 // Don't show button if not logged in or previously banned. 3207 if ( ! is_user_logged_in() || bp_group_is_user_banned( $group ) ) { 3208 return false; 3209 } 3206 $button_args = bp_groups_get_group_join_button_args( $group ); 3210 3207 3211 // Group creation was not completed or status is unknown. 3212 if ( empty( $group->status ) ) { 3208 if ( ! $button_args ) { 3213 3209 return false; 3214 3210 } 3215 3211 3216 // Already a member. 3217 if ( ! empty( $group->is_member ) ) { 3218 3219 // Stop sole admins from abandoning their group. 3220 $group_admins = groups_get_group_admins( $group->id ); 3221 if ( ( 1 == count( $group_admins ) ) && ( bp_loggedin_user_id() === (int) $group_admins[0]->user_id ) ) { 3222 return false; 3223 } 3224 3225 // Setup button attributes. 3226 $button = array( 3227 'id' => 'leave_group', 3228 'component' => 'groups', 3229 'must_be_logged_in' => true, 3230 'block_self' => false, 3231 'wrapper_class' => 'group-button ' . $group->status, 3232 'wrapper_id' => 'groupbutton-' . $group->id, 3233 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ), 3234 'link_text' => __( 'Leave Group', 'buddypress' ), 3235 'link_title' => __( 'Leave Group', 'buddypress' ), 3236 'link_class' => 'group-button leave-group', 3237 ); 3238 3239 // Not a member. 3240 } else { 3241 3242 // Show different buttons based on group status. 3243 switch ( $group->status ) { 3244 case 'hidden' : 3245 return false; 3246 3247 case 'public': 3248 $button = array( 3249 'id' => 'join_group', 3250 'component' => 'groups', 3251 'must_be_logged_in' => true, 3252 'block_self' => false, 3253 'wrapper_class' => 'group-button ' . $group->status, 3254 'wrapper_id' => 'groupbutton-' . $group->id, 3255 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ), 3256 'link_text' => __( 'Join Group', 'buddypress' ), 3257 'link_title' => __( 'Join Group', 'buddypress' ), 3258 'link_class' => 'group-button join-group', 3259 ); 3260 break; 3261 3262 case 'private' : 3263 3264 // Member has outstanding invitation - 3265 // show an "Accept Invitation" button. 3266 if ( $group->is_invited ) { 3267 $button = array( 3268 'id' => 'accept_invite', 3269 'component' => 'groups', 3270 'must_be_logged_in' => true, 3271 'block_self' => false, 3272 'wrapper_class' => 'group-button ' . $group->status, 3273 'wrapper_id' => 'groupbutton-' . $group->id, 3274 'link_href' => add_query_arg( 'redirect_to', bp_get_group_permalink( $group ), bp_get_group_accept_invite_link( $group ) ), 3275 'link_text' => __( 'Accept Invitation', 'buddypress' ), 3276 'link_title' => __( 'Accept Invitation', 'buddypress' ), 3277 'link_class' => 'group-button accept-invite', 3278 ); 3279 3280 // Member has requested membership but request is pending - 3281 // show a "Request Sent" button. 3282 } elseif ( $group->is_pending ) { 3283 $button = array( 3284 'id' => 'membership_requested', 3285 'component' => 'groups', 3286 'must_be_logged_in' => true, 3287 'block_self' => false, 3288 'wrapper_class' => 'group-button pending ' . $group->status, 3289 'wrapper_id' => 'groupbutton-' . $group->id, 3290 'link_href' => bp_get_group_permalink( $group ), 3291 'link_text' => __( 'Request Sent', 'buddypress' ), 3292 'link_title' => __( 'Request Sent', 'buddypress' ), 3293 'link_class' => 'group-button pending membership-requested', 3294 ); 3295 3296 // Member has not requested membership yet - 3297 // show a "Request Membership" button. 3298 } else { 3299 $button = array( 3300 'id' => 'request_membership', 3301 'component' => 'groups', 3302 'must_be_logged_in' => true, 3303 'block_self' => false, 3304 'wrapper_class' => 'group-button ' . $group->status, 3305 'wrapper_id' => 'groupbutton-' . $group->id, 3306 'link_href' => wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ), 3307 'link_text' => __( 'Request Membership', 'buddypress' ), 3308 'link_title' => __( 'Request Membership', 'buddypress' ), 3309 'link_class' => 'group-button request-membership', 3310 ); 3311 } 3312 3313 break; 3314 } 3315 } 3316 3317 /** 3318 * Filters the HTML button for joining a group. 3319 * 3320 * @since 1.2.6 3321 * @since 2.4.0 Added $group parameter to filter args. 3322 * 3323 * @param string $button HTML button for joining a group. 3324 * @param object $group BuddyPress group object 3325 */ 3326 return bp_get_button( apply_filters( 'bp_get_group_join_button', $button, $group ) ); 3212 return bp_get_button( $button_args ); 3327 3213 } 3328 3214 3329 3215 /** … … function bp_group_create_button() { 3350 3236 return false; 3351 3237 } 3352 3238 3353 $button_args = array( 3354 'id' => 'create_group', 3355 'component' => 'groups', 3356 'link_text' => __( 'Create a Group', 'buddypress' ), 3357 'link_title' => __( 'Create a Group', 'buddypress' ), 3358 'link_class' => 'group-create no-ajax', 3359 'link_href' => trailingslashit( bp_get_groups_directory_permalink() . 'create' ), 3360 'wrapper' => false, 3361 'block_self' => false, 3362 ); 3239 $button_args = bp_groups_get_create_group_button_args(); 3363 3240 3364 /** 3365 * Filters the HTML button for creating a group. 3366 * 3367 * @since 2.0.0 3368 * 3369 * @param string $button HTML button for creating a group. 3370 */ 3371 return bp_get_button( apply_filters( 'bp_get_group_create_button', $button_args ) ); 3241 if ( ! $button_args ) { 3242 return false; 3243 } 3244 3245 return bp_get_button( $button_args ); 3372 3246 } 3373 3247 3374 3248 /**