Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
04/04/2023 01:06:03 AM (2 years ago)
Author:
imath
Message:

Use the BP Rewrites API to generate single Groups item links

  • Introduce the bp_groups_get_path_chunks() function to build BP Rewrites arguments using a regular array.
  • Improve bp_members_get_path_chunks() so that it avoids looking for a custom slug when the chunk is a numeric value.
  • Introduce the bp_get_group_manage_url() function to build Group's front-end Admin URLs using BP Rewrites.
  • Deprecate bp_group_admin_permalink() & bp_get_group_admin_permalink() in favor of bp_group_manage_url() & bp_get_group_manage_url().
  • Replace all remaining usage of bp_get_group_permalink() in favor of bp_get_group_url() or bp_get_group_manage_url().

Props r-a-y, johnjamesjacoby, boonebgorges

Closes https://github.com/buddypress/buddypress/pull/81
See #4954

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-templates/bp-legacy/buddypress-functions.php

    r13442 r13446  
    14231423        $user = new BP_Core_User( $friend_id );
    14241424
    1425         $uninvite_url = bp_is_current_action( 'create' )
    1426             ? bp_get_groups_directory_permalink() . 'create/step/group-invites/?user_id=' . $friend_id
    1427             : bp_get_group_permalink( $group )    . 'send-invites/remove/' . $friend_id;
     1425        if ( bp_is_current_action( 'create' ) ) {
     1426            $uninvite_url = bp_get_groups_directory_permalink() . 'create/step/group-invites/?user_id=' . $friend_id;
     1427        } else {
     1428            $path_chunks  = bp_groups_get_path_chunks( array( 'send-invites', 'remove', $friend_id ) );
     1429            $uninvite_url = bp_get_group_url( $group, $path_chunks );
     1430        }
    14281431
    14291432        echo '<li id="uid-' . esc_attr( $user->id ) . '">';
     
    16411644                _e( 'Error joining group', 'buddypress' );
    16421645            } else {
    1643                 echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button leave-group" rel="leave" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
     1646                $leave_url = wp_nonce_url(
     1647                    bp_get_group_url(
     1648                        $group,
     1649                        bp_groups_get_path_chunks( array( 'leave-group' ) )
     1650                    ),
     1651                    'groups_leave_group'
     1652                );
     1653                echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button leave-group" rel="leave" href="' . esc_url( $leave_url ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    16441654            }
    16451655        break;
     
    16551665                _e( 'Error requesting membership', 'buddypress' );
    16561666            } else {
    1657                 echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button leave-group" rel="leave" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
     1667                $leave_url = wp_nonce_url(
     1668                    bp_get_group_url(
     1669                        $group,
     1670                        bp_groups_get_path_chunks( array( 'leave-group' ) )
     1671                    ),
     1672                    'groups_leave_group'
     1673                );
     1674                echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button leave-group" rel="leave" href="' . esc_url( $leave_url ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    16581675            }
    16591676        break;
     
    16751692                _e( 'Error leaving group', 'buddypress' );
    16761693            } elseif ( 'public' === $group->status ) {
    1677                 echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button join-group" rel="join" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>';
     1694                $join_url = wp_nonce_url(
     1695                    bp_get_group_url(
     1696                        $group,
     1697                        bp_groups_get_path_chunks( array( 'join' ) )
     1698                    ),
     1699                    'groups_join_group'
     1700                );
     1701                echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button join-group" rel="join" href="' . esc_url( $join_url ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>';
    16781702            } else {
    1679                 echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button request-membership" rel="join" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>';
     1703                $request_url = wp_nonce_url(
     1704                    bp_get_group_url(
     1705                        $group,
     1706                        bp_groups_get_path_chunks( array( 'request-membership' ) )
     1707                    ),
     1708                    'groups_request_membership'
     1709                );
     1710                echo '<a id="group-' . esc_attr( $group->id ) . '" class="group-button request-membership" rel="join" href="' . esc_url( $request_url ) . '">' . __( 'Request Membership', 'buddypress' ) . '</a>';
    16801711            }
    16811712        break;
Note: See TracChangeset for help on using the changeset viewer.