get_error_message() ); $recent = (array)get_option('recently_activated'); if( isset($recent[ $plugin ]) ){ unset($recent[ $plugin ]); update_option('recently_activated', $recent); } wp_redirect('plugins.php?activate=true'); // overrides the ?error=true one above exit; break; case 'activate-selected': check_admin_referer('bulk-manage-plugins'); activate_plugins($_POST['checked'], 'plugins.php?error=true'); $recent = (array)get_option('recently_activated'); foreach( (array)$_POST['checked'] as $plugin => $time) { if( isset($recent[ $plugin ]) ) unset($recent[ $plugin ]); } if( $recent != get_option('recently_activated') ) //If array changed, update it. update_option('recently_activated', $recent); wp_redirect('plugins.php?activate-multi=true'); exit; break; case 'error_scrape': check_admin_referer('plugin-activation-error_' . $plugin); $valid = validate_plugin($plugin); if ( is_wp_error($valid) ) wp_die($valid); error_reporting( E_ALL ^ E_NOTICE ); @ini_set('display_errors', true); //Ensure that Fatal errors are displayed. include(WP_PLUGIN_DIR . '/' . $plugin); exit; break; case 'deactivate': check_admin_referer('deactivate-plugin_' . $plugin); deactivate_plugins($plugin); update_option('recently_activated', array($plugin => time()) + (array)get_option('recently_activated')); wp_redirect('plugins.php?deactivate=true'); exit; break; case 'deactivate-selected': check_admin_referer('bulk-manage-plugins'); deactivate_plugins($_POST['checked']); $deactivated = array(); foreach( (array)$_POST['checked'] as $plugin ) $deactivated[ $plugin ] = time(); update_option('recently_activated', $deactivated + (array)get_option('recently_activated')); wp_redirect('plugins.php?deactivate-multi=true'); exit; break; case 'delete-selected': if( ! current_user_can('delete_plugins') ) wp_die(__('You do not have sufficient permissions to delete plugins for this blog.')); 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'); $title = __('Delete Plugin'); $parent_file = 'plugins.php'; if( ! isset($_REQUEST['verify-delete']) ) { wp_enqueue_script('jquery'); require_once('admin-header.php'); ?>

'; ?>

$error) echo '

' . sprintf(__('The plugin %s has been deactivated due to an error: %s'), wp_specialchars($plugin_file), $error->get_error_message()) . '

'; ?>

fatal error.') ?>

get_error_message() ); ?>

deleted.'); ?>

activated.') ?>

activated.'); ?>

deactivated.') ?>

deactivated.'); ?>

$time ) if( $time + (7*24*60*60) < time() ) //1 week unset($recently_activated[ $key ]); if( $recently_activated != get_option('recently_activated') ) //If array changed, update it. update_option('recently_activated', $recently_activated); $plugins_allowedtags = array('a' => array('href' => array(),'title' => array()),'abbr' => array('title' => array()),'acronym' => array('title' => array()),'code' => array(),'em' => array(),'strong' => array()); foreach( (array)$all_plugins as $plugin_file => $plugin_data) { //Translate fields if( !empty($plugin_data['TextDomain']) ) { if( !empty( $plugin_data['DomainPath'] ) ) load_plugin_textdomain($plugin_data['TextDomain'], dirname($plugin_file). $plugin_data['DomainPath']); else load_plugin_textdomain($plugin_data['TextDomain'], dirname($plugin_file)); foreach ( array('Name', 'PluginURI', 'Description', 'Author', 'AuthorURI', 'Version') as $field ) $plugin_data[ $field ] = translate($plugin_data[ $field ], $plugin_data['TextDomain']); } //Apply Markup $plugin_data['Title'] = $plugin_data['Name']; if ( !empty($plugin_data['PluginURI']) && !empty($plugin_data['Name']) ) $plugin_data['Title'] = '' . $plugin_data['Name'] . ''; if ( ! empty($plugin_data['AuthorURI']) ) $plugin_data['Author'] = '' . $plugin_data['Author'] . ''; $plugin_data['Description'] = wptexturize( $plugin_data['Description'] ); // Sanitize all displayed data $plugin_data['Title'] = wp_kses($plugin_data['Title'], $plugins_allowedtags); $plugin_data['Version'] = wp_kses($plugin_data['Version'], $plugins_allowedtags); $plugin_data['Description'] = wp_kses($plugin_data['Description'], $plugins_allowedtags); $plugin_data['Author'] = wp_kses($plugin_data['Author'], $plugins_allowedtags); if( ! empty($plugin_data['Author']) ) $plugin_data['Description'] .= ' ' . sprintf( __('By %s'), $plugin_data['Author'] ) . '.'; //Filter into individual sections if ( is_plugin_active($plugin_file) ) { $active_plugins[ $plugin_file ] = $plugin_data; } else { if ( isset( $recently_activated[ $plugin_file ] ) ) //Was the plugin recently activated? $recent_plugins[ $plugin_file ] = $plugin_data; else $inactive_plugins[ $plugin_file ] = $plugin_data; } } ?> '; } foreach( (array)$plugins as $plugin_file => $plugin_data) { $action_links = array(); if( 'active' == $context ) $action_links[] = '' . __('Deactivate') . ''; else //Inactive or Recently deactivated $action_links[] = '' . __('Activate') . ''; if ( current_user_can('edit_plugins') && is_writable(WP_PLUGIN_DIR . '/' . $plugin_file) ) $action_links[] = '' . __('Edit') . ''; $action_links = apply_filters('plugin_action_links', $action_links, $plugin_file, $plugin_data, $context); echo " '; do_action( 'after_plugin_row', $plugin_file, $plugin_data, $context ); } ?>
' . __('No plugins to show') . '
{$plugin_data['Title']} {$plugin_data['Version']}

{$plugin_data['Description']}


%s directory and it will be automatically deactivated.'), WP_PLUGIN_DIR); ?>



Plugin Browser/Installer functionality, Or by browsing the WordPress Plugin Directory directly and installing manually.'); ?>

manually install a plugin you generally just need to upload the plugin file into your %s directory.'), WP_PLUGIN_DIR); ?>