WordPress.org

Make WordPress Core

Ticket #15920: 15920.patch

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

     
    3535        switch ( $action ) {
    3636                case 'enable':
    3737                        $allowed_themes[ $_GET['theme'] ] = true;
     38                        $update = 'enabled';
    3839                        update_site_option( 'allowedthemes', $allowed_themes );
    39                         wp_redirect( wp_get_referer() ); // @todo add_query_arg for update message
    40                         exit;                   
    4140                        break;
    4241                case 'disable':
    4342                        unset( $allowed_themes[ $_GET['theme'] ] );
     43                        $update = 'disabled';
    4444                        update_site_option( 'allowedthemes', $allowed_themes );
    45                         wp_redirect( wp_get_referer() ); // @todo add_query_arg for update message
    46                         exit;
    4745                        break;
    4846                case 'enable-selected':
    4947                        $themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
    50                         if ( empty($themes) ) {
    51                                 wp_redirect( wp_get_referer() );
    52                                 exit;
    53                         }                                               
    54                         foreach( (array) $themes as $theme )
    55                                 $allowed_themes[ $theme ] = true;
    56                         update_site_option( 'allowedthemes', $allowed_themes );
     48                        if ( ! empty($themes) ) {
     49                                $update = 'enable';
     50                                foreach( (array) $themes as $theme )
     51                                        $allowed_themes[ $theme ] = true;
     52                                update_site_option( 'allowedthemes', $allowed_themes );
     53                        } else {
     54                                $update = 'error';
     55                        }
    5756                        break;
    5857                case 'disable-selected':
    5958                        $themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array();
    60                         if ( empty($themes) ) {
    61                                 wp_redirect( wp_get_referer() );
    62                                 exit;
    63                         }                                               
    64                         foreach( (array) $themes as $theme )
    65                                 unset( $allowed_themes[ $theme ] );
    66                         update_site_option( 'allowedthemes', $allowed_themes );
     59                        if ( ! empty($themes) ) {
     60                                $update = 'disable';
     61                                foreach( (array) $themes as $theme )
     62                                        unset( $allowed_themes[ $theme ] );
     63                                update_site_option( 'allowedthemes', $allowed_themes );
     64                        } else {
     65                                $update = 'error';
     66                        }
    6767                        break;
    6868        }
     69
     70        wp_redirect( add_query_arg( 'update', $update, wp_get_referer() ) );
     71        exit;   
    6972}
    7073
    7174$wp_list_table->prepare_items();
     
    9699        printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', esc_html( $s ) ); ?>
    97100</h2>
    98101
     102<?php
     103if ( isset( $_GET['update'] ) ) {
     104        switch ( $_GET['update'] ) {
     105        case 'enabled':
     106                echo '<div id="message" class="updated"><p>' . __( 'Theme enabled.' ) . '</p></div>';
     107                break;
     108        case 'disabled':
     109                echo '<div id="message" class="updated"><p>' . __( 'Theme disabled.' ) . '</p></div>';
     110                break;
     111        case 'error':
     112                echo '<div id="message" class="error"><p>' . __( 'No theme selected.' ) . '</p></div>';
     113                break;
     114        }
     115}
     116?>
     117
    99118<form method="get" action="">
    100119<?php $wp_list_table->search_box( __( 'Search Installed Themes' ), 'theme' ); ?>
    101120</form>