Changeset 13468 for trunk/src/bp-core/admin/bp-core-admin-rewrites.php
- Timestamp:
- 05/03/2023 06:18:23 AM (22 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-core/admin/bp-core-admin-rewrites.php
r13451 r13468 30 30 31 31 wp_enqueue_script( 'bp-rewrites-ui' ); 32 33 // Handle slugs customization. 34 if ( isset( $_POST['bp-admin-rewrites-submit'] ) ) { 35 check_admin_referer( 'bp-admin-rewrites-setup' ); 36 37 $base_url = bp_get_admin_url( add_query_arg( 'page', 'bp-rewrites', 'admin.php' ) ); 38 39 if ( ! isset( $_POST['components'] ) ) { 40 wp_safe_redirect( add_query_arg( 'error', 'true', $base_url ) ); 41 } 42 43 $directory_pages = (array) bp_core_get_directory_pages(); 44 $current_page_slugs = wp_list_pluck( $directory_pages, 'slug', 'id' ); 45 $current_page_titles = wp_list_pluck( $directory_pages, 'title', 'id' ); 46 $reset_rewrites = false; 47 48 // Data is sanitized inside the foreach loop. 49 $components = wp_unslash( $_POST['components'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput 50 51 foreach ( $components as $page_id => $posted_data ) { 52 $postarr = array(); 53 54 if ( ! isset( $current_page_slugs[ $page_id ] ) ) { 55 continue; 56 } 57 58 $postarr['ID'] = $page_id; 59 60 if ( isset( $posted_data['post_title'] ) ) { 61 $post_title = sanitize_text_field( $posted_data['post_title'] ); 62 63 if ( $current_page_titles[ $page_id ] !== $post_title ) { 64 $postarr['post_title'] = $post_title; 65 } 66 } 67 68 if ( isset( $posted_data['post_name'] ) ) { 69 $post_name = sanitize_text_field( $posted_data['post_name'] ); 70 71 if ( $current_page_slugs[ $page_id ] !== $post_name ) { 72 $reset_rewrites = true; 73 $postarr['post_name'] = $post_name; 74 } 75 } 76 77 if ( isset( $posted_data['_bp_component_slugs'] ) && is_array( $posted_data['_bp_component_slugs'] ) ) { 78 $postarr['meta_input']['_bp_component_slugs'] = array_map( 'sanitize_title', $posted_data['_bp_component_slugs'] ); 79 } 80 81 if ( isset( $posted_data['_bp_component_slugs']['bp_group_create'] ) ) { 82 $new_current_group_create_slug = sanitize_text_field( $posted_data['_bp_component_slugs']['bp_group_create'] ); 83 $current_group_create_custom_slug = ''; 84 85 if ( isset( $directory_pages->groups->custom_slugs['bp_group_create'] ) ) { 86 $current_group_create_custom_slug = $directory_pages->groups->custom_slugs['bp_group_create']; 87 } 88 89 if ( $new_current_group_create_slug !== $current_group_create_custom_slug ) { 90 $reset_rewrites = true; 91 } 92 } 93 94 wp_update_post( $postarr ); 95 } 96 97 // Make sure the WP rewrites will be regenarated at next page load. 98 if ( $reset_rewrites ) { 99 bp_delete_rewrite_rules(); 100 } 101 102 wp_safe_redirect( add_query_arg( 'updated', 'true', $base_url ) ); 103 } 32 104 } 33 105 … … 133 205 134 206 if ( isset( $navs['sub_nav'] ) ) { 207 if ( 'profile' === $navs['main_nav']['slug'] ) { 208 $edit_subnav = wp_list_filter( $navs['sub_nav'], array( 'slug' => 'edit' ) ); 209 $position = key( $edit_subnav ); 210 211 if ( $edit_subnav ) { 212 $edit_subnav = reset( $edit_subnav ); 213 array_splice( 214 $navs['sub_nav'], 215 $position + 1, 216 0, 217 array( 218 array( 219 'name' => __( 'Field Group', 'buddypress' ), 220 'slug' => 'group', 221 'rewrite_id' => $edit_subnav['rewrite_id'] . '_group', 222 ) 223 ) 224 ); 225 } 226 } 227 135 228 $members_sub_navigation[ $navs['main_nav']['slug'] ] = array( 136 229 'name' => $navs['main_nav']['name'], … … 146 239 /* translators: %s is the member primary screen name */ 147 240 esc_html_x( '"%s" slug', 'member primary screen name URL admin label', 'buddypress' ), 148 esc_html( _bp_strip_spans_from_title( $navs['main_nav']['name'] ))241 esc_html( $navs['main_nav']['name'] ) 149 242 ); 150 243 ?> … … 184 277 /* translators: %s is the member secondary view name */ 185 278 esc_html_x( '"%s" slug', 'member secondary screen name URL admin label', 'buddypress' ), 186 esc_html( _bp_strip_spans_from_title( $secondary_nav_item['name'] ))279 esc_html( $secondary_nav_item['name'] ) 187 280 ); 188 281 ?> … … 253 346 /* translators: %s is group view name */ 254 347 esc_html_x( '"%s" slug', 'group view name URL admin label', 'buddypress' ), 255 esc_html( _bp_strip_spans_from_title($group_screen['name'] ) )348 esc_html( str_replace( ' %s', '', $group_screen['name'] ) ) 256 349 ); 257 350 ?> … … 270 363 </div> 271 364 <?php endforeach; ?> 365 366 <p class="submit clear"> 367 <input class="button-primary" type="submit" name="bp-admin-rewrites-submit" id="bp-admin-rewrites-submit" value="<?php esc_attr_e( 'Save Settings', 'buddypress' ); ?>"/> 368 </p> 369 370 <?php wp_nonce_field( 'bp-admin-rewrites-setup' ); ?> 371 272 372 </form> 273 373 </div>
Note: See TracChangeset
for help on using the changeset viewer.