2004-03-25 02:05:52 -05:00
< ? php
2004-10-18 23:03:06 -04:00
require_once ( 'admin.php' );
2004-03-25 02:05:52 -05:00
2004-08-09 03:17:54 -04:00
if ( isset ( $_GET [ 'action' ]) ) {
2008-01-09 04:37:27 -05:00
if ( 'activate' == $_GET [ 'action' ] ) {
2006-05-26 19:08:05 -04:00
check_admin_referer ( 'activate-plugin_' . $_GET [ 'plugin' ]);
2008-01-09 04:37:27 -05:00
$result = activate_plugin ( $_GET [ 'plugin' ], 'plugins.php?error=true&plugin=' . $plugin );
if ( is_wp_error ( $result ) )
2007-10-17 13:14:58 -04:00
wp_die ( $result -> get_error_message () );
2007-01-25 15:45:20 -05:00
wp_redirect ( 'plugins.php?activate=true' ); // overrides the ?error=true one above
2008-01-09 04:37:27 -05:00
} elseif ( 'error_scrape' == $_GET [ 'action' ] ) {
2007-06-25 14:57:54 -04:00
$plugin = trim ( $_GET [ 'plugin' ]);
check_admin_referer ( 'plugin-activation-error_' . $plugin );
2008-01-09 04:37:27 -05:00
$valid = validate_plugin ( $plugin );
if ( is_wp_error ( $valid ) )
wp_die ( $valid );
2007-06-25 14:57:54 -04:00
include ( ABSPATH . PLUGINDIR . '/' . $plugin );
2008-01-09 04:37:27 -05:00
} elseif ( 'deactivate' == $_GET [ 'action' ] ) {
2006-05-26 19:08:05 -04:00
check_admin_referer ( 'deactivate-plugin_' . $_GET [ 'plugin' ]);
2007-10-17 13:14:58 -04:00
deactivate_plugins ( $_GET [ 'plugin' ]);
2006-06-27 01:38:56 -04:00
wp_redirect ( 'plugins.php?deactivate=true' );
2008-01-09 04:37:27 -05:00
} elseif ( 'deactivate-all' == $_GET [ 'action' ] ) {
2007-03-31 16:56:54 -04:00
check_admin_referer ( 'deactivate-all' );
2007-10-17 13:14:58 -04:00
deactivate_all_plugins ();
2007-03-31 16:56:54 -04:00
wp_redirect ( 'plugins.php?deactivate-all=true' );
2008-01-09 04:37:27 -05:00
} elseif ( 'reactivate-all' == $_GET [ 'action' ]) {
check_admin_referer ( 'reactivate-all' );
reactivate_all_plugins ( 'plugins.php?errors=true' );
wp_redirect ( 'plugins.php?reactivate-all=true' ); // overrides the ?error=true one above
2004-03-25 16:04:36 -05:00
}
2008-01-09 04:37:27 -05:00
2005-12-27 19:16:40 -05:00
exit ;
2004-03-25 16:04:36 -05:00
}
2006-11-18 02:31:29 -05:00
$title = __ ( 'Manage Plugins' );
2004-03-25 02:05:52 -05:00
require_once ( 'admin-header.php' );
2008-01-09 04:37:27 -05:00
validate_active_plugins ();
2005-04-03 22:48:18 -04:00
2004-03-25 02:05:52 -05:00
?>
2004-04-14 15:04:14 -04:00
2007-01-25 15:45:20 -05:00
< ? php if ( isset ( $_GET [ 'error' ]) ) : ?>
2007-06-25 14:57:54 -04:00
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'Plugin could not be activated because it triggered a <strong>fatal error</strong>.' ) ?> </p>
< ? php
$plugin = trim ( $_GET [ 'plugin' ]);
if ( wp_verify_nonce ( $_GET [ '_error_nonce' ], 'plugin-activation-error_' . $plugin ) && 1 == strtolower ( ini_get ( 'display_errors' ))) { ?>
< iframe style = " border:0 " width = " 100% " height = " 70px " src = " <?php bloginfo('wpurl'); ?>/wp-admin/plugins.php?action=error_scrape&plugin=<?php echo attribute_escape( $plugin ); ?>&_wpnonce=<?php echo attribute_escape( $_GET['_error_nonce'] ); ?> " ></ iframe >
< ? php
}
?>
</ div >
2008-01-09 04:37:27 -05:00
< ? php elseif ( isset ( $_GET [ 'errors' ]) ) : ?>
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'Some plugins could not be reactivated because they triggered a <strong>fatal error</strong>.' ) ?> </p></div>
2007-01-25 15:45:20 -05:00
< ? php elseif ( isset ( $_GET [ 'activate' ]) ) : ?>
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'Plugin <strong>activated</strong>.' ) ?> </p></div>
< ? php elseif ( isset ( $_GET [ 'deactivate' ]) ) : ?>
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'Plugin <strong>deactivated</strong>.' ) ?> </p></div>
2007-03-31 16:56:54 -04:00
< ? php elseif ( isset ( $_GET [ 'deactivate-all' ])) : ?>
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'All plugins <strong>deactivated</strong>.' ); ?> </p></div>
2008-01-09 04:37:27 -05:00
< ? php elseif ( isset ( $_GET [ 'reactivate-all' ])) : ?>
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'All plugins <strong>reactivated</strong>.' ); ?> </p></div>
2004-04-14 15:04:14 -04:00
< ? php endif ; ?>
2004-03-25 02:05:52 -05:00
< div class = " wrap " >
2004-04-24 15:46:11 -04:00
< h2 >< ? php _e ( 'Plugin Management' ); ?> </h2>
2005-08-07 06:45:06 -04:00
< p >< ? php _e ( 'Plugins extend and expand the functionality of WordPress. Once a plugin is installed, you may activate it or deactivate it here.' ); ?> </p>
2004-03-25 02:05:52 -05:00
< ? php
2006-08-30 17:46:31 -04:00
if ( get_option ( 'active_plugins' ) )
$current_plugins = get_option ( 'active_plugins' );
2004-03-25 02:05:52 -05:00
2004-11-25 21:29:45 -05:00
$plugins = get_plugins ();
if ( empty ( $plugins )) {
2005-12-12 17:48:30 -05:00
echo '<p>' ;
2006-12-26 19:51:00 -05:00
_e ( " Couldn’t open plugins directory or there are no plugins available. " ); // TODO: make more helpful
2005-12-12 17:48:30 -05:00
echo '</p>' ;
2004-03-25 02:05:52 -05:00
} else {
?>
2006-10-05 21:14:47 -04:00
< table class = " widefat plugins " >
2006-05-10 16:35:10 -04:00
< thead >
2004-03-25 02:05:52 -05:00
< tr >
2006-09-26 20:51:17 -04:00
< th >< ? php _e ( 'Plugin' ); ?> </th>
< th style = " text-align: center " >< ? php _e ( 'Version' ); ?> </th>
< th >< ? php _e ( 'Description' ); ?> </th>
2006-10-04 02:48:52 -04:00
< th style = " text-align: center " < ? php if ( current_user_can ( 'edit_plugins' ) ) echo ' colspan="2"' ; ?> ><?php _e('Action'); ?></th>
2004-03-25 02:05:52 -05:00
</ tr >
2006-05-10 16:35:10 -04:00
</ thead >
2004-03-25 02:05:52 -05:00
< ? php
2004-05-07 19:56:33 -04:00
$style = '' ;
2006-01-24 02:48:21 -05:00
2004-11-25 21:29:45 -05:00
foreach ( $plugins as $plugin_file => $plugin_data ) {
2005-03-11 11:53:16 -05:00
$style = ( 'class="alternate"' == $style || 'class="alternate active"' == $style ) ? '' : 'alternate' ;
2004-03-25 03:10:26 -05:00
if ( ! empty ( $current_plugins ) && in_array ( $plugin_file , $current_plugins )) {
2006-10-04 02:48:52 -04:00
$toggle = " <a href=' " . wp_nonce_url ( " plugins.php?action=deactivate&plugin= $plugin_file " , 'deactivate-plugin_' . $plugin_file ) . " ' title=' " . __ ( 'Deactivate this plugin' ) . " ' class='delete'> " . __ ( 'Deactivate' ) . " </a> " ;
2005-01-14 15:20:29 -05:00
$plugin_data [ 'Title' ] = " <strong> { $plugin_data [ 'Title' ] } </strong> " ;
2005-03-11 11:53:16 -05:00
$style .= $style == 'alternate' ? ' active' : 'active' ;
2004-03-25 03:10:26 -05:00
} else {
2006-10-04 02:48:52 -04:00
$toggle = " <a href=' " . wp_nonce_url ( " plugins.php?action=activate&plugin= $plugin_file " , 'activate-plugin_' . $plugin_file ) . " ' title=' " . __ ( 'Activate this plugin' ) . " ' class='edit'> " . __ ( 'Activate' ) . " </a> " ;
2004-03-25 03:10:26 -05:00
}
2006-11-29 04:22:49 -05:00
$plugins_allowedtags = array ( 'a' => array ( 'href' => array (), 'title' => array ()), 'abbr' => array ( 'title' => array ()), 'acronym' => array ( 'title' => array ()), 'code' => array (), 'em' => array (), 'strong' => array ());
// 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 );
2006-10-04 02:48:52 -04:00
if ( $style != '' )
$style = 'class="' . $style . '"' ;
2007-03-06 12:47:27 -05:00
if ( is_writable ( ABSPATH . PLUGINDIR . '/' . $plugin_file ) )
2006-10-04 02:48:52 -04:00
$edit = " <a href='plugin-editor.php?file= $plugin_file ' title=' " . __ ( 'Open this file in the Plugin Editor' ) . " ' class='edit'> " . __ ( 'Edit' ) . " </a> " ;
else
$edit = '' ;
2007-09-07 14:53:56 -04:00
$author = ( empty ( $plugin_data [ 'Author' ]) ) ? '' : ' <cite>' . sprintf ( __ ( 'By %s' ), $plugin_data [ 'Author' ] ) . '.</cite>' ;
2004-03-25 02:05:52 -05:00
echo "
< tr $style >
2005-08-07 06:45:06 -04:00
< td class = 'name' > { $plugin_data [ 'Title' ]} </ td >
< td class = 'vers' > { $plugin_data [ 'Version' ]} </ td >
2007-09-07 14:53:56 -04:00
< td class = 'desc' >< p > { $plugin_data [ 'Description' ]} $author </ p ></ td >
2006-10-04 02:48:52 -04:00
< td class = 'togl' > $toggle </ td > " ;
if ( current_user_can ( 'edit_plugins' ) )
echo "
< td > $edit </ td > " ;
echo "
2004-03-25 02:05:52 -05:00
</ tr > " ;
2007-08-22 06:48:48 -04:00
do_action ( 'after_plugin_row' , $plugin_file );
2004-03-25 02:05:52 -05:00
}
?>
2007-03-31 16:56:54 -04:00
< tr >
2007-04-07 12:03:38 -04:00
< td colspan = " 3 " >& nbsp ; </ td >
2008-01-09 04:37:27 -05:00
< td colspan = " 2 " style = " width:12em; " >
< ? php
$active = get_option ( 'active_plugins' );
$inactive = get_option ( 'deactivated_plugins' );
if ( ! empty ( $active ) ) {
?>
< a href = " <?php echo wp_nonce_url('plugins.php?action=deactivate-all', 'deactivate-all'); ?> " class = " delete " >< ? php _e ( 'Deactivate All Plugins' ); ?> </a>
< ? php
} elseif ( empty ( $active ) && ! empty ( $inactive ) ) {
?>
< a href = " <?php echo wp_nonce_url('plugins.php?action=reactivate-all', 'reactivate-all'); ?> " class = " delete " >< ? php _e ( 'Reactivate All Plugins' ); ?> </a>
< ? php
} // endif active/inactive plugin check
?>
2007-03-31 16:56:54 -04:00
</ tr >
2004-03-25 02:05:52 -05:00
</ table >
< ? php
}
?>
2005-05-09 07:37:36 -04:00
2006-12-13 14:36:10 -05:00
< p >< ? php printf ( __ ( 'If something goes wrong with a plugin and you can’t use WordPress, delete or rename that file in the <code>%s</code> directory and it will be automatically deactivated.' ), PLUGINDIR ); ?> </p>
2005-08-07 06:45:06 -04:00
2005-05-09 07:37:36 -04:00
< h2 >< ? php _e ( 'Get More Plugins' ); ?> </h2>
2006-10-05 21:14:47 -04:00
< 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>
2006-12-13 14:36:10 -05:00
< p >< ? php printf ( __ ( 'To install a plugin you generally just need to upload the plugin file into your <code>%s</code> directory. Once a plugin is uploaded, you may activate it here.' ), PLUGINDIR ); ?> </p>
2005-05-09 07:37:36 -04:00
2004-03-25 02:05:52 -05:00
</ div >
< ? php
include ( 'admin-footer.php' );
2004-11-29 12:28:53 -05:00
?>