check_permissions(); $action = $wp_list_table->current_action(); $s = isset($_REQUEST['s']) ? $_REQUEST['s'] : ''; // Clean up request URI from temporary args for screen options/paging uri's to work as expected. $_SERVER['REQUEST_URI'] = remove_query_arg(array('enable', 'disable', 'enable-selected', 'disable-selected'), $_SERVER['REQUEST_URI']); $id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0; if ( ! $id ) wp_die( __('Invalid site ID.') ); $wp_list_table->prepare_items(); $details = get_blog_details( $id ); if ( $details->site_id != $wpdb->siteid ) wp_die( __( 'You do not have permission to access this page.' ) ); $is_main_site = is_main_site( $id ); if ( $action ) { switch_to_blog( $id ); $allowed_themes = get_option( 'allowedthemes' ); switch ( $action ) { case 'enable': $theme = $_GET['theme']; if ( !$allowed_themes ) $allowed_themes = array( $theme => true ); else $allowed_themes[$theme] = true; break; case 'disable': $theme = $_GET['theme']; if ( !$allowed_themes ) $allowed_themes = array(); else unset( $allowed_themes[$theme] ); break; case 'enable-selected': $themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array(); if ( empty($themes) ) { restore_current_blog(); wp_redirect( wp_get_referer() ); exit; } foreach( (array) $themes as $theme ) $allowed_themes[ $theme ] = true; break; case 'disable-selected': $themes = isset( $_POST['checked'] ) ? (array) $_POST['checked'] : array(); if ( empty($themes) ) { restore_current_blog(); wp_redirect( wp_get_referer() ); exit; } foreach( (array) $themes as $theme ) unset( $allowed_themes[ $theme ] ); break; } update_option( 'allowedthemes', $allowed_themes ); restore_current_blog(); wp_redirect( wp_get_referer() ); // @todo add_query_arg for update message exit; } if ( isset( $_GET['action'] ) && 'update-site' == $_GET['action'] ) { wp_redirect( wp_get_referer() ); exit(); } add_thickbox(); add_screen_option( 'per_page', array( 'label' => _x( 'Themes', 'themes per page (screen options)' ) ) ); $title = sprintf( __('Edit Site: %s'), get_blogaddress_by_id($id)); $parent_file = 'sites.php'; $submenu_file = 'sites.php'; require('../admin-header.php'); ?>