Delete plugin confirmation from DD32. see #7091
git-svn-id: http://svn.automattic.com/wordpress/trunk@8095 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
84a93d7c65
commit
22e486c4f8
|
@ -41,6 +41,34 @@ function get_real_file_to_edit( $file ) {
|
||||||
|
|
||||||
return $real_file;
|
return $real_file;
|
||||||
}
|
}
|
||||||
|
//$folder = Full path to folder
|
||||||
|
//$levels = Levels of folders to follow, Default: 100 (PHP Loop limit)
|
||||||
|
function list_files( $folder = '', $levels = 100 ) {
|
||||||
|
if( empty($folder) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if( ! $levels )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$files = array();
|
||||||
|
if ( $dir = @opendir( $folder ) ) {
|
||||||
|
while (($file = readdir( $dir ) ) !== false ) {
|
||||||
|
if ( in_array($file, array('.', '..') ) )
|
||||||
|
continue;
|
||||||
|
if ( is_dir( $folder . '/' . $file ) ) {
|
||||||
|
$files2 = list_files( $folder . '/' . $file, $levels - 1);
|
||||||
|
if( $files2 )
|
||||||
|
$files = array_merge($files, $files2 );
|
||||||
|
else
|
||||||
|
$files[] = $folder . '/' . $file . '/';
|
||||||
|
} else {
|
||||||
|
$files[] = $folder . '/' . $file;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@closedir( $dir );
|
||||||
|
return $files;
|
||||||
|
}
|
||||||
|
|
||||||
function get_temp_dir() {
|
function get_temp_dir() {
|
||||||
if ( defined('WP_TEMP_DIR') )
|
if ( defined('WP_TEMP_DIR') )
|
||||||
|
|
|
@ -136,7 +136,6 @@ function deactivate_plugins($plugins, $silent= false) {
|
||||||
update_option('active_plugins', $current);
|
update_option('active_plugins', $current);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Replaces reactivate_all_plugins() / deactivate_all_plugins() = 'deactivated_plugins' is now useless
|
|
||||||
function activate_plugins($plugins, $redirect = '') {
|
function activate_plugins($plugins, $redirect = '') {
|
||||||
if ( !is_array($plugins) )
|
if ( !is_array($plugins) )
|
||||||
$plugins = array($plugins);
|
$plugins = array($plugins);
|
||||||
|
@ -167,7 +166,7 @@ function delete_plugins($plugins, $redirect = '' ) {
|
||||||
$checked[] = 'checked[]=' . $plugin;
|
$checked[] = 'checked[]=' . $plugin;
|
||||||
|
|
||||||
ob_start();
|
ob_start();
|
||||||
$url = wp_nonce_url('plugins.php?action=delete-selected&' . implode('&', $checked), 'mass-manage-plugins');
|
$url = wp_nonce_url('plugins.php?action=delete-selected&verify-delete=1&' . implode('&', $checked), 'bulk-manage-plugins');
|
||||||
if ( false === ($credentials = request_filesystem_credentials($url)) ) {
|
if ( false === ($credentials = request_filesystem_credentials($url)) ) {
|
||||||
$data = ob_get_contents();
|
$data = ob_get_contents();
|
||||||
ob_end_clean();
|
ob_end_clean();
|
||||||
|
@ -243,13 +242,9 @@ function validate_active_plugins() {
|
||||||
// If a plugin file does not exist, remove it from the list of active
|
// If a plugin file does not exist, remove it from the list of active
|
||||||
// plugins.
|
// plugins.
|
||||||
foreach ( $check_plugins as $check_plugin ) {
|
foreach ( $check_plugins as $check_plugin ) {
|
||||||
if ( !file_exists(WP_PLUGIN_DIR . '/' . $check_plugin) ) {
|
$result = validate_plugin($check_plugin);
|
||||||
$current = get_option('active_plugins');
|
if ( is_wp_error( $result ) ) {
|
||||||
$key = array_search($check_plugin, $current);
|
deactivate_plugins( $check_plugin, true);
|
||||||
if ( false !== $key && NULL !== $key ) {
|
|
||||||
unset($current[$key]);
|
|
||||||
update_option('active_plugins', $current);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ if( !empty($action) ) {
|
||||||
exit;
|
exit;
|
||||||
break;
|
break;
|
||||||
case 'activate-selected':
|
case 'activate-selected':
|
||||||
check_admin_referer('mass-manage-plugins');
|
check_admin_referer('bulk-manage-plugins');
|
||||||
activate_plugins($_POST['checked'], 'plugins.php?error=true');
|
activate_plugins($_POST['checked'], 'plugins.php?error=true');
|
||||||
|
|
||||||
$recent = (array)get_option('recently_activated');
|
$recent = (array)get_option('recently_activated');
|
||||||
|
@ -62,7 +62,7 @@ if( !empty($action) ) {
|
||||||
exit;
|
exit;
|
||||||
break;
|
break;
|
||||||
case 'deactivate-selected':
|
case 'deactivate-selected':
|
||||||
check_admin_referer('mass-manage-plugins');
|
check_admin_referer('bulk-manage-plugins');
|
||||||
deactivate_plugins($_POST['checked']);
|
deactivate_plugins($_POST['checked']);
|
||||||
$deactivated = array();
|
$deactivated = array();
|
||||||
foreach( (array)$_POST['checked'] as $plugin )
|
foreach( (array)$_POST['checked'] as $plugin )
|
||||||
|
@ -74,20 +74,87 @@ if( !empty($action) ) {
|
||||||
case 'delete-selected':
|
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 blog.'));
|
wp_die(__('You do not have sufficient permissions to delete plugins for this blog.'));
|
||||||
check_admin_referer('mass-manage-plugins');
|
|
||||||
$plugins = $_REQUEST['checked'];
|
check_admin_referer('bulk-manage-plugins');
|
||||||
|
|
||||||
|
$plugins = $_REQUEST['checked']; //$_POST = from the plugin form; $_GET = from the FTP details screen.
|
||||||
include(ABSPATH . 'wp-admin/update.php');
|
include(ABSPATH . 'wp-admin/update.php');
|
||||||
|
|
||||||
$title = __('Delete Plugin');
|
$title = __('Delete Plugin');
|
||||||
$parent_file = 'plugins.php';
|
$parent_file = 'plugins.php';
|
||||||
|
|
||||||
|
if( ! isset($_REQUEST['verify-delete']) ) {
|
||||||
|
wp_enqueue_script('jquery');
|
||||||
|
require_once('admin-header.php');
|
||||||
|
?>
|
||||||
|
<div class="wrap">
|
||||||
|
<h2><?php _e('Delete Plugin(s)'); ?></h2>
|
||||||
|
<?php
|
||||||
|
$files_to_delete = $plugin_info = array();
|
||||||
|
foreach( (array) $plugins as $plugin ) {
|
||||||
|
if( '.' == dirname($plugin) ) {
|
||||||
|
$files_to_delete[] = WP_PLUGIN_DIR . '/' . $plugin;
|
||||||
|
if( $data = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin) )
|
||||||
|
$plugin_info[ $plugin ] = $data;
|
||||||
|
} else {
|
||||||
|
//Locate all the files in that folder:
|
||||||
|
$files = list_files( WP_PLUGIN_DIR . '/' . dirname($plugin) );
|
||||||
|
if( $files ) {
|
||||||
|
$files_to_delete = array_merge($files_to_delete, $files);
|
||||||
|
}
|
||||||
|
//Get plugins list from that folder
|
||||||
|
if ( $folder_plugins = get_plugins( '/' . dirname($plugin)) )
|
||||||
|
$plugin_info = array_merge($plugin_info, $folder_plugins);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<p><?php _e('Deleting the selected plugins will remove the following plugin(s) and their files:'); ?></p>
|
||||||
|
<p>
|
||||||
|
<ul>
|
||||||
|
<?php
|
||||||
|
foreach( $plugin_info as $plugin )
|
||||||
|
echo '<li>', $plugin['Title'], ' ', __('By'), ' ', $plugin['Author'], '</li>';
|
||||||
|
?>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
<p><?php _e('Are you sure you wish to delete these files?') ?></p>
|
||||||
|
<form method="post" action="<?php echo clean_url($_SERVER['REQUEST_URI']); ?>" style="display:inline;">
|
||||||
|
<input type="hidden" name="verify-delete" value="1" />
|
||||||
|
<input type="hidden" name="delete-selected" value="1" />
|
||||||
|
<?php
|
||||||
|
foreach( (array)$plugins as $plugin ) {
|
||||||
|
$plugin = attribute_escape($plugin);
|
||||||
|
echo "<input type='hidden' name='checked[]' value='$plugin' />";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
<?php wp_nonce_field('bulk-manage-plugins') ?>
|
||||||
|
<input type="submit" name="submit" value="<?php _e('Yes, Delete these files') ?>" class="button" />
|
||||||
|
</form>
|
||||||
|
<form method="post" action="<?php echo clean_url(wp_get_referer()); ?>" style="display:inline;">
|
||||||
|
<input type="submit" name="submit" value="<?php _e('No, Return me to the plugin list') ?>" class="button" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<p><a href="#" onclick="jQuery('#files-list').toggle(); return false;"><?php _e('Click to view entire list of files which will be deleted'); ?></a></p>
|
||||||
|
<div id="files-list" style="display:none;">
|
||||||
|
<ul>
|
||||||
|
<?php
|
||||||
|
foreach( (array)$files_to_delete as $file ) {
|
||||||
|
$file = str_replace(ABSPATH, '', $file);
|
||||||
|
echo "<li>$file</li>";
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
require_once('admin-footer.php');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
$delete_result = delete_plugins($plugins);
|
$delete_result = delete_plugins($plugins);
|
||||||
|
|
||||||
wp_cache_delete('plugins', 'plugins');
|
wp_cache_delete('plugins', 'plugins');
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
var_dump("Unknown Action $action");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,7 +291,7 @@ function print_plugins_table($plugins, $context = '') {
|
||||||
|
|
||||||
<h3 id="currently-active"><?php _e('Currently Active Plugins') ?></h3>
|
<h3 id="currently-active"><?php _e('Currently Active Plugins') ?></h3>
|
||||||
<form method="post" action="<?php echo admin_url('plugins.php') ?>">
|
<form method="post" action="<?php echo admin_url('plugins.php') ?>">
|
||||||
<?php wp_nonce_field('mass-manage-plugins') ?>
|
<?php wp_nonce_field('bulk-manage-plugins') ?>
|
||||||
|
|
||||||
<div class="tablenav">
|
<div class="tablenav">
|
||||||
<div class="alignleft">
|
<div class="alignleft">
|
||||||
|
@ -240,7 +307,7 @@ function print_plugins_table($plugins, $context = '') {
|
||||||
<?php if ( ! empty($recent_plugins) ) : ?>
|
<?php if ( ! empty($recent_plugins) ) : ?>
|
||||||
<h3 id="recent-plugins"><?php _e('Recently Active Plugins') ?></h3>
|
<h3 id="recent-plugins"><?php _e('Recently Active Plugins') ?></h3>
|
||||||
<form method="post" action="<?php echo admin_url('plugins.php') ?>">
|
<form method="post" action="<?php echo admin_url('plugins.php') ?>">
|
||||||
<?php wp_nonce_field('mass-manage-plugins') ?>
|
<?php wp_nonce_field('bulk-manage-plugins') ?>
|
||||||
|
|
||||||
<div class="tablenav">
|
<div class="tablenav">
|
||||||
<div class="alignleft">
|
<div class="alignleft">
|
||||||
|
@ -257,8 +324,9 @@ function print_plugins_table($plugins, $context = '') {
|
||||||
|
|
||||||
<h3 id="available-plugins"><?php _e('Available Plugins') ?></h3>
|
<h3 id="available-plugins"><?php _e('Available Plugins') ?></h3>
|
||||||
<form method="post" action="<?php echo admin_url('plugins.php') ?>">
|
<form method="post" action="<?php echo admin_url('plugins.php') ?>">
|
||||||
<?php wp_nonce_field('mass-manage-plugins') ?>
|
<?php wp_nonce_field('bulk-manage-plugins') ?>
|
||||||
|
|
||||||
|
<?php if ( ! empty($available_plugins) ) : ?>
|
||||||
<div class="tablenav">
|
<div class="tablenav">
|
||||||
<div class="alignleft">
|
<div class="alignleft">
|
||||||
<input type="submit" name="activate-selected" value="<?php _e('Activate') ?>" class="button-secondary" />
|
<input type="submit" name="activate-selected" value="<?php _e('Activate') ?>" class="button-secondary" />
|
||||||
|
@ -270,6 +338,7 @@ function print_plugins_table($plugins, $context = '') {
|
||||||
<br class="clear" />
|
<br class="clear" />
|
||||||
<?php print_plugins_table($available_plugins, 'available') ?>
|
<?php print_plugins_table($available_plugins, 'available') ?>
|
||||||
</form>
|
</form>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<h2><?php _e('Get More Plugins'); ?></h2>
|
<h2><?php _e('Get More Plugins'); ?></h2>
|
||||||
<p><?php _e('You can find additional plugins for your site in the <a href="http://wordpress.org/extend/plugins/">WordPress plugin directory</a>.'); ?></p>
|
<p><?php _e('You can find additional plugins for your site in the <a href="http://wordpress.org/extend/plugins/">WordPress plugin directory</a>.'); ?></p>
|
||||||
|
|
Loading…
Reference in New Issue