baseurl = "?page=" . $_GET['page'];
?>
MU Plugin manager.
quit messing around and just click links please";
}
else
{
$this->deactivate_plugin(trim($_GET['plugin']), $_GET['blog']);
}
break;
case 'activate':
if (!isset($_GET['blog']) && !isset($_GET['plugin']) )
{
echo "\t\t
quit messing around and just click links please
";
}
else
{
$this->activate_plugin(trim($_GET['plugin']), $_GET['blog']);
}
break;
}
switch ($_GET['view'])
{
case 'check':
$this->main_menu();
$this->check_plugins();
$this->main_menu();
break;
case 'detail':
if (!isset($_GET['blog']))
{
echo "\t\t
no blog, try again
";
}
else
{
$this->main_menu();
$this->blog_detail($_GET['blog']);
$this->main_menu();
}
break;
default:
?>
Welcome to the MU Plugin manager
Through this page you can globally manipulate the active plugins for individual blogs.
main_menu();
break;
}
?>
Global Plugin list
This is a list of all activated plugins for all blogs on the system.
You can click on an active plugin to deactive it.
You can click on a blog's ID number to view/perform detailed maintenance on that blog.
Please scroll to the bottom to select another action.
blogs}";
$bloglist = $wpdb->get_results($query);
?>
| Blog Name |
ID |
Active plugins |
blog_id);
$active = get_blog_option($bloginfo->blog_id, "active_plugins");
$plugin_loc = 'wp-content/plugins';
$plugin_root = ABSPATH.$plugin_loc;
echo "\t\t\t\r\n" .
"\t\t\t\t| {$bloginfo->blogname} | \r\n" .
"\t\t\t\t{$bloginfo->blog_id} | \r\n" .
"\t\t\t\t\r\n";
if (is_array($active) && sizeof($active) > 0)
{
echo "\t\t\t\t\t\r\n";
foreach ( $active as $id => $plugin )
{
$plugin_data = get_plugin_data("$plugin_root/$plugin");
echo("\t\t\t\t\t\t- {$plugin_data['Name']}
\r\n");
}
echo "\t\t\t\t\t \r\n";
}
else
{
print "No plugins active";
}
?>
|
newrow($alt);
}
?>
global_detail();
}
$bloginfo = get_blog_details($blogid);
$active = get_blog_option($bloginfo->blog_id, "active_plugins");
$available = $this->get_available_plugins($blogid);
if(is_array($available))
{
?>
Detailed plugin information for echo $bloginfo->blogname ?> (ID# echo $bloginfo->blog_id ?>)
Active plugins for this blog:
| Plugin |
Version |
Description |
Action |
$plugin)
{
$act = '';
$actionlink = "Activate";
if (in_array($file, $active))
{
$act = 'active';
$actionlink = "Deactivate";
}
echo "\t\t\t\r\n" .
"\t\t\t\t| {$plugin['Title']} | \r\n" .
"\t\t\t\t{$plugin['Version']} | \r\n" .
"\t\t\t\t{$plugin['Description']} | \r\n" .
"\t\t\t\t$actionlink | \r\n" .
"\t\t\t
\r\n";
$this->newrow($alternate);
}
?>
There are no plugins available for this blog
blogs}";
$bloglist = $wpdb->get_results($query);
foreach($bloglist as $row)
{
$plugins = get_blog_option($row->blog_id, "active_plugins");
if(!in_array($file,$plugins))
{
return FALSE;
}
}
return TRUE;
}
function is_plugin_globally_inactive($file)
{
/*
* Function added by SignpostMarv Martin
*/
global $wpdb;
$query = "select blog_id from {$wpdb->blogs}";
$bloglist = $wpdb->get_results($query);
foreach($bloglist as $row)
{
$plugins = get_blog_option($row->blog_id, "active_plugins");
if(in_array($file,$plugins))
{
return FALSE;
}
}
return TRUE;
}
function global_detail()
{
$available = $this->get_available_plugins(0);
if (is_array($available))
{
?>
Global plugin management
This page can globally, i.e. for every blog on the site, activate or deactivate plugins.
Simply click on the links below and to the right to enforce site-wide plugin activation policies.
The changes go into effect immediately.
| Plugin |
Version |
Description |
Action |
$plugin)
{
if($this->is_plugin_globally_active($file))
{
$act = "global active";
$actionlink = "Globally Deactivate";
}
else if($this->is_plugin_globally_inactive($file))
{
$act = "global inactive";
$actionlink = "Globally Activate";
}
else
{
$act = "";
$actionlink = "";
}
echo "\t\t\t\r\n" .
"\t\t\t\t| {$plugin['Title']} | \r\n" .
"\t\t\t\t{$plugin['Version']} | \r\n" .
"\t\t\t\t{$plugin['Description']} | \r\n" .
"\t\t\t\t$actionlink | \r\n" .
"\t\t\t
\r\n";
$this->newrow($alternate);
}
?>
There are no plugins available for this blog.
Activating $plugin on {$bloginfo->blogname} ({$bloginfo->blog_id})...";
if (is_array($plugins))
{
if (!in_array($plugin, $plugins))
{
$plugins[] = $plugin;
sort($plugins);
}
else
{
echo "plugin already active!";
continue;
}
}
else
{
//create an array and add it
$plugins = array($plugin);
}
update_blog_option($blogid, "active_plugins", $plugins);
echo "Done!";
}
}
function deactivate_plugin($plugin, $blogid = 'all')
{
global $wpdb, $wpmuBaseTablePrefix;
$bids = $wpdb->get_results( "SELECT blog_id FROM $wpdb->blogs ORDER BY blog_id ASC" );
foreach ( $bids as $bid )
{
$plugins = get_blog_option($bid->blog_id, "active_plugins");
$bloginfo = get_blog_details($bid->blog_id);
echo "
Deactivating $plugin on {$bloginfo->blogname} ({$bloginfo->blog_id})...";
if (is_array($plugins))
{
array_splice($plugins, array_search( $plugin, $plugins), 1 ); // Array-fu!
update_blog_option($bid->blog_id, "active_plugins", $plugins);
echo "Done!";
}
else
{
echo "Blog has no active plugins!";
}
}
}
function get_available_plugins($blogid)
{
global $wpdb;
$current_id = $wpdb->blogid;
$wpdb->blogid=$blogid;
$plugins = get_plugins();
$wpdb->blogid=$current_id;
return $plugins;
}
}
$mu_plugin_man = new MU_Plugin_Manager();
?>