Skip to:
Content

BuddyPress.org

Ticket #8305: 8305-2.patch

File 8305-2.patch, 6.3 KB (added by oztaser, 5 years ago)
  • src/bp-xprofile/admin/css/admin-rtl.css

     
    322322        word-break: break-all; /* e.g. Chinese, Japanese, Korean chars */
    323323}
    324324
     325ul.bp-xprofile-delete-group-list {
     326        list-style-type: disc;
     327        margin: 4px 26px;
     328}
     329
    325330@media screen and (max-width: 782px) {
    326331
    327332        .bp-date-formats .bp-date-format-option:first-of-type {
  • src/bp-xprofile/admin/css/admin.css

     
    322322        word-break: break-all; /* e.g. Chinese, Japanese, Korean chars */
    323323}
    324324
     325ul.bp-xprofile-delete-group-list {
     326        list-style-type: disc;
     327        margin: 4px 26px;
     328}
     329
     330
    325331@media screen and (max-width: 782px) {
    326332
    327333        .bp-date-formats .bp-date-format-option:first-of-type {
  • src/bp-xprofile/bp-xprofile-admin.php

     
    6565                'add_group',
    6666                'edit_group',
    6767                'delete_group',
     68                'do_delete_group',
    6869                'add_field',
    6970                'edit_field',
    7071                'delete_field',
     
    8687                                xprofile_admin_manage_field( $group_id, $field_id );
    8788
    8889                        // Delete group.
    89                         } elseif ( 'delete_group' === $mode ) {
     90                        } elseif ( in_array( $mode, array( 'delete_group', 'do_delete_group' ) ) ) {
    9091                                xprofile_admin_delete_group( $group_id );
    9192
    9293                        // Edit group.
     
    403404
    404405        check_admin_referer( 'bp_xprofile_delete_group' );
    405406
    406         $group = new BP_XProfile_Group( $group_id );
     407        $mode = ! empty( $_GET['mode'] )
     408                  ? sanitize_key( $_GET['mode'] )
     409                  : false;
    407410
    408         if ( !$group->delete() ) {
    409                 $message = _x( 'There was an error deleting the group. Please try again.', 'Error when deleting profile fields group', 'buddypress' );
    410                 $type    = 'error';
     411        // Display the group delete confirmation screen.
     412        if ( 'delete_group' === $mode ) {
     413                xprofile_admin_delete_group_screen( $group_id );
     414
     415        // Handle the deletion of group.
    411416        } else {
    412                 $message = _x( 'The group was deleted successfully.', 'Profile fields group was deleted successfully', 'buddypress' );
    413                 $type    = 'success';
     417                $group = new BP_XProfile_Group( $group_id );
    414418
    415                 /**
    416                  * Fires at the end of group deletion process, if successful.
    417                  *
    418                  * @since 1.0.0
    419                  *
    420                  * @param BP_XProfile_Group $group Current BP_XProfile_Group object.
    421                  */
    422                 do_action( 'xprofile_groups_deleted_group', $group );
     419                if ( ! $group->delete() ) {
     420                        $message = _x( 'There was an error deleting the group. Please try again.', 'Error when deleting profile fields group', 'buddypress' );
     421                        $type    = 'error';
     422                } else {
     423                        $message = _x( 'The group was deleted successfully.', 'Profile fields group was deleted successfully', 'buddypress' );
     424                        $type    = 'success';
     425
     426                        /**
     427                         * Fires at the end of group deletion process, if successful.
     428                         *
     429                         * @since 1.0.0
     430                         *
     431                         * @param BP_XProfile_Group $group Current BP_XProfile_Group object.
     432                         */
     433                        do_action( 'xprofile_groups_deleted_group', $group );
     434                }
     435
     436                xprofile_admin_screen( $message, $type );
    423437        }
     438}
    424439
    425         xprofile_admin_screen( $message, $type );
     440/**
     441 * Display the delete confirmation screen of profile data groups.
     442 *
     443 * @since 7.0.0
     444 */
     445function xprofile_admin_delete_group_screen( $group_id ) {
     446
     447        if ( ! bp_current_user_can( 'bp_moderate' ) ) {
     448                die( '-1' );
     449        }
     450
     451        $group = new BP_XProfile_Group( $group_id );
     452
     453        $base_url = remove_query_arg( array( 'mode', 'group_id', '_wpnonce' ), $_SERVER['REQUEST_URI'] ); ?>
     454
     455        <div class="wrap">
     456                <h1><?php esc_html_e( 'Delete Field Group', 'buddypress' ) ?></h1>
     457                <p><?php esc_html_e( 'You are about to delete the following field group:', 'buddypress' ) ?></p>
     458
     459                <ul class="bp-xprofile-delete-group-list">
     460                        <li><?php esc_html_e( $group->name ); ?></li>
     461                </ul>
     462
     463                <p><strong><?php esc_html_e( 'This action cannot be undone.', 'buddypress' ) ?></strong></p>
     464
     465                <a class="button-primary" href="<?php echo esc_url( wp_nonce_url( add_query_arg( array( 'mode' => 'do_delete_group', 'group_id' => $group_id ), $base_url ), 'bp_xprofile_delete_group' ) ); ?>"><?php esc_html_e( 'Delete Permanently', 'buddypress' ) ?></a>
     466                <a class="button" href="<?php echo esc_attr( $base_url ); ?>"><?php esc_html_e( 'Cancel', 'buddypress' ) ?></a>
     467        </div>
     468
     469        <?php
    426470}
    427471
    428472/**
  • src/bp-xprofile/classes/class-bp-xprofile-group.php

     
    831831                                'mode'     => 'edit_group',
    832832                                'group_id' => (int) $this->id
    833833                        ), $users_url );
     834
     835                        // Delete Group URL.
     836                        $delete_url = wp_nonce_url( add_query_arg( array(
     837                                'page'     => 'bp-profile-setup',
     838                                'mode'     => 'delete_group',
     839                                'group_id' => (int) $this->id
     840                        ), $users_url ), 'bp_xprofile_delete_group' );
    834841                } ?>
    835842
    836843                <div class="wrap">
     
    893900                                                        do_action( 'xprofile_group_before_submitbox', $this ); ?>
    894901
    895902                                                        <div id="submitdiv" class="postbox">
    896                                                                 <h2><?php _e( 'Submit', 'buddypress' ); ?></h2>
     903                                                                <h2><?php esc_html_e( 'Submit', 'buddypress' ); ?></h2>
    897904                                                                <div class="inside">
    898905                                                                        <div id="submitcomment" class="submitbox">
    899906                                                                                <div id="major-publishing-actions">
     
    917924                                                                                                <input type="submit" name="save_group" value="<?php echo esc_attr( $button ); ?>" class="button-primary"/>
    918925                                                                                        </div>
    919926                                                                                        <div id="delete-action">
    920                                                                                                 <a href="<?php echo esc_url( $cancel_url ); ?>" class="deletion"><?php _e( 'Cancel', 'buddypress' ); ?></a>
     927                                                                                                <?php if ( ! empty( $this->id ) ) : ?>
     928                                                                                                        <a href="<?php echo esc_url( $delete_url ); ?>" class="submitdelete deletion"><?php esc_html_e( 'Delete Group', 'buddypress' ); ?></a>
     929                                                                                                <?php endif; ?>
     930
     931                                                                                                <div><a href="<?php echo esc_url( $cancel_url ); ?>" class="deletion"><?php esc_html_e( 'Cancel', 'buddypress' ); ?></a></div>
    921932                                                                                        </div>
    922933                                                                                        <div class="clear"></div>
    923934                                                                                </div>