Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
03/23/2023 07:35:38 PM (22 months ago)
Author:
imath
Message:

Make BP_Core_Nav generate "BP Rewrites ready" navigation links

  • Remove all components $parent_url attributes when setting sub nav items.
  • Only use the bp_core_create_nav_link() $link attribute argument & the bp_core_create_subnav_link() $parent_url attribute argument if specified to preserve backward compatibility.
  • Migrates the Community search feature so that it uses BP Rewrites.
  • Perform some bp_loggedin_user_domain() in favor of bp_loggedin_user_url().
  • Update some PHPUnit tests.

Props r-a-y, johnjamesjacoby, boonebgorges

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-activity/classes/class-bp-activity-component.php

    r13432 r13441  
    255255        }
    256256
    257         // Determine user to use.
    258         if ( bp_displayed_user_domain() ) {
    259             $user_domain = bp_displayed_user_domain();
    260         } elseif ( bp_loggedin_user_domain() ) {
    261             $user_domain = bp_loggedin_user_domain();
    262         } else {
    263             return;
    264         }
    265 
    266         $slug          = bp_get_activity_slug();
    267         $activity_link = trailingslashit( $user_domain . $slug );
     257        $slug = bp_get_activity_slug();
    268258
    269259        // Add 'Activity' to the main navigation.
     
    281271            'name'            => _x( 'Personal', 'Profile activity screen sub nav', 'buddypress' ),
    282272            'slug'            => 'just-me',
    283             'parent_url'      => $activity_link,
    284273            'parent_slug'     => $slug,
    285274            'screen_function' => 'bp_activity_screen_my_activity',
     
    292281                'name'            => _x( 'Mentions', 'Profile activity screen sub nav', 'buddypress' ),
    293282                'slug'            => 'mentions',
    294                 'parent_url'      => $activity_link,
    295283                'parent_slug'     => $slug,
    296284                'screen_function' => 'bp_activity_screen_mentions',
     
    305293                'name'            => _x( 'Favorites', 'Profile activity screen sub nav', 'buddypress' ),
    306294                'slug'            => 'favorites',
    307                 'parent_url'      => $activity_link,
    308295                'parent_slug'     => $slug,
    309296                'screen_function' => 'bp_activity_screen_favorites',
     
    318305                'name'            => _x( 'Friends', 'Profile activity screen sub nav', 'buddypress' ),
    319306                'slug'            => bp_get_friends_slug(),
    320                 'parent_url'      => $activity_link,
    321307                'parent_slug'     => $slug,
    322308                'screen_function' => 'bp_activity_screen_friends',
     
    331317                'name'            => _x( 'Groups', 'Profile activity screen sub nav', 'buddypress' ),
    332318                'slug'            => bp_get_groups_slug(),
    333                 'parent_url'      => $activity_link,
    334319                'parent_slug'     => $slug,
    335320                'screen_function' => 'bp_activity_screen_groups',
     
    359344
    360345            // Setup the logged in user variables.
    361             $activity_link = trailingslashit( bp_loggedin_user_domain() . bp_get_activity_slug() );
     346            $activity_slug        = bp_get_activity_slug();
     347            $custom_activity_slug = bp_rewrites_get_slug( 'members', 'member_' . $activity_slug, $activity_slug );
    362348
    363349            // Unread message count.
     
    380366                'id'     => 'my-account-' . $this->id,
    381367                'title'  => _x( 'Activity', 'My Account Activity sub nav', 'buddypress' ),
    382                 'href'   => $activity_link
     368                'href'   => bp_loggedin_user_url(
     369                    array(
     370                        'single_item_component' => $custom_activity_slug,
     371                    )
     372                ),
    383373            );
    384374
     
    388378                'id'       => 'my-account-' . $this->id . '-personal',
    389379                'title'    => _x( 'Personal', 'My Account Activity sub nav', 'buddypress' ),
    390                 'href'     => trailingslashit( $activity_link . 'just-me' ),
    391                 'position' => 10
     380                'href'     => bp_loggedin_user_url(
     381                    array(
     382                        'single_item_component' => $custom_activity_slug,
     383                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $activity_slug . '_just_me', 'just-me' ),
     384                    )
     385                ),
     386                'position' => 10,
    392387            );
    393388
     
    398393                    'id'       => 'my-account-' . $this->id . '-mentions',
    399394                    'title'    => $title,
    400                     'href'     => trailingslashit( $activity_link . 'mentions' ),
    401                     'position' => 20
     395                    'href'     => bp_loggedin_user_url(
     396                        array(
     397                            'single_item_component' => $custom_activity_slug,
     398                            'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $activity_slug . '_mentions', 'mentions' ),
     399                        )
     400                    ),
     401                    'position' => 20,
    402402                );
    403403            }
     
    409409                    'id'       => 'my-account-' . $this->id . '-favorites',
    410410                    'title'    => _x( 'Favorites', 'My Account Activity sub nav', 'buddypress' ),
    411                     'href'     => trailingslashit( $activity_link . 'favorites' ),
    412                     'position' => 30
     411                    'href'     => bp_loggedin_user_url(
     412                        array(
     413                            'single_item_component' => $custom_activity_slug,
     414                            'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $activity_slug . '_favorites', 'favorites' ),
     415                        )
     416                    ),
     417                    'position' => 30,
    413418                );
    414419            }
     
    416421            // Friends?
    417422            if ( bp_is_active( 'friends' ) ) {
     423                $friends_slug   = bp_get_friends_slug();
    418424                $wp_admin_nav[] = array(
    419425                    'parent'   => 'my-account-' . $this->id,
    420426                    'id'       => 'my-account-' . $this->id . '-friends',
    421427                    'title'    => _x( 'Friends', 'My Account Activity sub nav', 'buddypress' ),
    422                     'href'     => trailingslashit( $activity_link . bp_get_friends_slug() ),
    423                     'position' => 40
     428                    'href'     => bp_loggedin_user_url(
     429                        array(
     430                            'single_item_component' => $custom_activity_slug,
     431                            'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $activity_slug . '_' . $friends_slug, $friends_slug ),
     432                        )
     433                    ),
     434                    'position' => 40,
    424435                );
    425436            }
     
    427438            // Groups?
    428439            if ( bp_is_active( 'groups' ) ) {
     440                $groups_slug    = bp_get_groups_slug();
    429441                $wp_admin_nav[] = array(
    430442                    'parent'   => 'my-account-' . $this->id,
    431443                    'id'       => 'my-account-' . $this->id . '-groups',
    432444                    'title'    => _x( 'Groups', 'My Account Activity sub nav', 'buddypress' ),
    433                     'href'     => trailingslashit( $activity_link . bp_get_groups_slug() ),
     445                    'href'     => bp_loggedin_user_url(
     446                        array(
     447                            'single_item_component' => $custom_activity_slug,
     448                            'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $activity_slug . '_' . $groups_slug, $groups_slug ),
     449                        )
     450                    ),
    434451                    'position' => 50
    435452                );
Note: See TracChangeset for help on using the changeset viewer.