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";
?>
|
|
".__('Deactivate', 'plugin-commander')."";
}
else
{
$cmd = "activate=$file";
$text = "".__('Activate', 'plugin-commander')."";
}
echo "$text";
?>
|
";
}
function pc_page()
{
if (!is_site_admin()) return;
pc_handle_command();
?>
=$_REQUEST['auto_activate_on']?> .
=$_REQUEST['auto_activate_off']?> .
=$_REQUEST['user_control_on']?> .
=$_REQUEST['user_control_off']?> .
: =$_REQUEST['mass_activate']?> .
: =$_REQUEST['mass_deactivate']?> .
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'); ?>
|
|
|
|
|
|
|
$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;
}
?>