plugin_basename = isset( $_GET['plugin'] ) ? wp_kses_post( wp_unslash( $_GET['plugin'] ) ) : false; } else { wp_die( 'Something went wront', 'advanced-network-management' ); } parent::__construct( array( 'singular' => __( 'Site', 'advanced-network-management' ), 'plural' => __( 'Sites' ), 'ajax' => false, ) ); } /** * Message to show if no designation found * * @return void */ public function no_items() { esc_attr_e( 'No Sites found', 'advanced-network-management' ); } /** * Get the column names * * @return array */ public function get_columns() { $columns = array( 'cb' => '', 'sites' => __( 'Sites' ), 'status' => __( 'Status', 'advanced-network-management' ), 'visibility' => __( 'Visibility', 'advanced-network-management' ), ); return $columns; } /** * Displays extra controls * * @param string $which the current position of the table. * * @return void */ protected function extra_tablenav( $which ) { // don't render on top. if ( 'bottom' !== $which ) { return; } ?>
' . $visibility . '
'; $html .= '' . $visibility_link . '
'; return $html; } /** * Render the status column * * @param object WP_Site $site the WordPress site. * * @return string */ public function column_status( $site ) { $base_edit_link = network_admin_url( 'plugins.php' ); $base_edit_link = add_query_arg( array( 'page' => 'plugin-visibility', 'action' => 'edit-plugin-visibility', 'plugin' => $this->plugin_basename, 'blog_id' => $site->blog_id, ), $base_edit_link ); switch_to_blog( $site->blog_id ); $is_plugin_active = is_plugin_active( $this->plugin_basename ); $status = __( 'Deactivated', 'advanced-network-management' ); if ( $is_plugin_active ) { $status = __( 'Activated', 'advanced-network-management' ); } restore_current_blog(); // change activation status. if ( ! is_plugin_active_for_network( $this->plugin_basename ) ) { switch_to_blog( $site->blog_id ); $plugin_status = is_plugin_active( $this->plugin_basename ); if ( $plugin_status ) { $activation_link = add_query_arg( array( 'action' => 'deactivate-plugin', ), $base_edit_link ); $activation_link = wp_nonce_url( $activation_link, 'manage-plugins' ); $activation_link = '' . __( 'Deactivate' ) . ''; } else { $activation_link = add_query_arg( array( 'action' => 'activate-plugin', ), $base_edit_link ); $activation_link = wp_nonce_url( $activation_link, 'manage-plugins' ); $activation_link = '' . __( 'Activate' ) . ''; } restore_current_blog(); $html = '' . $status . '
'; $html .= '' . $activation_link . '
'; } else { $html = __( 'Plugin is network activated', 'advanced-network-management' ); } return $html; } /** * Prepare the class items * * @return void */ public function prepare_items() { $this->_column_headers = array( $this->get_columns(), array(), array() ); $this->set_pagination_args( array( 'total_items' => $this->get_sites_count(), 'per_page' => -1, ) ); $this->items = $this->get_sites(); } /** * Get all sites * * @return array */ protected function get_sites() { $sites = get_sites(); return $sites; } /** * Get count of all sites * * @return array */ protected function get_sites_count() { return (int) count( $this->get_sites() ); } }