Skip to:
Content

BuddyPress.org

Ticket #8582: 8582.12-site-request-info.patch

File 8582.12-site-request-info.patch, 8.0 KB (added by dcavins, 22 months ago)

In the multisite Manage Signups screen, display site request info in the profile info modal.

  • src/bp-members/bp-members-admin.php

    diff --git src/bp-members/bp-members-admin.php src/bp-members/bp-members-admin.php
    index 3aa4e01d7..3156cda01 100644
    function bp_members_admin_format_xprofile_field_for_display( $value ) { 
    143143 * @param object|null $signup_object The signup data object.
    144144 */
    145145function bp_members_admin_preview_signup_profile_info( $signup_field_labels = array(), $signup_object = null ) {
    146         if ( ! isset( $signup_object->meta ) || ! $signup_field_labels ) {
    147                 return;
    148         }
    149 
    150         // Init ids.
    151         $profile_field_ids = array();
    152146
    153         // Get all xprofile field IDs except field 1.
    154         if ( ! empty( $signup_object->meta['profile_field_ids'] ) ) {
    155                 $profile_field_ids = array_flip( explode( ',', $signup_object->meta['profile_field_ids'] ) );
    156                 unset( $profile_field_ids[1] );
    157         }
    158147        ?>
    159148        <div id="signup-info-modal-<?php echo $signup_object->id; ?>" style="display:none;">
    160149                <h1><?php printf( '%1$s (%2$s)', esc_html( $signup_object->user_name ), esc_html( $signup_object->user_email ) ); ?></h1>
    161                 <h2><?php esc_html_e( 'Extended Profile Information', 'buddypress' ); ?></h2>
    162 
    163                 <table class="signup-profile-data-drawer wp-list-table widefat fixed striped">
    164                         <?php if ( 1 <= count( $profile_field_ids ) ): foreach ( array_keys( $profile_field_ids ) as $profile_field_id ) :
    165                                 $field_value = isset( $signup_object->meta[ "field_{$profile_field_id}" ] ) ? $signup_object->meta[ "field_{$profile_field_id}" ] : ''; ?>
    166                                 <tr>
    167                                         <td class="column-fields"><?php echo esc_html( $signup_field_labels[ $profile_field_id ] ); ?></td>
    168                                         <td><?php echo bp_members_admin_format_xprofile_field_for_display( $field_value ); ?></td>
    169                                 </tr>
    170                         <?php endforeach; else:  ?>
    171                                 <tr>
    172                                         <td><?php esc_html_e( 'There is no additional information to display.', 'buddypress' ); ?></td>
    173                                 </tr>
    174                         <?php endif; ?>
    175                 </table>
     150
     151                <?php if ( bp_is_active( 'xprofile' ) && isset( $signup_object->meta ) && $signup_field_labels ) :
     152                                // Init ids.
     153                                $profile_field_ids = array();
     154
     155                                // Get all xprofile field IDs except field 1.
     156                                if ( ! empty( $signup_object->meta['profile_field_ids'] ) ) {
     157                                        $profile_field_ids = array_flip( explode( ',', $signup_object->meta['profile_field_ids'] ) );
     158                                        unset( $profile_field_ids[1] );
     159                                }
     160                        ?>
     161                        <h2><?php esc_html_e( 'Extended Profile Information', 'buddypress' ); ?></h2>
     162
     163                        <table class="signup-profile-data-drawer wp-list-table widefat fixed striped">
     164                                <?php if ( 1 <= count( $profile_field_ids ) ): foreach ( array_keys( $profile_field_ids ) as $profile_field_id ) :
     165                                        $field_value = isset( $signup_object->meta[ "field_{$profile_field_id}" ] ) ? $signup_object->meta[ "field_{$profile_field_id}" ] : ''; ?>
     166                                        <tr>
     167                                                <td class="column-fields"><?php echo esc_html( $signup_field_labels[ $profile_field_id ] ); ?></td>
     168                                                <td><?php echo bp_members_admin_format_xprofile_field_for_display( $field_value ); ?></td>
     169                                        </tr>
     170                                <?php endforeach; else: ?>
     171                                        <tr>
     172                                                <td><?php esc_html_e( 'There is no additional information to display.', 'buddypress' ); ?></td>
     173                                        </tr>
     174                                <?php endif; ?>
     175                        </table>
     176                <?php endif; ?>
     177
     178                <?php if ( bp_members_site_requests_enabled() ) : ?>
     179                        <h2><?php esc_html_e( 'Site Request Information', 'buddypress' ); ?></h2>
     180                        <table class="signup-profile-data-drawer wp-list-table widefat fixed striped">
     181                                <?php if ( ! empty( $signup_object->domain ) || ! empty( $signup_object->path )  ): ?>
     182                                        <tr>
     183                                                <td class="column-fields"><?php esc_html_e( 'Site Title', 'buddypress' ); ?></td>
     184                                                <td><?php echo esc_html( $signup_object->title ); ?></td>
     185                                        </tr>
     186                                        <tr>
     187                                                <td class="column-fields"><?php esc_html_e( 'Domain', 'buddypress' ); ?></td>
     188                                                <td><?php echo esc_html( $signup_object->domain ); ?></td>
     189                                        </tr>
     190                                        <tr>
     191                                                <td class="column-fields"><?php esc_html_e( 'Path', 'buddypress' ); ?></td>
     192                                                <td><?php echo esc_html( $signup_object->path ); ?></td>
     193                                        </tr>
     194                                <?php else : ?>
     195                                        <tr>
     196                                                <td><?php esc_html_e( 'This user has not requested a blog.', 'buddypress' ); ?></td>
     197                                        </tr>
     198                                <?php endif; ?>
     199                        </table>
     200                <?php endif; ?>
    176201        </div>
    177202        <?php
    178203}
  • src/bp-members/bp-members-functions.php

    diff --git src/bp-members/bp-members-functions.php src/bp-members/bp-members-functions.php
    index e61bdf632..e3f60e220 100644
    function bp_members_get_signup_by( $field = 'activation_key', $value = '' ) { 
    37493749
    37503750        return $signup;
    37513751}
     3752
     3753/**
     3754 * Are site creation requests currently enabled?
     3755 *
     3756 * @since 10.0.0
     3757 *
     3758 * @return bool Whether site requests are currently enabled.
     3759 */
     3760function bp_members_site_requests_enabled() {
     3761
     3762        $matches = array( 'blog', 'all' );
     3763
     3764        return is_multisite() && in_array( bp_core_get_root_option( 'registration' ), $matches, true );
     3765}
  • src/bp-members/bp-members-membership-requests.php

    diff --git src/bp-members/bp-members-membership-requests.php src/bp-members/bp-members-membership-requests.php
    index b0ad8d223..54c6159ff 100644
    function bp_members_membership_requests_filter_signup_row_actions( $actions, $si 
    304304        $actions['resend'] = sprintf( '<a href="%1$s">%2$s</a>', esc_url( $email_link ), esc_html( $resend_label ) );
    305305
    306306        // Add a link to view profile info when membership requests and xprofile are active.
    307         if ( bp_is_active( 'xprofile' ) ) {
     307        if ( bp_is_active( 'xprofile' ) || bp_members_site_requests_enabled() ) {
    308308                $profile_link = add_query_arg(
    309309                        array(
    310310                                'page'     => 'bp-signups#TB_inline',
  • src/bp-members/classes/class-bp-members-admin.php

    diff --git src/bp-members/classes/class-bp-members-admin.php src/bp-members/classes/class-bp-members-admin.php
    index 6c94cf20c..89c6badd3 100644
    class BP_Members_Admin { 
    17571757                        ) );
    17581758
    17591759                        // Use thickbox to display the extended profile information.
    1760                         if ( bp_is_active( 'xprofile' ) ) {
     1760                        if ( bp_is_active( 'xprofile' ) || bp_members_site_requests_enabled() ) {
    17611761                                wp_enqueue_style( 'thickbox' );
    17621762                                wp_enqueue_script(
    17631763                                        'bp-signup-preview',
  • src/bp-members/classes/class-bp-members-ms-list-table.php

    diff --git src/bp-members/classes/class-bp-members-ms-list-table.php src/bp-members/classes/class-bp-members-ms-list-table.php
    index 27015f220..0dc4b5766 100644
    class BP_Members_MS_List_Table extends WP_MS_Users_List_Table { 
    125125                $this->screen->id = $reset_screen_id;
    126126
    127127                // Use thickbox to display the extended profile information.
    128                 if ( bp_is_active( 'xprofile' ) ) {
     128                if ( bp_is_active( 'xprofile' ) || bp_members_site_requests_enabled() ) {
    129129                        add_thickbox();
    130130                }
    131131        }
    class BP_Members_MS_List_Table extends WP_MS_Users_List_Table { 
    353353                echo esc_html( $signup_object->user_name );
    354354
    355355                // Insert the extended profile modal content required by thickbox.
    356                 if ( ! bp_is_active( 'xprofile' ) ) {
     356                if ( ! bp_is_active( 'xprofile' ) && ! bp_members_site_requests_enabled() ) {
    357357                        return;
    358358                }
    359359
    360                 $profile_field_ids = array();
    361 
    362                 // Fetch registration field data once only.
    363                 if ( ! $this->signup_field_labels ) {
    364                         $field_groups = bp_xprofile_get_groups(
    365                                 array(
    366                                         'fetch_fields'       => true,
    367                                         'signup_fields_only' => true,
    368                                 )
    369                         );
    370 
    371                         foreach( $field_groups as $field_group ) {
    372                                 foreach( $field_group->fields as $field ) {
    373                                         $this->signup_field_labels[ $field->id ] = $field->name;
     360                if ( bp_is_active( 'xprofile' ) ) {
     361                        $profile_field_ids = array();
     362
     363                        // Fetch registration field data once only.
     364                        if ( ! $this->signup_field_labels ) {
     365                                $field_groups = bp_xprofile_get_groups(
     366                                        array(
     367                                                'fetch_fields'       => true,
     368                                                'signup_fields_only' => true,
     369                                        )
     370                                );
     371
     372                                foreach( $field_groups as $field_group ) {
     373                                        foreach( $field_group->fields as $field ) {
     374                                                $this->signup_field_labels[ $field->id ] = $field->name;
     375                                        }
    374376                                }
    375377                        }
    376378                }