X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/fa11948979fd6a4ea5705dc613b239699a459db3..9441756a895fb4fdc4bcf20e0d228cef622663ca:/wp-admin/plugins.php diff --git a/wp-admin/plugins.php b/wp-admin/plugins.php index b587c66e..93aec79d 100644 --- a/wp-admin/plugins.php +++ b/wp-admin/plugins.php @@ -23,6 +23,8 @@ $s = isset($_REQUEST['s']) ? urlencode($_REQUEST['s']) : ''; // Clean up request URI from temporary args for screen options/paging uri's to work as expected. $_SERVER['REQUEST_URI'] = remove_query_arg(array('error', 'deleted', 'activate', 'activate-multi', 'deactivate', 'deactivate-multi', '_error_nonce'), $_SERVER['REQUEST_URI']); +wp_enqueue_script( 'updates' ); + if ( $action ) { switch ( $action ) { @@ -52,6 +54,10 @@ if ( $action ) { $recent = (array) get_option( 'recently_activated' ); unset( $recent[ $plugin ] ); update_option( 'recently_activated', $recent ); + } else { + $recent = (array) get_site_option( 'recently_activated' ); + unset( $recent[ $plugin ] ); + update_site_option( 'recently_activated', $recent ); } if ( isset($_GET['from']) && 'import' == $_GET['from'] ) { @@ -60,7 +66,7 @@ if ( $action ) { wp_redirect( self_admin_url("plugins.php?activate=true&plugin_status=$status&paged=$page&s=$s") ); // overrides the ?error=true one above } exit; - break; + case 'activate-selected': if ( ! current_user_can('activate_plugins') ) wp_die(__('You do not have sufficient permissions to activate plugins for this site.')); @@ -69,16 +75,19 @@ if ( $action ) { $plugins = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array(); - // Only activate plugins which are not already active. if ( is_network_admin() ) { foreach ( $plugins as $i => $plugin ) { - if ( is_plugin_active_for_network( $plugin ) ) + // Only activate plugins which are not already network activated. + if ( is_plugin_active_for_network( $plugin ) ) { unset( $plugins[ $i ] ); + } } } else { foreach ( $plugins as $i => $plugin ) { - if ( is_plugin_active( $plugin ) || is_network_only_plugin( $plugin ) ) + // Only activate plugins which are not already active and are not network-only when on Multisite. + if ( is_plugin_active( $plugin ) || ( is_multisite() && is_network_only_plugin( $plugin ) ) ) { unset( $plugins[ $i ] ); + } } } @@ -91,14 +100,23 @@ if ( $action ) { if ( ! is_network_admin() ) { $recent = (array) get_option('recently_activated' ); - foreach ( $plugins as $plugin ) - unset( $recent[ $plugin ] ); + } else { + $recent = (array) get_site_option('recently_activated' ); + } + + foreach ( $plugins as $plugin ) { + unset( $recent[ $plugin ] ); + } + + if ( ! is_network_admin() ) { update_option( 'recently_activated', $recent ); + } else { + update_site_option( 'recently_activated', $recent ); } wp_redirect( self_admin_url("plugins.php?activate-multi=true&plugin_status=$status&paged=$page&s=$s") ); exit; - break; + case 'update-selected' : check_admin_referer( 'bulk-plugins' ); @@ -113,11 +131,11 @@ if ( $action ) { $title = __( 'Update Plugins' ); $parent_file = 'plugins.php'; + wp_enqueue_script( 'updates' ); require_once(ABSPATH . 'wp-admin/admin-header.php'); echo '
'; - screen_icon(); - echo '

' . esc_html( $title ) . '

'; + echo '

' . esc_html( $title ) . '

