. */ class activeplugins { function __construct() { add_action( 'init', array( &$this, 'init' ) ); } function init() { if ( ! is_multisite() ) add_action( 'admin_notices', array( &$this, 'admin_notices' ) ); else add_action( 'network_admin_menu', array( &$this, 'network_admin_menu' ) ); } function admin_notices() { echo '

'; _e( 'Acitve Plugins is for multisite use only.', 'active-plugins' ); echo '

'; } function network_admin_menu() { add_submenu_page( 'settings.php', __( 'Active Plugins', 'active-plugins' ), __( 'Active Plugins', 'active-plugins' ), 'unfiltered_html', __FILE__, array( &$this, 'page' ) ); } function page() { echo '
'; echo '

'. __( 'Active Plugins', 'active-plugins' ) .'

'; echo '

'. __( 'Network-Activated plugins not listed.', 'active-plugins' ) .'

'; global $wpdb; $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 $all_plugins = get_plugins(); $plugins_list = array_keys( get_plugins() ); $pi = array(); //add main site to beginning $blog_list[-1] = array( 'blog_id' => 1 ); ksort($blog_list); foreach( $blog_list as $k => $info ) { //loop through the blogs //store active plugins is giant array index by blog id $bid = $info['blog_id']; $pi[ $bid ] = get_blog_option( $bid, 'active_plugins' ); } $pi = array_filter($pi); //remove empties $pi_count = array(); foreach($pi as $k => $v_array) { //put all active plugins into one array, we can then count duplicate values $pi_count = array_merge($pi_count, $v_array); } echo '
'; _e( 'Totals (each active plugin and how many users)', 'active-plugins' ); $totals = $tags = array_count_values( $pi_count ); ksort( $totals ); echo ''; //find which are network-activated $network_plugins = array_flip( get_site_option('active_sitewide_plugins') ); //remove those from our list $remove_network = array_diff( $plugins_list, $network_plugins ); //show which not-network-activated plugins have 0 users _e( 'Plugins with zero (0) users:', 'active-plugins' ); echo ''; echo '
'; echo '
'; foreach( $pi as $siteid => $list ) { switch_to_blog( $siteid ); $edit = network_admin_url( "site-info.php?id=$siteid" ); $view = home_url(); $dash = admin_url(); $plugins = admin_url('/plugins.php'); $blogname = get_bloginfo('name'); $edit_label = __( 'Edit', 'active-plugins' ); $view_label = __( 'View', 'active-plugins' ); $dashboard_label = __( 'Dashboard', 'active-plugins' ); $plugins_label = __( 'Plugins', 'active-plugins' ); echo "

$blogname ($siteid) [$edit_label] [$view_label] [$dashboard_label] [$plugins_label]

"; echo '
'; restore_current_blog(); } echo '
'; echo '
'; }// end page() } new activeplugins();