Make WordPress Core

Ticket #14170: 14170.diff

File 14170.diff, 2.9 KB (added by scribu, 14 years ago)

pass $network_wide to callbacks

  • wp-includes/plugin.php

     
    605605 */
    606606function register_activation_hook($file, $function) {
    607607        $file = plugin_basename($file);
    608         add_action('activate_' . $file, $function);
     608        add_action('activate_' . $file, $function, 10, 2);
    609609}
    610610
    611611/**
     
    630630 */
    631631function register_deactivation_hook($file, $function) {
    632632        $file = plugin_basename($file);
    633         add_action('deactivate_' . $file, $function);
     633        add_action('deactivate_' . $file, $function, 10, 2);
    634634}
    635635
    636636/**
  • wp-admin/includes/plugin.php

     
    482482                        wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), $redirect)); // we'll override this later if the plugin can be included without fatal error
    483483                ob_start();
    484484                include(WP_PLUGIN_DIR . '/' . $plugin);
    485                 do_action( 'activate_plugin', trim( $plugin) );
    486                 do_action( 'activate_' . trim( $plugin ) );
     485                do_action( 'activate_plugin', trim( $plugin), $network_wide );
     486                do_action( 'activate_' . trim( $plugin ), $network_wide );
    487487                if ( $network_wide ) {
    488488                        $current[$plugin] = time();
    489489                        update_site_option( 'active_sitewide_plugins', $current );
     
    492492                        sort($current);
    493493                        update_option('active_plugins', $current);
    494494                }
    495                 do_action( 'activated_plugin', trim( $plugin) );
     495                do_action( 'activated_plugin', trim( $plugin), $network_wide );
    496496                if ( ob_get_length() > 0 ) {
    497497                        $output = ob_get_clean();
    498498                        return new WP_Error('unexpected_output', __('The plugin generated unexpected output.'), $output);
     
    524524                $plugin = plugin_basename($plugin);
    525525                if ( ! is_plugin_active($plugin) )
    526526                        continue;
     527
     528                $network_wide = is_plugin_active_for_network( $plugin );
     529
    527530                if ( ! $silent )
    528                         do_action( 'deactivate_plugin', trim( $plugin ) );
     531                        do_action( 'deactivate_plugin', trim( $plugin ), $network_wide );
    529532
    530                 if ( is_plugin_active_for_network($plugin) ) {
    531                         // Deactivate network wide
     533                if ( $network_wide ) {
    532534                        $do_network = true;
    533535                        unset( $network_current[ $plugin ] );
    534536                } else {
    535                         // Deactivate for this blog only
    536537                        $key = array_search( $plugin, (array) $current );
    537538                        if ( false !== $key ) {
    538539                                $do_blog = true;
     
    540541                        }
    541542                }
    542543
    543                 //Used by Plugin updater to internally deactivate plugin, however, not to notify plugins of the fact to prevent plugin output.
    544544                if ( ! $silent ) {
    545                         do_action( 'deactivate_' . trim( $plugin ) );
    546                         do_action( 'deactivated_plugin', trim( $plugin ) );
     545                        do_action( 'deactivate_' . trim( $plugin ), $network_wide );
     546                        do_action( 'deactivated_plugin', trim( $plugin ), $network_wide );
    547547                }
    548548        }
    549549