Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
04/14/2023 04:11:52 AM (17 months ago)
Author:
imath
Message:

Administration: add Group slugs management into the URLs settings tab

  • Add a new $built_in argument to bp_get_group_screens() to only get BP built in single Groups item screens.
  • Edit the BP_Groups_Component::setup_nav() method so that it uses bp_get_group_screens() to generate the single group's navigation items.
  • bp_get_group_screens() is making it easier to manage all single group's nav item slugs from the BP Urls settings tab.

Props r-a-y, johnjamesjacoby, boonebgorges

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-core/admin/bp-core-admin-rewrites.php

    r13450 r13451  
    200200                            <?php endif; ?>
    201201                        <?php endif; ?>
     202
     203                        <?php if ( 'groups' === $component_id ) : ?>
     204
     205                            <?php
     206                            foreach (
     207                                array(
     208                                    'create' => __( 'Single Group creation steps slugs', 'buddypress' ),
     209                                    'read'   => __( 'Single Group regular screens slugs', 'buddypress' ),
     210                                    'manage' => __( 'Single Group management screens slugs', 'buddypress' ),
     211                                ) as $screen_type => $screen_type_title ) :
     212                                ?>
     213
     214                                <div class="health-check-accordion">
     215                                    <h4 class="health-check-accordion-heading">
     216                                        <button aria-expanded="false" class="health-check-accordion-trigger" aria-controls="health-check-accordion-block-group-<?php echo esc_attr( $screen_type ); ?>" type="button">
     217                                            <span class="title"><?php echo esc_html( $screen_type_title ); ?></span>
     218                                            <span class="icon"></span>
     219                                        </button>
     220                                    </h4>
     221                                    <div id="health-check-accordion-block-group-<?php echo esc_attr( $screen_type ); ?>" class="health-check-accordion-panel" hidden="hidden">
     222                                        <table class="form-table" role="presentation">
     223
     224                                        <?php
     225                                        if ( 'create' === $screen_type ) :
     226                                            foreach ( bp_get_group_restricted_screens() as $group_create_restricted_screen ) :
     227                                                ?>
     228                                                <tr>
     229                                                    <th scope="row">
     230                                                        <label style="margin-left: 2em; display: inline-block; vertical-align: middle" for="<?php echo esc_attr( sprintf( '%s-slug', sanitize_key( $group_create_restricted_screen['rewrite_id'] ) ) ); ?>">
     231                                                            <?php echo esc_html( $group_create_restricted_screen['name'] ); ?>
     232                                                        </label>
     233                                                    </th>
     234                                                    <td>
     235                                                        <input type="text" class="code" name="<?php printf( 'components[%1$d][_bp_component_slugs][%2$s]', absint( $directory_data->id ), esc_attr( $group_create_restricted_screen['rewrite_id'] ) ); ?>" id="<?php echo esc_attr( sprintf( '%s-slug', sanitize_key( $group_create_restricted_screen['rewrite_id'] ) ) ); ?>" value="<?php echo esc_attr( bp_rewrites_get_slug( $component_id, $group_create_restricted_screen['rewrite_id'], $group_create_restricted_screen['slug'] ) ); ?>">
     236                                                    </td>
     237                                                </tr>
     238                                                <?php
     239                                            endforeach;
     240
     241                                        endif;
     242
     243                                        foreach ( bp_get_group_screens( $screen_type ) as $group_screen ) :
     244                                            if ( ! isset( $group_screen['rewrite_id'] ) || ! $group_screen['rewrite_id'] ) {
     245                                                continue;
     246                                            }
     247                                            ?>
     248                                                <tr>
     249                                                    <th scope="row">
     250                                                        <label style="margin-left: 2em; display: inline-block; vertical-align: middle" for="<?php echo esc_attr( sprintf( '%s-slug', sanitize_key( $group_screen['rewrite_id'] ) ) ); ?>">
     251                                                            <?php
     252                                                            printf(
     253                                                                /* translators: %s is group view name */
     254                                                                esc_html_x( '"%s" slug', 'group view name URL admin label', 'buddypress' ),
     255                                                                esc_html( _bp_strip_spans_from_title( $group_screen['name'] ) )
     256                                                            );
     257                                                            ?>
     258                                                        </label>
     259                                                    </th>
     260                                                    <td>
     261                                                        <input type="text" class="code" name="<?php printf( 'components[%1$d][_bp_component_slugs][%2$s]', absint( $directory_data->id ), esc_attr( $group_screen['rewrite_id'] ) ); ?>" id="<?php echo esc_attr( sprintf( '%s-slug', sanitize_key( $group_screen['rewrite_id'] ) ) ); ?>" value="<?php echo esc_attr( bp_rewrites_get_slug( $component_id, $group_screen['rewrite_id'], $group_screen['slug'] ) ); ?>">
     262                                                    </td>
     263                                                </tr>
     264                                            <?php endforeach; ?>
     265                                        </table>
     266                                    </div>
     267                                </div>
     268                            <?php endforeach; ?>
     269                        <?php endif; ?>
    202270                    </div>
    203271                <?php endforeach; ?>
Note: See TracChangeset for help on using the changeset viewer.