X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/8f374b7233bc2815ccc387e448d208c5434eb961..fa6ee2c363cdfdebcb4b76e4d9c4347a4cb19065:/wp-admin/plugins.php?ds=sidebyside diff --git a/wp-admin/plugins.php b/wp-admin/plugins.php index 1acad9cf..afc83bb4 100644 --- a/wp-admin/plugins.php +++ b/wp-admin/plugins.php @@ -7,16 +7,9 @@ */ /** WordPress Administration Bootstrap */ -require_once('./admin.php'); +require_once( dirname( __FILE__ ) . '/admin.php' ); -if ( is_multisite() ) { - $menu_perms = get_site_option( 'menu_items', array() ); - - if ( empty( $menu_perms['plugins'] ) && ! current_user_can( 'manage_network_plugins' ) ) - wp_die( __( 'Cheatin’ uh?' ) ); -} - -if ( !current_user_can('activate_plugins') ) +if ( ! current_user_can('activate_plugins') ) wp_die( __( 'You do not have sufficient permissions to manage plugins for this site.' ) ); $wp_list_table = _get_list_table('WP_Plugins_List_Table'); @@ -37,6 +30,11 @@ if ( $action ) { if ( ! current_user_can('activate_plugins') ) wp_die(__('You do not have sufficient permissions to activate plugins for this site.')); + if ( is_multisite() && ! is_network_admin() && is_network_only_plugin( $plugin ) ) { + wp_redirect( self_admin_url("plugins.php?plugin_status=$status&paged=$page&s=$s") ); + exit; + } + check_admin_referer('activate-plugin_' . $plugin); $result = activate_plugin($plugin, self_admin_url('plugins.php?error=true&plugin=' . $plugin), is_network_admin() ); @@ -62,7 +60,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.')); @@ -71,11 +69,21 @@ if ( $action ) { $plugins = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array(); - // Only activate plugins which are not already active. - $check = is_network_admin() ? 'is_plugin_active_for_network' : 'is_plugin_active'; - foreach ( $plugins as $i => $plugin ) - if ( $check( $plugin ) ) - unset( $plugins[ $i ] ); + if ( is_network_admin() ) { + foreach ( $plugins as $i => $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 ) { + // 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 ] ); + } + } + } if ( empty($plugins) ) { wp_redirect( self_admin_url("plugins.php?plugin_status=$status&paged=$page&s=$s") ); @@ -93,7 +101,7 @@ if ( $action ) { 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' ); @@ -108,10 +116,10 @@ if ( $action ) { $title = __( 'Update Plugins' ); $parent_file = 'plugins.php'; + wp_enqueue_script( 'updates' ); require_once(ABSPATH . 'wp-admin/admin-header.php'); echo '
' . __('Plugins extend and expand the functionality of WordPress. Once a plugin is installed, you may activate it or deactivate it here.') . '
' . - '' . sprintf(__('You can find additional plugins for your site by using the Plugin Browser/Installer functionality or by browsing the WordPress Plugin Directory directly and installing new plugins manually. To manually install a plugin you generally just need to upload the plugin file into your /wp-content/plugins
directory. Once a plugin has been installed, you can activate it here.'), 'plugin-install.php', 'http://wordpress.org/extend/plugins/') . '
' . sprintf(__('You can find additional plugins for your site by using the Plugin Browser/Installer functionality or by browsing the WordPress Plugin Directory directly and installing new plugins manually. To manually install a plugin you generally just need to upload the plugin file into your /wp-content/plugins
directory. Once a plugin has been installed, you can activate it here.'), 'plugin-install.php', 'https://wordpress.org/plugins/') . '
' . __('For more information:') . '
' . '' . __('Documentation on Managing Plugins') . '
' . - '' . __('Support Forums') . '
' + '' . __('Support Forums') . '
' ); $title = __('Plugins'); @@ -371,7 +399,7 @@ if ( !empty($invalid) ) else $errmsg = __('Plugin could not be activated because it triggered a fatal error.'); ?> -