2004-03-25 08:05:52 +01:00
< ? php
2004-10-19 05:03:06 +02:00
require_once ( 'admin.php' );
2004-03-25 08:05:52 +01:00
2004-08-09 09:17:54 +02:00
if ( isset ( $_GET [ 'action' ]) ) {
2004-03-25 22:04:36 +01:00
if ( 'activate' == $_GET [ 'action' ]) {
2006-05-27 01:08:05 +02:00
check_admin_referer ( 'activate-plugin_' . $_GET [ 'plugin' ]);
2006-08-30 23:46:31 +02:00
$current = get_option ( 'active_plugins' );
2004-09-26 20:12:12 +02:00
if ( ! in_array ( $_GET [ 'plugin' ], $current )) {
$current [] = trim ( $_GET [ 'plugin' ] );
2005-07-04 23:53:26 +02:00
sort ( $current );
update_option ( 'active_plugins' , $current );
2006-09-21 22:46:39 +02:00
include ( ABSPATH . PLUGINDIR . '/' . trim ( $_GET [ 'plugin' ] ));
2005-07-04 23:53:26 +02:00
do_action ( 'activate_' . trim ( $_GET [ 'plugin' ] ));
2004-09-26 20:12:12 +02:00
}
2006-06-27 07:38:56 +02:00
wp_redirect ( 'plugins.php?activate=true' );
2005-07-04 23:53:26 +02:00
} else if ( 'deactivate' == $_GET [ 'action' ]) {
2006-05-27 01:08:05 +02:00
check_admin_referer ( 'deactivate-plugin_' . $_GET [ 'plugin' ]);
2006-08-30 23:46:31 +02:00
$current = get_option ( 'active_plugins' );
2004-08-09 09:17:54 +02:00
array_splice ( $current , array_search ( $_GET [ 'plugin' ], $current ), 1 ); // Array-fu!
update_option ( 'active_plugins' , $current );
2005-07-04 23:53:26 +02:00
do_action ( 'deactivate_' . trim ( $_GET [ 'plugin' ] ));
2006-06-27 07:38:56 +02:00
wp_redirect ( 'plugins.php?deactivate=true' );
2004-03-25 22:04:36 +01:00
}
2005-12-28 01:16:40 +01:00
exit ;
2004-03-25 22:04:36 +01:00
}
2004-04-26 01:10:07 +02:00
$title = __ ( 'Manage Plugins' );
2004-03-25 08:05:52 +01:00
require_once ( 'admin-header.php' );
2004-03-25 09:10:26 +01:00
// Clean up options
2004-08-09 09:17:54 +02:00
// If any plugins don't exist, axe 'em
2004-03-25 09:10:26 +01:00
2006-08-30 23:46:31 +02:00
$check_plugins = get_option ( 'active_plugins' );
2005-04-04 04:48:18 +02:00
// Sanity check. If the active plugin list is not an array, make it an
// empty array.
if ( ! is_array ( $check_plugins ) ) {
$check_plugins = array ();
2006-02-12 08:53:23 +01:00
update_option ( 'active_plugins' , $check_plugins );
2005-04-04 04:48:18 +02:00
}
// If a plugin file does not exist, remove it from the list of active
// plugins.
2004-03-25 09:10:26 +01:00
foreach ( $check_plugins as $check_plugin ) {
2006-09-21 22:46:39 +02:00
if ( ! file_exists ( ABSPATH . PLUGINDIR . '/' . $check_plugin )) {
2006-08-30 23:46:31 +02:00
$current = get_option ( 'active_plugins' );
2005-10-06 01:19:48 +02:00
$key = array_search ( $check_plugin , $current );
if ( false !== $key && NULL !== $key ) {
unset ( $current [ $key ]);
update_option ( 'active_plugins' , $current );
}
2004-03-25 09:10:26 +01:00
}
}
2004-03-25 08:05:52 +01:00
?>
2004-04-14 21:04:14 +02:00
2004-05-08 01:56:33 +02:00
< ? php if ( isset ( $_GET [ 'activate' ])) : ?>
2005-08-08 03:13:22 +02:00
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'Plugin <strong>activated</strong>.' ) ?> </p>
2004-04-14 21:04:14 +02:00
</ div >
< ? php endif ; ?>
2004-05-08 01:56:33 +02:00
< ? php if ( isset ( $_GET [ 'deactivate' ])) : ?>
2005-08-08 03:13:22 +02:00
< div id = " message " class = " updated fade " >< p >< ? php _e ( 'Plugin <strong>deactivated</strong>.' ) ?> </p>
2004-04-14 21:04:14 +02:00
</ div >
< ? php endif ; ?>
2004-03-25 08:05:52 +01:00
< div class = " wrap " >
2004-04-24 21:46:11 +02:00
< h2 >< ? php _e ( 'Plugin Management' ); ?> </h2>
2005-08-07 12:45:06 +02: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 08:05:52 +01:00
< ? php
2006-08-30 23:46:31 +02:00
if ( get_option ( 'active_plugins' ) )
$current_plugins = get_option ( 'active_plugins' );
2004-03-25 08:05:52 +01:00
2004-11-26 03:29:45 +01:00
$plugins = get_plugins ();
if ( empty ( $plugins )) {
2005-12-12 23:48:30 +01:00
echo '<p>' ;
_e ( " Couldn't open plugins directory or there are no plugins available. " ); // TODO: make more helpful
echo '</p>' ;
2004-03-25 08:05:52 +01:00
} else {
?>
2006-05-10 22:35:10 +02:00
< table class = " widefat " >
< thead >
2004-03-25 08:05:52 +01:00
< tr >
2006-09-27 02:51:17 +02:00
< th >< ? php _e ( 'Plugin' ); ?> </th>
< th style = " text-align: center " >< ? php _e ( 'Version' ); ?> </th>
< th >< ? php _e ( 'Description' ); ?> </th>
< th style = " text-align: center " >< ? php _e ( 'Action' ); ?> </th>
2004-03-25 08:05:52 +01:00
</ tr >
2006-05-10 22:35:10 +02:00
</ thead >
2004-03-25 08:05:52 +01:00
< ? php
2004-05-08 01:56:33 +02:00
$style = '' ;
2006-01-24 08:48:21 +01:00
function sort_plugins ( $plug1 , $plug2 ) {
return strnatcasecmp ( $plug1 [ 'Name' ], $plug2 [ 'Name' ]);
}
2006-02-12 08:53:23 +01:00
2006-01-24 10:44:17 +01:00
uksort ( $plugins , 'sort_plugins' );
2006-01-24 08:48:21 +01:00
2004-11-26 03:29:45 +01:00
foreach ( $plugins as $plugin_file => $plugin_data ) {
2005-03-11 17:53:16 +01:00
$style = ( 'class="alternate"' == $style || 'class="alternate active"' == $style ) ? '' : 'alternate' ;
2004-03-25 09:10:26 +01:00
if ( ! empty ( $current_plugins ) && in_array ( $plugin_file , $current_plugins )) {
2006-05-27 01:08:05 +02:00
$action = " <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 21:20:29 +01:00
$plugin_data [ 'Title' ] = " <strong> { $plugin_data [ 'Title' ] } </strong> " ;
2005-03-11 17:53:16 +01:00
$style .= $style == 'alternate' ? ' active' : 'active' ;
2004-03-25 09:10:26 +01:00
} else {
2006-05-27 01:08:05 +02:00
$action = " <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 09:10:26 +01:00
}
2004-12-16 00:09:46 +01:00
$plugin_data [ 'Description' ] = wp_kses ( $plugin_data [ 'Description' ], array ( 'a' => array ( 'href' => array (), 'title' => array ()), 'abbr' => array ( 'title' => array ()), 'acronym' => array ( 'title' => array ()), 'code' => array (), 'em' => array (), 'strong' => array ()) ); ;
2005-03-11 17:53:16 +01:00
if ( $style != '' ) $style = 'class="' . $style . '"' ;
2004-03-25 08:05:52 +01:00
echo "
< tr $style >
2005-08-07 12:45:06 +02:00
< td class = 'name' > { $plugin_data [ 'Title' ]} </ td >
< td class = 'vers' > { $plugin_data [ 'Version' ]} </ td >
2005-12-12 23:48:30 +01:00
< td class = 'desc' > { $plugin_data [ 'Description' ]} < cite > " .sprintf(__('By %s'), $plugin_data['Author'] ). " .</ cite ></ td >
2005-08-07 12:45:06 +02:00
< td class = 'togl' > $action </ td >
2004-03-25 08:05:52 +01:00
</ tr > " ;
}
?>
</ table >
< ? php
}
?>
2005-05-09 13:37:36 +02:00
2006-09-21 22:46:39 +02:00
< p >< ? php _e ( sprintf ( '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 12:45:06 +02:00
2005-05-09 13:37:36 +02:00
< h2 >< ? php _e ( 'Get More Plugins' ); ?> </h2>
2006-09-21 22:46:39 +02:00
< p >< ? php _e ( sprintf ( 'You can find additional plugins for your site in the <a href="http://wordpress.org/extend/plugins/">WordPress plugin directory</a>. 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 13:37:36 +02:00
2004-03-25 08:05:52 +01:00
</ div >
< ? php
include ( 'admin-footer.php' );
2004-11-29 18:28:53 +01:00
?>