Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
03/27/2023 06:19:06 PM (19 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-messages/classes/class-bp-messages-component.php

    r13441 r13442  
    295295        // Menus for logged in user.
    296296        if ( is_user_logged_in() ) {
    297 
    298             // Setup the logged in user variables.
    299             $messages_link = trailingslashit( bp_loggedin_user_domain() . bp_get_messages_slug() );
     297            $message_slug        = bp_get_messages_slug();
     298            $custom_message_slug = bp_rewrites_get_slug( 'members', 'member_' . $message_slug, $message_slug );
    300299
    301300            // Unread message count.
     
    322321                'id'     => 'my-account-' . $this->id,
    323322                'title'  => $title,
    324                 'href'   => $messages_link
     323                'href'   => bp_loggedin_user_url(
     324                    array(
     325                        'single_item_component' => $custom_message_slug,
     326                    )
     327                ),
    325328            );
    326329
     
    330333                'id'       => 'my-account-' . $this->id . '-inbox',
    331334                'title'    => $inbox,
    332                 'href'     => trailingslashit( $messages_link . 'inbox' ),
    333                 'position' => 10
     335                'href'     => bp_loggedin_user_url(
     336                    array(
     337                        'single_item_component' => $custom_message_slug,
     338                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_inbox', 'inbox' ),
     339                    )
     340                ),
     341                'position' => 10,
    334342            );
    335343
    336344            // Starred.
    337345            if ( bp_is_active( $this->id, 'star' ) ) {
     346                $star_slug      = bp_get_messages_starred_slug();
    338347                $wp_admin_nav[] = array(
    339348                    'parent'   => 'my-account-' . $this->id,
    340349                    'id'       => 'my-account-' . $this->id . '-starred',
    341350                    'title'    => __( 'Starred', 'buddypress' ),
    342                     'href'     => trailingslashit( $messages_link . bp_get_messages_starred_slug() ),
    343                     'position' => 11
     351                    'href'     => bp_loggedin_user_url(
     352                        array(
     353                            'single_item_component' => $custom_message_slug,
     354                            'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_' . $star_slug, $star_slug ),
     355                        )
     356                    ),
     357                    'position' => 11,
    344358                );
    345359            }
     
    350364                'id'       => 'my-account-' . $this->id . '-sentbox',
    351365                'title'    => __( 'Sent', 'buddypress' ),
    352                 'href'     => trailingslashit( $messages_link . 'sentbox' ),
    353                 'position' => 20
     366                'href'     => bp_loggedin_user_url(
     367                    array(
     368                        'single_item_component' => $custom_message_slug,
     369                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_sentbox', 'sentbox' ),
     370                    )
     371                ),
     372                'position' => 20,
    354373            );
    355374
     
    359378                'id'       => 'my-account-' . $this->id . '-compose',
    360379                'title'    => __( 'Compose', 'buddypress' ),
    361                 'href'     => trailingslashit( $messages_link . 'compose' ),
    362                 'position' => 30
     380                'href'     => bp_loggedin_user_url(
     381                    array(
     382                        'single_item_component' => $custom_message_slug,
     383                        'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_compose', 'compose' ),
     384                    )
     385                ),
     386                'position' => 30,
    363387            );
    364388
     
    369393                    'id'       => 'my-account-' . $this->id . '-notices',
    370394                    'title'    => __( 'Site Notices', 'buddypress' ),
    371                     'href'     => trailingslashit( $messages_link . 'notices' ),
    372                     'position' => 90
     395                    'href'     => bp_loggedin_user_url(
     396                        array(
     397                            'single_item_component' => $custom_message_slug,
     398                            'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_notices', 'notices' ),
     399                        )
     400                    ),
     401                    'position' => 90,
    373402                );
    374403            }
Note: See TracChangeset for help on using the changeset viewer.