Make WordPress Core

Changeset 12157


Ignore:
Timestamp:
11/09/2009 06:53:21 PM (15 years ago)
Author:
ryan
Message:

Put site into maintenance mode during bulk plugin upgrade. Skip plugin deactivate/activate. Add compatibility info. see #10973

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/class-wp-upgrader.php

    r12107 r12157  
    433433                ));
    434434
    435         //Cleanup our hooks, incase something else does a upgrade on this connection.
     435        // Cleanup our hooks, incase something else does a upgrade on this connection.
    436436        remove_filter('upgrader_pre_install', array(&$this, 'deactivate_plugin_before_upgrade'));
    437437        remove_filter('upgrader_clear_destination', array(&$this, 'delete_old_plugin'));
     
    452452        $current = get_transient( 'update_plugins' );
    453453
    454         add_filter('upgrader_pre_install', array(&$this, 'deactivate_plugin_before_upgrade'), 10, 2);
    455454        add_filter('upgrader_clear_destination', array(&$this, 'delete_old_plugin'), 10, 4);
    456455
    457456        $this->skin->header();
     457
     458        // Connect to the Filesystem first.
     459        $res = $this->fs_connect( array(WP_CONTENT_DIR, WP_PLUGIN_DIR) );
     460        if ( ! $res ) {
     461            $this->skin->footer();
     462            return false;
     463        }
     464
     465        $this->maintenance_mode(true);
     466
    458467        $all = count($plugins);
    459468        $i = 1;
     
    493502                break;
    494503        }
     504        $this->maintenance_mode(false);
    495505        $this->skin->footer();
    496506
    497         //Cleanup our hooks, incase something else does a upgrade on this connection.
    498         remove_filter('upgrader_pre_install', array(&$this, 'deactivate_plugin_before_upgrade'));
     507        // Cleanup our hooks, incase something else does a upgrade on this connection.
    499508        remove_filter('upgrader_clear_destination', array(&$this, 'delete_old_plugin'));
    500509
     
    900909
    901910    function after() {
     911        if ( $this->upgrader->bulk )
     912            return;
     913
    902914        $this->plugin = $this->upgrader->plugin_info();
    903915        if( !empty($this->plugin) && !is_wp_error($this->result) && $this->plugin_active ){
     
    905917            echo '<iframe style="border:0;overflow:hidden" width="100%" height="170px" src="' . wp_nonce_url('update.php?action=activate-plugin&plugin=' . $this->plugin, 'activate-plugin_' . $this->plugin) .'"></iframe>';
    906918        }
     919
    907920        $update_actions =  array(
    908921            'activate_plugin' => '<a href="' . wp_nonce_url('plugins.php?action=activate&amp;plugin=' . $this->plugin, 'activate-plugin_' . $this->plugin) . '" title="' . esc_attr__('Activate this plugin') . '" target="_parent">' . __('Activate Plugin') . '</a>',
  • trunk/wp-admin/update-core.php

    r12107 r12157  
    134134
    135135function list_plugin_updates() {
     136    global $wp_version;
     137
     138    $cur_wp_version = preg_replace('/-.*$/', '', $wp_version);
     139
     140    require_once(ABSPATH . 'wp-admin/includes/plugin-install.php');
    136141    $plugins = get_plugin_updates();
    137142    if ( empty($plugins) )
     
    161166<?php
    162167    foreach ( (array) $plugins as $plugin_file => $plugin_data) {
     168        $info = plugins_api('plugin_information', array('slug' => $plugin_data->update->slug ));
     169        if ( isset($info->compatibility[$cur_wp_version][$plugin_data->update->new_version]) ) {
     170            $compat = $info->compatibility[$cur_wp_version][$plugin_data->update->new_version];
     171            $compat = '  ' . sprintf(__('Compatibility: %1$d%% (%2$d "works" votes out of %3$d total)'), $compat[0], $compat[2], $compat[1]);
     172        } else {
     173            $compat = '';
     174        }
    163175        echo "
    164176    <tr class='active'>
    165177        <th scope='row' class='check-column'><input type='checkbox' name='checked[]' value='" . esc_attr($plugin_file) . "' /></th>
    166         <td class='plugin-title'><strong>{$plugin_data->Name}</strong>" . sprintf(__('You are running version %1$s. Upgrade to %2$s.'), $plugin_data->Version, $plugin_data->update->new_version) . "</td>
     178        <td class='plugin-title'><strong>{$plugin_data->Name}</strong>" . sprintf(__('You are running version %1$s. Upgrade to %2$s.'), $plugin_data->Version, $plugin_data->update->new_version) . $compat . "</td>
    167179    </tr>";
    168180    }
     
    301313    $title = __('Upgrade Plugins');
    302314    $nonce = 'upgrade-core';
    303     add_filter('update_plugin_complete_actions', 'no_update_actions');
    304 
    305315    $upgrader = new Plugin_Upgrader( new Plugin_Upgrader_Skin( compact('title', 'nonce', 'url', 'plugin') ) );
    306316    $upgrader->bulk_upgrade($plugins);
  • trunk/wp-includes/update.php

    r11829 r12157  
    315315add_action( 'load-plugins.php', 'wp_update_plugins' );
    316316add_action( 'load-update.php', 'wp_update_plugins' );
     317add_action( 'load-update-core.php', 'wp_update_plugins' );
    317318add_action( 'admin_init', '_maybe_update_plugins' );
    318319add_action( 'wp_update_plugins', 'wp_update_plugins' );
Note: See TracChangeset for help on using the changeset viewer.