wp-admin/network/site-themes.php


Lines:

1 to 100 of 234
<?php

/**
 * Edit Site Themes Administration Screen
 *
 * @package WordPress
 * @subpackage Multisite
 * @since 3.1.0
 */


/** Load WordPress Administration Bootstrap */
require_once __DIR__ . '/admin.php';

if ( ! current_user_can( 'manage_sites' ) ) {
  wp_die( __( 'Sorry, you are not allowed to manage themes for this site.' ) );
}

get_current_screen()->add_help_tab( get_site_screen_help_tab_args() );
get_current_screen()->set_help_sidebar( get_site_screen_help_sidebar_content() );

get_current_screen()->set_screen_reader_content(
  array(
    'heading_views'      => __( 'Filter site themes list' ),
    'heading_pagination' => __( 'Site themes list navigation' ),
    'heading_list'       => __( 'Site themes list' ),
  )
);

$wp_list_table = _get_list_table( 'WP_MS_Themes_List_Table' );

$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.
$temp_args              = array( 'enabled', 'disabled', 'error' );
$_SERVER['REQUEST_URI'] = remove_query_arg( $temp_args, $_SERVER['REQUEST_URI'] );
$referer                = remove_query_arg( $temp_args, wp_get_referer() );

if ( ! empty( $_REQUEST['paged'] ) ) {
  $referer = add_query_arg( 'paged', (int) $_REQUEST['paged'], $referer );
}

$id = isset( $_REQUEST['id'] ) ? (int) $_REQUEST['id'] : 0;

if ( ! $id ) {
  wp_die( __( 'Invalid site ID.' ) );
}

$wp_list_table->prepare_items();

$details = get_site( $id );
if ( ! $details ) {
  wp_die( __( 'The requested site does not exist.' ) );
}

if ( ! can_edit_network( $details->site_id ) ) {
  wp_die( __( 'Sorry, you are not allowed to access this page.' ), 403 );
}

$is_main_site = is_main_site( $id );

if ( $action ) {
  switch_to_blog( $id );
  $allowed_themes = get_option( 'allowedthemes' );

  switch ( $action ) {
    case 'enable':
      check_admin_referer( 'enable-theme_' . $_GET['theme'] );
      $theme  = $_GET['theme'];
      $action = 'enabled';
      $n      = 1;
      if ( ! $allowed_themes ) {
        $allowed_themes = array( $theme => true );
      } else {
        $allowed_themes[ $theme ] = true;
      }
      break;
    case 'disable':
      check_admin_referer( 'disable-theme_' . $_GET['theme'] );
      $theme  = $_GET['theme'];
      $action = 'disabled';
      $n      = 1;
      if ( ! $allowed_themes ) {
        $allowed_themes = array();
      } else {
        unset( $allowed_themes[ $theme ] );
      }
      break;
    case 'enable-selected':
      check_admin_referer( 'bulk-themes' );
      if ( isset( $_POST['checked'] ) ) {
        $themes = (array) $_POST['checked'];
        $action = 'enabled';
        $n      = count( $themes );
        foreach ( (array) $themes as $theme ) {
          $allowed_themes[ $theme ] = true;
        }
      } else {

 View on GitHub View on Trac

Called by

    Invoked by

      Calls

      API Letters: ,,,,