Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
03/27/2023 06:19:06 PM (18 months ago)
Author:
imath
Message:

Improve Components Member's single item navigation generation

  • Edit the BP_Component Class so that it globalize navigation items before registering it.
  • Introduce bp_get_component_navigations(), a new function that will be used to get Member's single navigation customizable slugs within the BuddyPress settings area.
  • Perform all remaining bp_loggedin_user_domain() replacements (55) in favor of the bp_loggedin_user_url() function which uses BP Rewrites to build URLs.
  • Improve bp_loggedin_user_link() by adding a new $chunks array of arguments to output escaped URL in templates.
  • Adapt some PHPUnit testcases.

Props r-a-y, johnjamesjacoby, boonebgorges

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

File:
1 edited

Legend:

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

    r13441 r13442  
    235235        // Menus for logged in user.
    236236        if ( is_user_logged_in() ) {
    237 
    238             // Setup the logged in user variables.
    239             $settings_link = trailingslashit( bp_loggedin_user_domain() . bp_get_settings_slug() );
     237            $settings_slug        = bp_get_settings_slug();
     238            $custom_settings_slug = bp_rewrites_get_slug( 'members', 'member_' . $settings_slug, $settings_slug );
    240239
    241240            // Add main Settings menu.
     
    244243                'id'     => 'my-account-' . $this->id,
    245244                'title'  => __( 'Settings', 'buddypress' ),
    246                 'href'   => $settings_link,
     245                'href'   => bp_loggedin_user_url(
     246                    array(
     247                        'single_item_component' => $custom_settings_slug,
     248                    )
     249                ),
    247250            );
    248251
     
    252255                'id'       => 'my-account-' . $this->id . '-general',
    253256                'title'    => __( 'General', 'buddypress' ),
    254                 'href'     => trailingslashit( $settings_link . 'general' ),
     257                'href'     => bp_loggedin_user_url(
     258                    array(
     259                        'single_item_component' => $custom_settings_slug,
     260                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $settings_slug . '_general', 'general' ),
     261                    )
     262                ),
    255263                'position' => 10,
    256264            );
     
    262270                    'id'       => 'my-account-' . $this->id . '-notifications',
    263271                    'title'    => __( 'Email', 'buddypress' ),
    264                     'href'     => trailingslashit( $settings_link . 'notifications' ),
     272                    'href'     => bp_loggedin_user_url(
     273                        array(
     274                            'single_item_component' => $custom_settings_slug,
     275                            'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $settings_slug . '_notifications', 'notifications' ),
     276                        )
     277                    ),
    265278                    'position' => 20,
    266279                );
     
    276289                    'id'       => 'my-account-' . $this->id . '-data',
    277290                    'title'    => __( 'Export Data', 'buddypress' ),
    278                     'href'     => trailingslashit( $settings_link . 'data' ),
     291                    'href'     => bp_loggedin_user_url(
     292                        array(
     293                            'single_item_component' => $custom_settings_slug,
     294                            'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $settings_slug . '_data', 'data' ),
     295                        )
     296                    ),
    279297                    'position' => 89,
    280298                );
     
    287305                    'id'       => 'my-account-' . $this->id . '-delete-account',
    288306                    'title'    => __( 'Delete Account', 'buddypress' ),
    289                     'href'     => trailingslashit( $settings_link . 'delete-account' ),
     307                    'href'     => bp_loggedin_user_url(
     308                        array(
     309                            'single_item_component' => $custom_settings_slug,
     310                            'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $settings_slug . '_delete_account', 'delete-account' ),
     311                        )
     312                    ),
    290313                    'position' => 90,
    291314                );
Note: See TracChangeset for help on using the changeset viewer.