'; $url = self_admin_url('update.php?action=update-selected&plugins=' . urlencode( join(',', $plugins) )); $url = wp_nonce_url($url, 'bulk-update-plugins'); @@ -126,7 +144,7 @@ if ( $action ) { echo '
'; require_once(ABSPATH . 'wp-admin/admin-footer.php'); exit; - break; + case 'error_scrape': if ( ! current_user_can('activate_plugins') ) wp_die(__('You do not have sufficient permissions to activate plugins for this site.')); @@ -143,13 +161,11 @@ if ( $action ) { @ini_set('display_errors', true); //Ensure that Fatal errors are displayed. // Go back to "sandbox" scope so we get the same errors as before - function plugin_sandbox_scrape( $plugin ) { - include( WP_PLUGIN_DIR . '/' . $plugin ); - } plugin_sandbox_scrape( $plugin ); - do_action('activate_' . $plugin); + /** This action is documented in wp-admin/includes/plugin.php */ + do_action( "activate_{$plugin}" ); exit; - break; + case 'deactivate': if ( ! current_user_can('activate_plugins') ) wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.')); @@ -162,14 +178,19 @@ if ( $action ) { } deactivate_plugins( $plugin, false, is_network_admin() ); - if ( ! is_network_admin() ) + + if ( ! is_network_admin() ) { update_option( 'recently_activated', array( $plugin => time() ) + (array) get_option( 'recently_activated' ) ); + } else { + update_site_option( 'recently_activated', array( $plugin => time() ) + (array) get_site_option( 'recently_activated' ) ); + } + if ( headers_sent() ) echo ""; else wp_redirect( self_admin_url("plugins.php?deactivate=true&plugin_status=$status&paged=$page&s=$s") ); exit; - break; + case 'deactivate-selected': if ( ! current_user_can('activate_plugins') ) wp_die(__('You do not have sufficient permissions to deactivate plugins for this site.')); @@ -191,19 +212,24 @@ if ( $action ) { deactivate_plugins( $plugins, false, is_network_admin() ); + $deactivated = array(); + foreach ( $plugins as $plugin ) { + $deactivated[ $plugin ] = time(); + } + if ( ! is_network_admin() ) { - $deactivated = array(); - foreach ( $plugins as $plugin ) - $deactivated[ $plugin ] = time(); update_option( 'recently_activated', $deactivated + (array) get_option( 'recently_activated' ) ); + } else { + update_site_option( 'recently_activated', $deactivated + (array) get_site_option( 'recently_activated' ) ); } wp_redirect( self_admin_url("plugins.php?deactivate-multi=true&plugin_status=$status&paged=$page&s=$s") ); exit; - break; + case 'delete-selected': - if ( ! current_user_can('delete_plugins') ) + if ( ! current_user_can('delete_plugins') ) { wp_die(__('You do not have sufficient permissions to delete plugins for this site.')); + } check_admin_referer('bulk-plugins'); @@ -232,51 +258,74 @@ if ( $action ) { $data ) { + + // Get plugins list from that folder. + if ( $folder_plugins = get_plugins( '/' . $plugin_slug ) ) { + foreach ( $folder_plugins as $plugin_file => $data ) { $plugin_info[ $plugin_file ] = _get_plugin_data_markup_translate( $plugin_file, $data ); $plugin_info[ $plugin_file ]['is_uninstallable'] = is_uninstallable_plugin( $plugin ); - if ( ! $plugin_info[ $plugin_file ]['Network'] ) + if ( ! $plugin_info[ $plugin_file ]['Network'] ) { $have_non_network_plugins = true; + } + } + } + + // Add translation files. + if ( ! empty( $plugin_translations[ $plugin_slug ] ) ) { + $translations = $plugin_translations[ $plugin_slug ]; + + foreach ( $translations as $translation => $data ) { + $files_to_delete[] = $plugin_slug . '-' . $translation . '.po'; + $files_to_delete[] = $plugin_slug . '-' . $translation . '.mo'; } } } } - screen_icon(); $plugins_to_delete = count( $plugin_info ); - echo '

' . _n( 'Delete Plugin', 'Delete Plugins', $plugins_to_delete ) . '

'; ?> - -

+ +

+ +

+ +

+ +

+ +

+ +

-