WordPress.org

Make WordPress Core

Ticket #15920: 15920-take3.patch

File 15920-take3.patch, 4.6 KB (added by SergeyBiryukov, 4 years ago)
  • wp-admin/network/themes.php

     
    3737                        check_admin_referer('enable-theme_' . $_GET['theme']); 
    3838                        $allowed_themes[ $_GET['theme'] ] = true; 
    3939                        update_site_option( 'allowedthemes', $allowed_themes ); 
    40                         wp_redirect( wp_get_referer() ); // @todo add_query_arg for update message 
    41                         exit;                    
     40                        wp_redirect( add_query_arg( 'update', 'enabled', wp_get_referer() ) ); 
     41                        exit; 
    4242                        break; 
    4343                case 'disable': 
    4444                        check_admin_referer('disable-theme_' . $_GET['theme']); 
    4545                        unset( $allowed_themes[ $_GET['theme'] ] ); 
    4646                        update_site_option( 'allowedthemes', $allowed_themes ); 
    47                         wp_redirect( wp_get_referer() ); // @todo add_query_arg for update message 
     47                        wp_redirect( add_query_arg( 'update', 'disabled', wp_get_referer() ) ); 
    4848                        exit; 
    4949                        break; 
    5050                case 'enable-selected': 
    5151                        check_admin_referer('bulk-themes'); 
    5252                        $themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array(); 
    5353                        if ( empty($themes) ) { 
    54                                 wp_redirect( wp_get_referer() ); 
     54                                wp_redirect( add_query_arg( 'update', 'error', wp_get_referer() ) ); 
    5555                                exit; 
    56                         }                                                
     56                        } 
    5757                        foreach( (array) $themes as $theme ) 
    5858                                $allowed_themes[ $theme ] = true; 
    5959                        update_site_option( 'allowedthemes', $allowed_themes ); 
     60                        wp_redirect( add_query_arg( array( 'update' => 'enabled', 'n' => count( $themes ) ), wp_get_referer() ) ); 
     61                        exit; 
    6062                        break; 
    6163                case 'disable-selected': 
    6264                        check_admin_referer('bulk-themes'); 
    6365                        $themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array(); 
    6466                        if ( empty($themes) ) { 
    65                                 wp_redirect( wp_get_referer() ); 
     67                                wp_redirect( add_query_arg( 'update', 'error', wp_get_referer() ) ); 
    6668                                exit; 
    67                         }                                                
     69                        } 
    6870                        foreach( (array) $themes as $theme ) 
    6971                                unset( $allowed_themes[ $theme ] ); 
    7072                        update_site_option( 'allowedthemes', $allowed_themes ); 
     73                        wp_redirect( add_query_arg( array( 'update' => 'disabled', 'n' => count( $themes ) ), wp_get_referer() ) ); 
     74                        exit; 
    7175                        break; 
    7276                case 'delete-selected': 
    7377                        if ( ! current_user_can( 'delete_themes' ) ) 
     
    7680 
    7781                        $themes = isset( $_REQUEST['checked'] ) ? (array) $_REQUEST['checked'] : array(); 
    7882                        if ( empty( $themes ) ) { 
    79                                 wp_redirect( wp_get_referer() ); 
     83                                wp_redirect( add_query_arg( 'update', 'error', wp_get_referer() ) ); 
    8084                                exit; 
    8185                        } 
    8286 
     
    149153 
    150154                        foreach ( $themes as $theme ) 
    151155                                $delete_result = delete_theme( $theme ); 
    152                         wp_redirect( network_admin_url( 'themes.php?deleted=true' ) ); 
     156                        wp_redirect( network_admin_url( 'themes.php?update=deleted&n=' . count($themes) ) ); 
    153157                        exit; 
    154158                        break; 
    155159        } 
     
    174178 
    175179require_once(ABSPATH . 'wp-admin/admin-header.php'); 
    176180 
    177 if ( isset( $_GET['deleted'] ) ) : ?> 
    178 <div class="updated"><p><?php _e('Theme deleted.') ?></p></div><?php 
    179 elseif ( isset( $_GET['error'] ) && 'main' == $_GET['error'] ) : ?> 
     181if ( isset( $_GET['error'] ) && 'main' == $_GET['error'] ) : ?> 
    180182<div class="error"><p><?php _e( 'You cannot delete a theme while it is active on the main site.' ); ?></p></div><?php 
    181183endif; 
    182184?> 
     
    188190        printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( $s ) ); ?>  
    189191</h2> 
    190192 
     193<?php 
     194if ( isset( $_GET['update'] ) ) { 
     195        switch ( $_GET['update'] ) { 
     196        case 'enabled': 
     197                if ( !empty( $_GET['n'] ) ) 
     198                        echo '<div id="message" class="updated"><p>' . sprintf( _n( '%s theme enabled.', '%s themes enabled.', $_GET['n'] ), number_format_i18n( $_GET['n'] ) ) . '</p></div>'; 
     199                else 
     200                        echo '<div id="message" class="updated"><p>' . __( 'Theme enabled.' ) . '</p></div>'; 
     201                break; 
     202        case 'disabled': 
     203                if ( !empty( $_GET['n'] ) ) 
     204                        echo '<div id="message" class="updated"><p>' . sprintf( _n( '%s theme disabled.', '%s themes disabled.', $_GET['n'] ), number_format_i18n( $_GET['n'] ) ) . '</p></div>'; 
     205                else 
     206                        echo '<div id="message" class="updated"><p>' . __( 'Theme disabled.' ) . '</p></div>'; 
     207                break; 
     208        case 'deleted': 
     209                if ( !empty( $_GET['n'] ) ) 
     210                        echo '<div id="message" class="updated"><p>' . sprintf( _n( '%s theme deleted.', '%s themes deleted.', $_GET['n'] ), number_format_i18n( $_GET['n'] ) ) . '</p></div>'; 
     211                else 
     212                        echo '<div id="message" class="updated"><p>' . __( 'Theme deleted.' ) . '</p></div>'; 
     213                break; 
     214        case 'error': 
     215                echo '<div id="message" class="error"><p>' . __( 'No theme selected.' ) . '</p></div>'; 
     216                break; 
     217        } 
     218} 
     219?> 
     220 
    191221<form method="get" action=""> 
    192222<?php $wp_list_table->search_box( __( 'Search Installed Themes' ), 'theme' ); ?> 
    193223</form>