Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
06/18/2023 04:11:04 AM (3 years ago)
Author:
imath
Message:

BP Rewrites: optimize the code used to build URLs

The bp_members_get_path_chunks() & bp_groups_get_path_chunks() functions are making sure URL chunks are customized according to the slugs settings. Instead of redoing at many places all or some of the operations performed by these functions, update the code to build URLs so that it uses these functions.

See #4954
Fixes #8923
Closes https://github.com/buddypress/buddypress/pull/117

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-messages/bp-messages-template.php

    r13443 r13503  
    340340                $url = bp_members_get_user_url(
    341341                        $user_id,
    342                         array(
    343                                 'single_item_component'        => bp_rewrites_get_slug( 'members', 'member_messages', bp_get_messages_slug() ),
    344                                 'single_item_action'           => bp_rewrites_get_slug( 'members', 'member_messages_view', 'view' ),
    345                                 'single_item_action_variables' => array( $thread_id ),
    346                         )
     342                        bp_members_get_path_chunks( array( bp_get_messages_slug(), 'view', array( $thread_id ) ) )
    347343                );
    348344
     
    390386                }
    391387
    392                 $current_action_slug         = bp_current_action();
    393                 $current_action_rewrite_id   = 'member_messages_' . $current_action_slug;
    394                 $action_variable_delete_slug = bp_rewrites_get_slug( 'members', $current_action_rewrite_id . '_delete', 'delete' );
    395 
    396388                $url = bp_members_get_user_url(
    397389                        $user_id,
    398                         array(
    399                                 'single_item_component'        => bp_rewrites_get_slug( 'members', 'member_messages', bp_get_messages_slug() ),
    400                                 'single_item_action'           => bp_rewrites_get_slug( 'members', $current_action_rewrite_id, $current_action_slug ),
    401                                 'single_item_action_variables' => array( $action_variable_delete_slug, $messages_template->thread->thread_id ),
    402                         )
     390                        bp_members_get_path_chunks( array( bp_get_messages_slug(), bp_current_action(), array( 'delete', $messages_template->thread->thread_id ) ) )
    403391                );
    404392
     
    453441                }
    454442
    455                 $current_action_slug         = bp_current_action();
    456                 $current_action_rewrite_id   = 'member_messages_' . $current_action_slug;
    457                 $action_variable_unread_slug = bp_rewrites_get_slug( 'members', $current_action_rewrite_id . '_unread', 'unread' );
    458 
    459                 // Base unread URL.
    460443                $url = bp_members_get_user_url(
    461444                        $user_id,
    462                         array(
    463                                 'single_item_component'        => bp_rewrites_get_slug( 'members', 'member_messages', bp_get_messages_slug() ),
    464                                 'single_item_action'           => bp_rewrites_get_slug( 'members', $current_action_rewrite_id, $current_action_slug ),
    465                                 'single_item_action_variables' => array( $action_variable_unread_slug ),
    466                         )
     445                        bp_members_get_path_chunks( array( bp_get_messages_slug(), bp_current_action(), array( 'unread' ) ) )
    467446                );
    468447
     
    524503                }
    525504
    526                 $current_action_slug         = bp_current_action();
    527                 $current_action_rewrite_id   = 'member_messages_' . $current_action_slug;
    528                 $action_variable_read_slug = bp_rewrites_get_slug( 'members', $current_action_rewrite_id . '_read', 'read' );
    529 
    530                 // Base read URL.
    531505                $url = bp_members_get_user_url(
    532506                        $user_id,
    533                         array(
    534                                 'single_item_component'        => bp_rewrites_get_slug( 'members', 'member_messages', bp_get_messages_slug() ),
    535                                 'single_item_action'           => bp_rewrites_get_slug( 'members', $current_action_rewrite_id, $current_action_slug ),
    536                                 'single_item_action_variables' => array( $action_variable_read_slug ),
    537                         )
     507                        bp_members_get_path_chunks( array( bp_get_messages_slug(), bp_current_action(), array( 'read' ) ) )
    538508                );
    539509
     
    13371307                global $messages_template;
    13381308
    1339                 $message_slug        = bp_get_messages_slug();
    1340                 $custom_message_slug = bp_rewrites_get_slug( 'members', 'member_' . $message_slug, $message_slug );
    1341                 $url                 = wp_nonce_url(
    1342                         bp_loggedin_user_url(
    1343                                 array(
    1344                                         'single_item_component'        => $custom_message_slug,
    1345                                         'single_item_action'           => bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_notices', 'notices' ),
    1346                                         'single_item_action_variables' => array(
    1347                                                 bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_notices_delete', 'delete' ),
    1348                                                 $messages_template->thread->id,
    1349                                         ),
    1350                                 )
    1351                         ),
     1309                $url = wp_nonce_url(
     1310                        bp_loggedin_user_url( bp_members_get_path_chunks( array( bp_get_messages_slug(), 'notices', array( 'delete', $messages_template->thread->id ) ) ) ),
    13521311                        'messages_delete_notice'
    13531312                );
     
    13791338                global $messages_template;
    13801339
    1381                 $message_slug        = bp_get_messages_slug();
    1382                 $custom_message_slug = bp_rewrites_get_slug( 'members', 'member_' . $message_slug, $message_slug );
    1383                 $path_chunks         = array(
    1384                         'single_item_component' => $custom_message_slug,
    1385                         'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_notices', 'notices' ),
    1386                 );
     1340                $path_chunks = array( bp_get_messages_slug(), 'notices' );
    13871341
    13881342                if ( 1 === (int) $messages_template->thread->is_active ) {
    1389                         $nonce                                       = 'messages_deactivate_notice';
    1390                         $path_chunks['single_item_action_variables'] = array(
    1391                                 bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_notices_deactivate', 'deactivate' ),
    1392                                 $messages_template->thread->id,
    1393                         );
     1343                        $nonce         = 'messages_deactivate_notice';
     1344                        $path_chunks[] = array( 'deactivate', $messages_template->thread->id );
    13941345                } else {
    1395                         $nonce                                       = 'messages_activate_notice';
    1396                         $path_chunks['single_item_action_variables'] = array(
    1397                                 bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_notices_activate', 'activate' ),
    1398                                 $messages_template->thread->id,
    1399                         );
     1346                        $nonce         = 'messages_activate_notice';
     1347                        $path_chunks[] = array( 'activate', $messages_template->thread->id );
    14001348                }
    14011349
    1402                 $link = wp_nonce_url( bp_loggedin_user_url( $path_chunks ), $nonce );
     1350                $link = wp_nonce_url( bp_loggedin_user_url( bp_members_get_path_chunks( $path_chunks ) ), $nonce );
    14031351
    14041352                /**
     
    14591407         */
    14601408        function bp_get_message_notice_dismiss_link() {
    1461                 $message_slug        = bp_get_messages_slug();
    1462                 $custom_message_slug = bp_rewrites_get_slug( 'members', 'member_' . $message_slug, $message_slug );
    1463                 $link                = wp_nonce_url(
    1464                         bp_loggedin_user_url(
    1465                                 array(
    1466                                         'single_item_component'        => $custom_message_slug,
    1467                                         'single_item_action'           => bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_notices', 'notices' ),
    1468                                         'single_item_action_variables' => array( bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_notices_dismiss', 'dismiss' ) ),
    1469                                 )
    1470                         ),
     1409                $link = wp_nonce_url(
     1410                        bp_loggedin_user_url( bp_members_get_path_chunks( array( bp_get_messages_slug(), 'notices', array( 'dismiss' ) ) ) ),
    14711411                        'messages_dismiss_notice'
    14721412                );
     
    15571497                }
    15581498
    1559                 $message_slug        = bp_get_messages_slug();
    1560                 $custom_message_slug = bp_rewrites_get_slug( 'members', 'member_' . $message_slug, $message_slug );
    1561                 $url                 = wp_nonce_url(
     1499                $url = wp_nonce_url(
    15621500                        add_query_arg(
    15631501                                'r',
    15641502                                bp_members_get_user_slug( bp_displayed_user_id() ),
    1565                                 bp_loggedin_user_url(
    1566                                         array(
    1567                                                 'single_item_component' => $custom_message_slug,
    1568                                                 'single_item_action'    => bp_rewrites_get_slug( 'members', 'member_' . $message_slug . '_compose', 'compose' ),
    1569                                         )
    1570                                 )
    1571 
     1503                                bp_loggedin_user_url( bp_members_get_path_chunks( array( bp_get_messages_slug(), 'compose' ) ) )
    15721504                        )
    15731505                );
Note: See TracChangeset for help on using the changeset viewer.