Include only valid plugins. Props guillep2k, fixes #6871

git-svn-id: http://svn.automattic.com/wordpress/trunk@8495 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
azaozz
2008-07-29 23:10:12 +00:00
parent 7add050b10
commit 80c409458f
3 changed files with 10 additions and 3 deletions

View File

@@ -304,14 +304,19 @@ function validate_active_plugins() {
return;
}
//Invalid is any plugin that is deactivated due to error.
$invalid = array();
// If a plugin file does not exist, remove it from the list of active
// plugins.
foreach ( $check_plugins as $check_plugin ) {
$result = validate_plugin($check_plugin);
if ( is_wp_error( $result ) ) {
$invalid[$check_plugin] = $result;
deactivate_plugins( $check_plugin, true);
}
}
return $invalid;
}
function validate_plugin($plugin) {

View File

@@ -165,8 +165,10 @@ wp_enqueue_script('admin-forms');
$title = __('Manage Plugins');
require_once('admin-header.php');
validate_active_plugins();
$invalid = validate_active_plugins();
if( !empty($invalid) )
foreach($invalid as $plugin_file => $error)
echo '<div id="message" class="error"><p>' . sprintf(__('The plugin <code>%s</code> has been <strong>deactivated</strong> due to <em>"%s"</em>.'), $plugin_file, $error->get_error_message()) . '</p></div>';
?>
<?php if ( isset($_GET['error']) ) : ?>