. */ $activeplugins = new activeplugins(); class activeplugins { function activeplugins() { add_action('admin_menu', array(&$this, 'menu')); } function menu() { add_submenu_page('ms-admin.php', 'Active Plugins', 'Active Plugins', 'unfiltered_html', __FILE__, array(&$this, 'page')); } function page() { global $wpdb; echo '
'.__('Does not include primary site, network activated plugins, or plugins with 0 users.').'
'; $query = "SELECT * FROM {$wpdb->blogs}, {$wpdb->registration_log} WHERE site_id = '{$wpdb->siteid}' AND {$wpdb->blogs}.blog_id = {$wpdb->registration_log}.blog_id"; $blog_list = $wpdb->get_results( $query, ARRAY_A ); //get blogs $pi = array(); foreach($blog_list as $id=>$info) { $theid = $info['blog_id']; $query = "SELECT option_value, option_name FROM ".$wpdb->base_prefix.$theid."_options WHERE option_name='active_plugins'"; //get active plugin info for each blog from above $active = $wpdb->get_results( $query, ARRAY_A ); $pi[$theid] = unserialize($active['0']['option_value']); //store active plugin array as value to $pi['blog_id'] unset($query); } $pi = array_filter($pi); //remove empties $pi_count = array(); foreach($pi as $k=>$v_array) { $pi_count = array_merge($pi_count, $v_array); //put all active plugins into one array, we can then count duplicate values } echo 'Totals (each active plugin and how many users):'."\n";
foreach(array_count_values($pi_count) as $name=>$tot) {
echo "\t" . $name . ' is used by ' . $tot . ' site' . (($tot == '1') ? '' : 's') . "\n";
}
echo '';
echo 'Blog (ID, URL) -> plugins:'."\n";
foreach($pi as $siteid=>$list) {
$details = get_blog_details($siteid);
echo $details->blogname . ' (' . $siteid . ', ' . $details->siteurl . ' Go to plugins page →)' . "\n";
foreach($list as $name) {
echo "\t".$name."\n";
}
echo "\n";
}
echo '';
echo '