Skip to:
Content

BuddyPress.org

Ticket #8471: 8471.patch

File 8471.patch, 5.3 KB (added by imath, 4 years ago)
  • src/bp-activity/classes/class-bp-activity-component.php

    diff --git src/bp-activity/classes/class-bp-activity-component.php src/bp-activity/classes/class-bp-activity-component.php
    index d44879fd3..5d65f693f 100644
    class BP_Activity_Component extends BP_Component { 
    331331
    332332                // Menus for logged in user.
    333333                if ( is_user_logged_in() ) {
     334                        // Get the base item (Activty Member's primary nav item).
     335                        $base_item = buddypress()->members->nav->get( bp_get_activity_slug() );
    334336
    335                         // Setup the logged in user variables.
    336                         $activity_link = trailingslashit( bp_loggedin_user_domain() . bp_get_activity_slug() );
     337                        if ( isset( $base_item->link, $base_item->default_subnav_slug ) ) {
     338                                $activity_link  = $base_item->link;
     339                                $default_subnav = $base_item->default_subnav_slug;
     340                        } else {
     341                                $activity_link  = trailingslashit( bp_loggedin_user_domain() . bp_get_activity_slug() );
     342                                $default_subnav = 'just-me';
     343                        }
    337344
    338345                        // Unread message count.
    339346                        if ( bp_activity_do_mentions() ) {
    class BP_Activity_Component extends BP_Component { 
    362369                                'parent'   => 'my-account-' . $this->id,
    363370                                'id'       => 'my-account-' . $this->id . '-personal',
    364371                                'title'    => _x( 'Personal', 'My Account Activity sub nav', 'buddypress' ),
    365                                 'href'     => $activity_link,
     372                                'href'     => $default_subnav === 'just-me' ? $activity_link : trailingslashit( $activity_link . 'just-me' ),
    366373                                'position' => 10
    367374                        );
    368375
    class BP_Activity_Component extends BP_Component { 
    372379                                        'parent'   => 'my-account-' . $this->id,
    373380                                        'id'       => 'my-account-' . $this->id . '-mentions',
    374381                                        'title'    => $title,
    375                                         'href'     => trailingslashit( $activity_link . 'mentions' ),
     382                                        'href'     => $default_subnav === 'mentions' ? $activity_link : trailingslashit( $activity_link . 'mentions' ),
    376383                                        'position' => 20
    377384                                );
    378385                        }
    class BP_Activity_Component extends BP_Component { 
    383390                                        'parent'   => 'my-account-' . $this->id,
    384391                                        'id'       => 'my-account-' . $this->id . '-favorites',
    385392                                        'title'    => _x( 'Favorites', 'My Account Activity sub nav', 'buddypress' ),
    386                                         'href'     => trailingslashit( $activity_link . 'favorites' ),
     393                                        'href'     => $default_subnav === 'favorites' ? $activity_link : trailingslashit( $activity_link . 'favorites' ),
    387394                                        'position' => 30
    388395                                );
    389396                        }
    class BP_Activity_Component extends BP_Component { 
    394401                                        'parent'   => 'my-account-' . $this->id,
    395402                                        'id'       => 'my-account-' . $this->id . '-friends',
    396403                                        'title'    => _x( 'Friends', 'My Account Activity sub nav', 'buddypress' ),
    397                                         'href'     => trailingslashit( $activity_link . bp_get_friends_slug() ),
     404                                        'href'     => $default_subnav === bp_get_friends_slug() ? $activity_link : trailingslashit( $activity_link . bp_get_friends_slug() ),
    398405                                        'position' => 40
    399406                                );
    400407                        }
    class BP_Activity_Component extends BP_Component { 
    405412                                        'parent'   => 'my-account-' . $this->id,
    406413                                        'id'       => 'my-account-' . $this->id . '-groups',
    407414                                        'title'    => _x( 'Groups', 'My Account Activity sub nav', 'buddypress' ),
    408                                         'href'     => trailingslashit( $activity_link . bp_get_groups_slug() ),
     415                                        'href'     => $default_subnav === bp_get_groups_slug() ? $activity_link : trailingslashit( $activity_link . bp_get_groups_slug() ),
    409416                                        'position' => 50
    410417                                );
    411418                        }
  • src/bp-core/bp-core-buddybar.php

    diff --git src/bp-core/bp-core-buddybar.php src/bp-core/bp-core-buddybar.php
    index afbb2f287..1df6bae39 100644
    function bp_core_new_nav_default( $args = '' ) { 
    325325
    326326        $parent_nav = reset( $parent_nav );
    327327
    328         if ( ! empty( $parent_nav->screen_function ) ) {
    329                 // Remove our screen hook if screen function is callable.
    330                 if ( is_callable( $parent_nav->screen_function ) ) {
    331                         remove_action( 'bp_screens', $parent_nav->screen_function, 3 );
    332                 }
    333         }
    334 
    335328        // Edit the screen function for the parent nav.
    336         $bp->members->nav->edit_nav( array(
    337                 'screen_function'     => &$r['screen_function'],
    338                 'default_subnav_slug' => $r['subnav_slug'],
    339         ), $parent_nav->slug );
     329        $bp->members->nav->edit_nav(
     330                array(
     331                        'screen_function'     => &$r['screen_function'],
     332                        'default_subnav_slug' => $r['subnav_slug'],
     333                ),
     334                $parent_nav->slug
     335        );
     336
     337        /**
     338         * Update secondary nav items:
     339         * - The previous default nav item needs have its slug added to its link property.
     340         * - The new default nav item needs to have its slug removed from its link property.
     341         */
     342        $previous_default_subnav = $bp->members->nav->get( $parent_nav->slug . '/' . $parent_nav->default_subnav_slug );
     343
     344        // Edit the link of the previous default nav item.
     345        $bp->members->nav->edit_nav(
     346                array(
     347                        'link' => trailingslashit( $previous_default_subnav->link . $previous_default_subnav->slug ),
     348                ),
     349                $previous_default_subnav->slug,
     350                $parent_nav->slug
     351        );
     352
     353        $new_default_subnav = $bp->members->nav->get( $parent_nav->slug . '/' . $r['subnav_slug'] );
     354
     355        // Edit the link of the new default nav item.
     356        $bp->members->nav->edit_nav(
     357                array(
     358                        'link' => rtrim( untrailingslashit( $new_default_subnav->link ), $new_default_subnav->slug ),
     359                ),
     360                $new_default_subnav->slug,
     361                $parent_nav->slug
     362        );
    340363
    341364        if ( bp_is_current_component( $parent_nav->slug ) ) {
    342365