diff -r 346c88efed21 -r 5e2f62d02dcd wp/wp-admin/plugins.php
--- a/wp/wp-admin/plugins.php Mon Jun 08 16:11:51 2015 +0000
+++ b/wp/wp-admin/plugins.php Tue Jun 09 03:35:32 2015 +0200
@@ -23,6 +23,8 @@
// 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 ) {
@@ -60,7 +62,7 @@
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 +71,19 @@
$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 ] );
+ }
}
}
@@ -98,7 +103,7 @@
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,10 +118,10 @@
$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 ) . ' ';
$url = self_admin_url('update.php?action=update-selected&plugins=' . urlencode( join(',', $plugins) ));
@@ -126,7 +131,7 @@
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.'));
@@ -144,12 +149,14 @@
@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 ) {
+ wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $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.'));
@@ -169,7 +176,7 @@
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.'));
@@ -200,10 +207,11 @@
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,40 +240,63 @@
$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 ) . ' ';
?>
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
';
+ foreach ( (array) $plugins as $plugin ) {
+ echo ' ';
+ }
?>
-
@@ -305,8 +340,9 @@
' . esc_html(str_replace(WP_PLUGIN_DIR, '', $file)) . '';
+ foreach ( (array) $files_to_delete as $file ) {
+ echo '' . esc_html( str_replace( WP_PLUGIN_DIR, '', $file ) ) . ' ';
+ }
?>
@@ -320,7 +356,7 @@
set_transient('plugins_delete_result_' . $user_ID, $delete_result); //Store the result in a cache rather than a URL param due to object type & length
wp_redirect( self_admin_url("plugins.php?deleted=true&plugin_status=$status&paged=$page&s=$s") );
exit;
- break;
+
case 'clear-recent-list':
if ( ! is_network_admin() )
update_option( 'recently_activated', array() );
@@ -333,14 +369,14 @@
wp_enqueue_script('plugin-install');
add_thickbox();
-add_screen_option( 'per_page', array('label' => _x( 'Plugins', 'plugins per page (screen options)' ), 'default' => 999 ) );
+add_screen_option( 'per_page', array( 'default' => 999 ) );
get_current_screen()->add_help_tab( array(
'id' => 'overview',
'title' => __('Overview'),
'content' =>
'' . __('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/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/') . '
'
) );
get_current_screen()->add_help_tab( array(
'id' => 'compatibility-problems',
@@ -352,8 +388,8 @@
get_current_screen()->set_help_sidebar(
'' . __('For more information:') . '
' .
- '' . __('Documentation on Managing Plugins ') . '
' .
- '' . __('Support Forums ') . '
'
+ '' . __('Documentation on Managing Plugins ') . '
' .
+ '' . __('Support Forums ') . '
'
);
$title = __('Plugins');
@@ -376,7 +412,7 @@
else
$errmsg = __('Plugin could not be activated because it triggered a fatal error .');
?>
-
+
-
get_error_message() ); ?>
+
get_error_message() ); ?>
-
+
-
+
-
+
-
+
-
+
-
+
-
@@ -415,15 +451,29 @@
printf( '' . __('Search results for “%s”') . ' ', esc_html( $s ) ); ?>
-
+
views(); ?>
-
-