Make WordPress Core

Changeset 34551


Ignore:
Timestamp:
09/25/2015 07:15:08 PM (9 years ago)
Author:
johnbillion
Message:

Implement 'Recently Active' functionality for network-wide plugins in the Network Admin.

Fixes #20468
Thanks to WordCamp RI attendees for testing!

Location:
trunk/src/wp-admin
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/class-wp-plugins-list-table.php

    r34383 r34551  
    130130        set_transient( 'plugin_slugs', array_keys( $plugins['all'] ), DAY_IN_SECONDS );
    131131
    132         if ( ! $screen->in_admin( 'network' ) ) {
     132        if ( $screen->in_admin( 'network' ) ) {
     133            $recently_activated = get_site_option( 'recently_activated', array() );
     134        } else {
    133135            $recently_activated = get_option( 'recently_activated', array() );
    134 
    135             foreach ( $recently_activated as $key => $time )
    136                 if ( $time + WEEK_IN_SECONDS < time() )
    137                     unset( $recently_activated[$key] );
     136        }
     137
     138        foreach ( $recently_activated as $key => $time ) {
     139            if ( $time + WEEK_IN_SECONDS < time() ) {
     140                unset( $recently_activated[$key] );
     141            }
     142        }
     143
     144        if ( $screen->in_admin( 'network' ) ) {
     145            update_site_option( 'recently_activated', $recently_activated );
     146        } else {
    138147            update_option( 'recently_activated', $recently_activated );
    139148        }
     
    171180                $plugins['active'][ $plugin_file ] = $plugin_data;
    172181            } else {
    173                 if ( ! $screen->in_admin( 'network' ) && isset( $recently_activated[ $plugin_file ] ) ) {
    174                     // On the non-network screen, populate the recently activated list with plugins that have been recently activated
     182                if ( isset( $recently_activated[ $plugin_file ] ) ) {
     183                    // Populate the recently activated list with plugins that have been recently activated
    175184                    $plugins['recently_activated'][ $plugin_file ] = $plugin_data;
    176185                }
     
    401410        echo '<div class="alignleft actions">';
    402411
    403         if ( ! $this->screen->in_admin( 'network' ) && 'recently_activated' === $status ) {
     412        if ( 'recently_activated' == $status ) {
    404413            submit_button( __( 'Clear List' ), 'button', 'clear-recent-list', false );
    405414        } elseif ( 'top' === $which && 'mustuse' === $status ) {
  • trunk/src/wp-admin/plugin-editor.php

    r34547 r34551  
    7272                deactivate_plugins($file, true);
    7373
    74             if ( ! is_network_admin() )
     74            if ( ! is_network_admin() ) {
    7575                update_option( 'recently_activated', array( $file => time() ) + (array) get_option( 'recently_activated' ) );
     76            } else {
     77                update_site_option( 'recently_activated', array( $file => time() ) + (array) get_site_option( 'recently_activated' ) );
     78            }
    7679
    7780            wp_redirect(add_query_arg('_wpnonce', wp_create_nonce('edit-plugin-test_' . $file), "plugin-editor.php?file=$file&liveupdate=1&scrollto=$scrollto&networkwide=" . $network_wide));
  • trunk/src/wp-admin/plugins.php

    r34521 r34551  
    5555                unset( $recent[ $plugin ] );
    5656                update_option( 'recently_activated', $recent );
     57            } else {
     58                $recent = (array) get_site_option( 'recently_activated' );
     59                unset( $recent[ $plugin ] );
     60                update_site_option( 'recently_activated', $recent );
    5761            }
    5862
     
    97101            if ( ! is_network_admin() ) {
    98102                $recent = (array) get_option('recently_activated' );
    99                 foreach ( $plugins as $plugin )
    100                     unset( $recent[ $plugin ] );
     103            } else {
     104                $recent = (array) get_site_option('recently_activated' );
     105            }
     106
     107            foreach ( $plugins as $plugin ) {
     108                unset( $recent[ $plugin ] );
     109            }
     110
     111            if ( ! is_network_admin() ) {
    101112                update_option( 'recently_activated', $recent );
     113            } else {
     114                update_site_option( 'recently_activated', $recent );
    102115            }
    103116
     
    166179
    167180            deactivate_plugins( $plugin, false, is_network_admin() );
    168             if ( ! is_network_admin() )
     181
     182            if ( ! is_network_admin() ) {
    169183                update_option( 'recently_activated', array( $plugin => time() ) + (array) get_option( 'recently_activated' ) );
     184            } else {
     185                update_site_option( 'recently_activated', array( $plugin => time() ) + (array) get_site_option( 'recently_activated' ) );
     186            }
     187
    170188            if ( headers_sent() )
    171189                echo "<meta http-equiv='refresh' content='" . esc_attr( "0;url=plugins.php?deactivate=true&plugin_status=$status&paged=$page&s=$s" ) . "' />";
     
    195213            deactivate_plugins( $plugins, false, is_network_admin() );
    196214
     215            $deactivated = array();
     216            foreach ( $plugins as $plugin ) {
     217                $deactivated[ $plugin ] = time();
     218            }
     219
    197220            if ( ! is_network_admin() ) {
    198                 $deactivated = array();
    199                 foreach ( $plugins as $plugin )
    200                     $deactivated[ $plugin ] = time();
    201221                update_option( 'recently_activated', $deactivated + (array) get_option( 'recently_activated' ) );
     222            } else {
     223                update_site_option( 'recently_activated', $deactivated + (array) get_site_option( 'recently_activated' ) );
    202224            }
    203225
     
    355377
    356378        case 'clear-recent-list':
    357             if ( ! is_network_admin() )
     379            if ( ! is_network_admin() ) {
    358380                update_option( 'recently_activated', array() );
     381            } else {
     382                update_site_option( 'recently_activated', array() );
     383            }
    359384            break;
    360385    }
Note: See TracChangeset for help on using the changeset viewer.