Allow plugin activation even if plugin generates extra output. Make warning more informative. fixes #13585

git-svn-id: http://svn.automattic.com/wordpress/trunk@15017 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2010-05-28 00:18:00 +00:00
parent 549ec140b9
commit 5d5cb6e483
2 changed files with 7 additions and 8 deletions

View File

@ -482,10 +482,6 @@ function activate_plugin( $plugin, $redirect = '', $network_wide = false) {
wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), $redirect)); // we'll override this later if the plugin can be included without fatal error wp_redirect(add_query_arg('_error_nonce', wp_create_nonce('plugin-activation-error_' . $plugin), $redirect)); // we'll override this later if the plugin can be included without fatal error
ob_start(); ob_start();
include(WP_PLUGIN_DIR . '/' . $plugin); include(WP_PLUGIN_DIR . '/' . $plugin);
if ( ob_get_length() > 0 ) {
$output = ob_get_clean();
return new WP_Error('unexpected_output', __('The plugin generated unexpected output.'), $output);
}
do_action( 'activate_plugin', trim( $plugin) ); do_action( 'activate_plugin', trim( $plugin) );
if ( $network_wide ) { if ( $network_wide ) {
$current[$plugin] = time(); $current[$plugin] = time();
@ -497,6 +493,10 @@ function activate_plugin( $plugin, $redirect = '', $network_wide = false) {
} }
do_action( 'activate_' . trim( $plugin ) ); do_action( 'activate_' . trim( $plugin ) );
do_action( 'activated_plugin', trim( $plugin) ); do_action( 'activated_plugin', trim( $plugin) );
if ( ob_get_length() > 0 ) {
$output = ob_get_clean();
return new WP_Error('unexpected_output', __('The plugin generated unexpected output.'), $output);
}
ob_end_clean(); ob_end_clean();
} }

View File

@ -334,15 +334,14 @@ if ( !empty($invalid) )
<?php if ( isset($_GET['error']) ) : <?php if ( isset($_GET['error']) ) :
if (isset($_GET['charsout'])) if ( isset($_GET['charsout']) )
$errmsg = sprintf(__('Plugin could not be activated because it generated %d characters of <strong>unexpected output</strong>.'), $_GET['charsout']); $errmsg = sprintf(__('The plugin generated %d characters of <strong>unexpected output</strong> during activation. If you notice &#8220;headers already sent&#8221; messages, problems with syndication feeds or other issues, try deactivating or removing this plugin.'), $_GET['charsout']);
else else
$errmsg = __('Plugin could not be activated because it triggered a <strong>fatal error</strong>.'); $errmsg = __('Plugin could not be activated because it triggered a <strong>fatal error</strong>.');
?> ?>
<div id="message" class="updated"><p><?php echo $errmsg; ?></p> <div id="message" class="updated"><p><?php echo $errmsg; ?></p>
<?php <?php
if ( wp_verify_nonce($_GET['_error_nonce'], 'plugin-activation-error_' . $plugin) ) { ?> if ( !isset($_GET['charsout']) && wp_verify_nonce($_GET['_error_nonce'], 'plugin-activation-error_' . $plugin) ) { ?>
<iframe style="border:0" width="100%" height="70px" src="<?php echo admin_url('plugins.php?action=error_scrape&amp;plugin=' . esc_attr($plugin) . '&amp;_wpnonce=' . esc_attr($_GET['_error_nonce'])); ?>"></iframe> <iframe style="border:0" width="100%" height="70px" src="<?php echo admin_url('plugins.php?action=error_scrape&amp;plugin=' . esc_attr($plugin) . '&amp;_wpnonce=' . esc_attr($_GET['_error_nonce'])); ?>"></iframe>
<?php <?php
} }