0 && current_user_can('activate_plugins'))) { add_submenu_page(PC_PLUGINS_HOME, __('Plugins','plugin-commander'), __('Plugins','plugin-commander'), 1, 'Plugins', 'pc_user_plugins_page'); } //$file = substr(__FILE__,strlen(ABSPATH)); //add_menu_page( "Plugin Commander","Plugin Commander", 8, $file); } function pc_user_plugins_page() { pc_handle_plugins_cmd(); ?>

even plugins that are not under user control in Site Admin -> Plugin Commander.
Plugins that are under user control are marked in grey.', 'plugin-commander'); ?>
$p) { $user_controls = in_array($file, $user_control); if (!is_site_admin() && !$user_controls) continue; $bg = $user_controls ? "#eeeeee" : "#ffffff"; ?> "; } function pc_page() { if (!is_site_admin()) return; pc_handle_command(); ?>

.

.

.

.

: .

: .


this does not effect existing blogs.', 'plugin-commander'); ?>


Manage->Plugins menu.
This menu will only appear if there is at least one plugin with user control enabled.
Note: if you want to use this, be sure to disable the built-in plugins menu from Site Admin->Options->Menus to prevent users from activating plugins which should not be under user control.', 'plugin-commander'); ?>


".__('Deactivate', 'plugin-commander').""; } else { $cmd = "activate=$file"; $text = "".__('Activate', 'plugin-commander').""; } echo "$text"; ?>
$p) { ?>
".__('On, click to turn off', 'plugin-commander').""; } else { $cmd = "auto_activate_on=$file"; $text = "".__('Off, click to turn on', 'plugin-commander').""; } echo "$text"; ?> ".__('Enabled, click to disable', 'plugin-commander').""; } else { $cmd = "user_control_on=$file"; $text = "".__('Disabled, click to enable', 'plugin-commander').""; } echo "$text"; ?> ".__('Activate all', 'plugin-commander').""?> ".__('Deactivate all', 'plugin-commander').""?>
siteid)) $wpdb->siteid = 1; $auto_activate_list = get_site_option('pc_auto_activate_list'); $auto_activate = explode(',',$auto_activate_list); foreach($auto_activate as $plugin) { pc_activate_plugin($new_blog_id, $plugin, false); } } function pc_activate_plugin($blog_id, $plugin, $check_access = true) { if ($check_access && !current_user_can('activate_plugins')) die('Plugin Commander: Access denied'); if (empty($plugin)) return; if (validate_file($plugin)) return; if (!file_exists(ABSPATH . PLUGINDIR . '/' . $plugin)) return; switch_to_blog($blog_id); $current = pc_get_active_plugins(); ob_start(); include_once(ABSPATH . PLUGINDIR . '/' . $plugin); $current[] = $plugin; sort($current); $current = array_unique($current); update_option('active_plugins', $current); do_action('activate_' . $plugin); $res = ob_get_clean(); if (!empty($res)) echo __("Error activating $plugin for blog id=$blog_id: $res
"); restore_current_blog(); } function pc_deactivate_plugin($blog_id, $plugin) { if (!current_user_can('activate_plugins')) die('Plugin Commander: Access denied'); if (empty($plugin)) return; if (validate_file($plugin)) return; if (!file_exists(ABSPATH . PLUGINDIR . '/' . $plugin)) return; switch_to_blog($blog_id); $current = pc_get_active_plugins(); array_splice($current, array_search($plugin, $current), 1 ); // Array-fu! $current = array_unique($current); update_option('active_plugins', $current); ob_start(); do_action('deactivate_'.$plugin); $res = ob_get_clean(); if (!empty($res)) echo "Error deactivating $plugin for blog id=$blog_id: $res
"; restore_current_blog(); } function pc_mass_activate($plugin) { if (!current_user_can('activate_plugins')) die('Plugin Commander: Access denied'); global $wpdb; $res = $wpdb->get_results("select blog_id from wp_blogs"); if ($res === false) { echo "Failed to mass activate $plugin : error selecting blogs"; return; } foreach($res as $r) { pc_activate_plugin($r->blog_id, $plugin); } } function pc_mass_deactivate($plugin) { if (!current_user_can('activate_plugins')) die('Plugin Commander: Access denied'); global $wpdb; $res = $wpdb->get_results("select blog_id from wp_blogs"); if ($res === false) { echo "Failed to mass deactivate $plugin : error selecting blogs"; return; } foreach($res as $r) { pc_deactivate_plugin($r->blog_id, $plugin); } } function pc_handle_plugins_cmd() { if (isset($_GET['activate'])) { $plugin = $_GET['activate']; global $blog_id; pc_activate_plugin($blog_id, $plugin); } if (isset($_GET['deactivate'])) { $plugin = $_GET['deactivate']; global $blog_id; pc_deactivate_plugin($blog_id, $plugin); } } function pc_handle_command() { if (isset($_GET['auto_activate_on'])) { $plugins = get_plugins(); $auto_activate = pc_get_auto_activate_array(); $plugin = $_GET['auto_activate_on']; $auto_activate[] = $plugin; update_site_option('pc_auto_activate_list',implode(',',array_unique($auto_activate))); } if (isset($_GET['auto_activate_off'])) { $plugins = get_plugins(); $auto_activate = pc_get_auto_activate_array(); $plugin = $_GET['auto_activate_off']; array_splice($auto_activate, array_search($plugin, $auto_activate), 1); update_site_option('pc_auto_activate_list',implode(',',array_unique($auto_activate))); } if (isset($_GET['user_control_on'])) { $plugins = get_plugins(); $user_control = pc_user_control_array(); $plugin = $_GET['user_control_on']; $user_control[] = $plugin; update_site_option('pc_user_control_list',implode(',',array_unique($user_control))); } if (isset($_GET['user_control_off'])) { $plugins = get_plugins(); $user_control = pc_user_control_array(); $plugin = $_GET['user_control_off']; array_splice($user_control, array_search($plugin, $user_control), 1); update_site_option('pc_user_control_list',implode(',',array_unique($user_control))); } if (isset($_GET['mass_activate'])) { $plugins = get_plugins(); $plugin = $_GET['mass_activate']; pc_mass_activate($plugin); } if (isset($_GET['mass_deactivate'])) { $plugins = get_plugins(); $plugin = $_GET['mass_deactivate']; pc_mass_deactivate($plugin); } } function pc_get_auto_activate_array() { $auto_activate = explode(',',get_site_option('pc_auto_activate_list')); if (empty($auto_activate)) $auto_activate = array(); return $auto_activate; } function pc_user_control_array() { $user_control = explode(',',get_site_option('pc_user_control_list')); if (empty($user_control)) $user_control = array(); return $user_control; } function pc_get_active_plugins() { $active_plugins = get_option('active_plugins'); if ($active_plugins == "" || $active_plugins == null) $active_plugins = array(); return $active_plugins; } ?>