Skip to:
Content

Changeset 11556


Ignore:
Timestamp:
05/17/17 18:57:20 (8 months ago)
Author:
dcavins
Message:

Update group update form logic to handle slug changes.

Add error cases for handling form input that may include group slug
updates.

See #6014.

Location:
trunk/src/bp-groups
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-groups/admin/css/admin-rtl.css

    r11416 r11556  
    4646    line-height: 24px; 
    4747    color: #666; 
     48} 
     49#bp-groups-permalink { 
     50    margin-left: 24px; 
    4851} 
    4952.bp-groups-member-type { 
  • trunk/src/bp-groups/admin/css/admin.css

    r11416 r11556  
    4646    line-height: 24px; 
    4747    color: #666; 
     48} 
     49#bp-groups-permalink { 
     50    margin-right: 24px; 
    4851} 
    4952.bp-groups-member-type { 
  • trunk/src/bp-groups/bp-groups-admin.php

    r11530 r11556  
    237237        $success_new = $error_new = $success_modified = $error_modified = array(); 
    238238 
    239         // Group name and description are handled with 
    240         // groups_edit_base_group_details(). 
    241         if ( !groups_edit_base_group_details( $group_id, $_POST['bp-groups-name'], $_POST['bp-groups-description'], 0 ) ) { 
     239        // Name, description and slug must not be empty. 
     240        if ( empty( $_POST['bp-groups-name'] ) ) { 
     241            $error = $error - 1; 
     242        } 
     243        if ( empty( $_POST['bp-groups-description'] ) ) { 
     244            $error = $error - 2; 
     245        } 
     246        if ( empty( $_POST['bp-groups-slug'] ) ) { 
     247            $error = $error - 4; 
     248        } 
     249 
     250        /* 
     251         * Group name, slug, and description are handled with 
     252         * groups_edit_base_group_details(). 
     253         */ 
     254        if ( ! $error && ! groups_edit_base_group_details( array( 
     255                'group_id'       => $group_id, 
     256                'name'           => $_POST['bp-groups-name'], 
     257                'slug'           => $_POST['bp-groups-slug'], 
     258                'description'    => $_POST['bp-groups-description'], 
     259                'notify_members' => false, 
     260            ) ) ) { 
    242261            $error = $group_id; 
    243  
    244             // Using negative integers for different error messages... eek! 
    245             if ( empty( $_POST['bp-groups-name'] ) && empty( $_POST['bp-groups-description'] ) ) { 
    246                 $error = -3; 
    247             } elseif ( empty( $_POST['bp-groups-name'] ) ) { 
    248                 $error = -1; 
    249             } elseif ( empty( $_POST['bp-groups-description'] ) ) { 
    250                 $error = -2; 
    251             } 
    252262        } 
    253263 
     
    519529 
    520530        if ( ! empty( $errors ) ) { 
    521             switch ( $errors ) { 
    522                 case -1 : 
    523                     $messages[] = __( 'Group name cannot be empty.', 'buddypress' ); 
    524                     break; 
    525  
    526                 case -2 : 
    527                     $messages[] = __( 'Group description cannot be empty.', 'buddypress' ); 
    528                     break; 
    529  
    530                 case -3 : 
    531                     $messages[] = __( 'Group name and description cannot be empty.', 'buddypress' ); 
    532                     break; 
    533  
    534                 default : 
    535                     $messages[] = __( 'An error occurred when trying to update your group details.', 'buddypress' ); 
    536                     break; 
     531            if ( $errors < 0 ) { 
     532                $messages[] = __( 'Group name, slug, and description are all required fields.', 'buddypress' ); 
     533            } else { 
     534                $messages[] = __( 'An error occurred when trying to update your group details.', 'buddypress' ); 
    537535            } 
    538536 
     
    613611                                        <input type="text" name="bp-groups-name" id="bp-groups-name" value="<?php echo esc_attr( stripslashes( $group_name ) ) ?>" /> 
    614612                                        <div id="bp-groups-permalink-box"> 
    615                                             <strong><?php esc_html_e( 'Permalink:', 'buddypress' ) ?></strong> <span id="sample-permalink"><?php bp_group_permalink( $group ) ?></span> <a href="<?php echo bp_group_permalink( $group ) ?>" class="button button-small" id="bp-groups-visit-group"><?php esc_html_e( 'Visit Group', 'buddypress' ) ?></a> 
     613                                            <strong><?php esc_html_e( 'Permalink:', 'buddypress' ) ?></strong> 
     614                                            <span id="bp-groups-permalink"> 
     615                                                <?php bp_groups_directory_permalink(); ?> <input type="text" id="bp-groups-slug" name="bp-groups-slug" value="<?php bp_group_slug( $group ); ?>" autocomplete="off"> / 
     616                                            </span> 
     617                                            <a href="<?php echo bp_group_permalink( $group ) ?>" class="button button-small" id="bp-groups-visit-group"><?php esc_html_e( 'Visit Group', 'buddypress' ) ?></a> 
    616618                                        </div> 
    617619 
  • trunk/src/bp-groups/bp-groups-screens.php

    r11529 r11556  
    840840            $group_notify_members = isset( $_POST['group-notify-members'] ) ? (int) $_POST['group-notify-members'] : 0; 
    841841 
    842             if ( !groups_edit_base_group_details( $_POST['group-id'], $_POST['group-name'], $_POST['group-desc'], $group_notify_members ) ) { 
     842            // Name and description are required and may not be empty. 
     843            if ( empty( $_POST['group-name'] ) || empty( $_POST['group-desc'] ) ) { 
     844                bp_core_add_message( __( 'Groups must have a name and a description. Please try again.', 'buddypress' ), 'error' ); 
     845            } elseif ( ! groups_edit_base_group_details( array( 
     846                'group_id'       => $_POST['group-id'], 
     847                'name'           => $_POST['group-name'], 
     848                'slug'           => null, // @TODO: Add to settings pane? If yes, editable by site admin only, or allow group admins to do this? 
     849                'description'    => $_POST['group-desc'], 
     850                'notify_members' => $group_notify_members, 
     851            ) ) ) { 
    843852                bp_core_add_message( __( 'There was an error updating group details. Please try again.', 'buddypress' ), 'error' ); 
    844853            } else { 
Note: See TracChangeset for help on using the changeset viewer.