WordPress.org

Make WordPress Core

Ticket #14435: 14435.4.diff

File 14435.4.diff, 157.0 KB (added by ryan, 8 years ago)
  • wp-includes/load.php

     
    569569}
    570570
    571571/**
     572 * Whether the current request is in WordPress network admin Panel
     573 *
     574 * Does not inform on whether the user is a network admin! Use capability checks to
     575 * tell if the user should be accessing a section or not.
     576 *
     577 * @since 3.1.0
     578 *
     579 * @return bool True if inside WordPress network administration pages.
     580 */
     581function is_network_admin() {
     582        if ( defined( 'WP_NETWORK_ADMIN' ) )
     583                return WP_NETWORK_ADMIN;
     584        return false;
     585}
     586
     587/**
    572588 * Whether Multisite support is enabled
    573589 *
    574590 * @since 3.0.0
  • wp-includes/link-template.php

     
    21322132 * @return string Admin url link with optional path appended
    21332133*/
    21342134function network_admin_url( $path = '', $scheme = 'admin' ) {
    2135         $url = network_site_url('wp-admin/', $scheme);
     2135        $url = network_site_url('wp-admin/network/', $scheme);
    21362136
    21372137        if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
    21382138                $url .= ltrim($path, '/');
     
    21412141}
    21422142
    21432143/**
     2144 * Retrieve the url to the admin area for either the current blog or the network depending on context.
     2145 *
     2146 * @package WordPress
     2147 * @since 3.1.0
     2148 *
     2149 * @param string $path Optional path relative to the admin url
     2150 * @param string $scheme The scheme to use. Default is 'admin', which obeys force_ssl_admin() and is_ssl(). 'http' or 'https' can be passed to force those schemes.
     2151 * @return string Admin url link with optional path appended
     2152*/
     2153function self_admin_url($path = '', $scheme = 'admin') {
     2154        if ( is_network_admin() )
     2155                return network_admin_url($path, $scheme);
     2156        else
     2157                return admin_url($path, $scheme);
     2158}
     2159
     2160/**
    21442161 * Output rel=canonical for singular queries
    21452162 *
    21462163 * @package WordPress
  • wp-admin/ms-edit.php

     
    99
    1010require_once( './admin.php' );
    1111
    12 if ( ! is_multisite() )
    13         wp_die( __( 'Multisite support is not enabled.' ) );
    14 
    15 if ( empty( $_GET['action'] ) )
    16         wp_redirect( admin_url( 'ms-admin.php' ) );
    17 
    18 do_action( 'wpmuadminedit' , '');
    19 
    20 if ( isset( $_GET['id' ]) )
    21         $id = intval( $_GET['id'] );
    22 elseif ( isset( $_POST['id'] ) )
    23         $id = intval( $_POST['id'] );
    24 
    25 switch ( $_GET['action'] ) {
    26         case 'siteoptions':
    27                 check_admin_referer( 'siteoptions' );
    28                 if ( ! current_user_can( 'manage_network_options' ) )
    29                         wp_die( __( 'You do not have permission to access this page.' ) );
    30 
    31                 if ( empty( $_POST ) )
    32                         wp_die( sprintf( __( 'You probably need to go back to the <a href="%s">options page</a>.', esc_url( admin_url( 'ms-options.php' ) ) ) ) );
    33 
    34                 if ( isset($_POST['WPLANG']) && ( '' === $_POST['WPLANG'] || in_array( $_POST['WPLANG'], get_available_languages() ) ) )
    35                         update_site_option( 'WPLANG', $_POST['WPLANG'] );
    36 
    37                 if ( is_email( $_POST['admin_email'] ) )
    38                         update_site_option( 'admin_email', $_POST['admin_email'] );
    39 
    40                 $illegal_names = split( ' ', $_POST['illegal_names'] );
    41                 foreach ( (array) $illegal_names as $name ) {
    42                         $name = trim( $name );
    43                         if ( $name != '' )
    44                                 $names[] = trim( $name );
    45                 }
    46                 update_site_option( 'illegal_names', $names );
    47 
    48                 if ( $_POST['limited_email_domains'] != '' ) {
    49                         $limited_email_domains = str_replace( ' ', "\n", $_POST['limited_email_domains'] );
    50                         $limited_email_domains = split( "\n", stripslashes( $limited_email_domains ) );
    51                         $limited_email = array();
    52                         foreach ( (array) $limited_email_domains as $domain ) {
    53                                         $domain = trim( $domain );
    54                                 if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) )
    55                                         $limited_email[] = trim( $domain );
    56                         }
    57                         update_site_option( 'limited_email_domains', $limited_email );
    58                 } else {
    59                         update_site_option( 'limited_email_domains', '' );
    60                 }
    61 
    62                 if ( $_POST['banned_email_domains'] != '' ) {
    63                         $banned_email_domains = split( "\n", stripslashes( $_POST['banned_email_domains'] ) );
    64                         $banned = array();
    65                         foreach ( (array) $banned_email_domains as $domain ) {
    66                                 $domain = trim( $domain );
    67                                 if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) )
    68                                         $banned[] = trim( $domain );
    69                         }
    70                         update_site_option( 'banned_email_domains', $banned );
    71                 } else {
    72                         update_site_option( 'banned_email_domains', '' );
    73                 }
    74                 update_site_option( 'default_user_role', $_POST['default_user_role'] );
    75                 if ( trim( $_POST['dashboard_blog_orig'] ) == '' )
    76                         $_POST['dashboard_blog_orig'] = $current_site->blog_id;
    77                 if ( trim( $_POST['dashboard_blog'] ) == '' ) {
    78                         $_POST['dashboard_blog'] = $current_site->blog_id;
    79                         $dashboard_blog_id = $current_site->blog_id;
    80                 } elseif ( ! preg_match( '/(--|\.)/', $_POST['dashboard_blog'] ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $_POST['dashboard_blog'] ) ) {
    81                         $dashboard_blog = $_POST['dashboard_blog'];
    82                         $blog_details = get_blog_details( $dashboard_blog );
    83                         if ( false === $blog_details ) {
    84                                 if ( is_numeric( $dashboard_blog ) )
    85                                         wp_die( __( 'A dashboard site referenced by ID must already exist' ) );
    86                                 if ( is_subdomain_install() ) {
    87                                         $domain = $dashboard_blog . '.' . $current_site->domain;
    88                                         $path = $current_site->path;
    89                                 } else {
    90                                         $domain = $current_site->domain;
    91                                         $path = trailingslashit( $current_site->path . $dashboard_blog );
    92                                 }
    93                                 $wpdb->hide_errors();
    94                                 $dashboard_blog_id = wpmu_create_blog( $domain, $path, __( 'My Dashboard' ), $current_user->id , array( 'public' => 0 ), $current_site->id );
    95                                 $wpdb->show_errors();
    96                         } else {
    97                                 $dashboard_blog_id = $blog_details->blog_id;
    98                         }
    99                 }
    100                 if ( is_wp_error( $dashboard_blog_id ) )
    101                         wp_die( __( 'Problem creating dashboard site: ' ) . $dashboard_blog_id->get_error_message() );
    102                 if ( $_POST['dashboard_blog_orig'] != $_POST['dashboard_blog'] ) {
    103                         $users = get_users_of_blog( get_site_option( 'dashboard_blog' ) );
    104                         $move_users = array();
    105                         foreach ( (array)$users as $user ) {
    106                                 $user_meta_value = unserialize( $user->meta_value );
    107                                 if ( is_array( $user_meta_value ) && array_pop( $var_by_ref = array_keys( $user_meta_value ) ) == 'subscriber' )
    108                                         $move_users[] = $user->user_id;
    109                         }
    110                         if ( false == empty( $move_users ) ) {
    111                                 foreach ( (array)$move_users as $user_id ) {
    112                                         remove_user_from_blog($user_id, get_site_option( 'dashboard_blog' ) );
    113                                         add_user_to_blog( $dashboard_blog_id, $user_id, get_site_option( 'default_user_role', 'subscriber' ) );
    114                                         update_user_meta( $user_id, 'primary_blog', $dashboard_blog_id );
    115                                 }
    116                         }
    117                 }
    118                 update_site_option( 'dashboard_blog', $dashboard_blog_id );
    119 
    120                 $options = array( 'registrationnotification', 'registration', 'add_new_users', 'menu_items', 'mu_media_buttons', 'upload_space_check_disabled', 'blog_upload_space', 'upload_filetypes', 'site_name', 'first_post', 'first_page', 'first_comment', 'first_comment_url', 'first_comment_author', 'welcome_email', 'welcome_user_email', 'fileupload_maxk', 'admin_notice_feed', 'global_terms_enabled' );
    121                 $checked_options = array( 'mu_media_buttons' => array(), 'menu_items' => array(), 'registrationnotification' => 'no', 'upload_space_check_disabled' => 1, 'add_new_users' => 0 );
    122                 foreach ( $checked_options as $option_name => $option_unchecked_value ) {
    123                         if ( ! isset( $_POST[$option_name] ) )
    124                                 $_POST[$option_name] = $option_unchecked_value;
    125                 }
    126                 foreach ( $options as $option_name ) {
    127                         if ( ! isset($_POST[$option_name]) )
    128                                 continue;
    129                         $value = stripslashes_deep( $_POST[$option_name] );
    130                         update_site_option( $option_name, $value );
    131                 }
    132 
    133                 // Update more options here
    134                 do_action( 'update_wpmu_options' );
    135 
    136                 wp_redirect( add_query_arg( 'updated', 'true', admin_url( 'ms-options.php' ) ) );
    137                 exit();
    138         break;
    139         case 'addblog':
    140                 check_admin_referer( 'add-blog', '_wpnonce_add-blog' );
    141 
    142                 if ( ! current_user_can( 'manage_sites' ) )
    143                         wp_die( __( 'You do not have permission to access this page.' ) );
    144 
    145                 if ( is_array( $_POST['blog'] ) == false )
    146                         wp_die(  __( 'Can&#8217;t create an empty site.' ) );
    147                 $blog = $_POST['blog'];
    148                 $domain = '';
    149                 if ( ! preg_match( '/(--)/', $blog['domain'] ) && preg_match( '|^([a-zA-Z0-9-])+$|', $blog['domain'] ) )
    150                         $domain = strtolower( $blog['domain'] );
    151 
    152                 // If not a subdomain install, make sure the domain isn't a reserved word
    153                 if ( ! is_subdomain_install() ) {
    154                         $subdirectory_reserved_names = apply_filters( 'subdirectory_reserved_names', array( 'page', 'comments', 'blog', 'files', 'feed' ) );
    155                         if ( in_array( $domain, $subdirectory_reserved_names ) )
    156                                 wp_die( sprintf( __('The following words are reserved for use by WordPress functions and cannot be used as blog names: <code>%s</code>' ), implode( '</code>, <code>', $subdirectory_reserved_names ) ) );
    157                 }
    158 
    159                 $email = sanitize_email( $blog['email'] );
    160                 $title = $blog['title'];
    161 
    162                 if ( empty( $domain ) )
    163                         wp_die( __( 'Missing or invalid site address.' ) );
    164                 if ( empty( $email ) )
    165                         wp_die( __( 'Missing email address.' ) );
    166                 if ( !is_email( $email ) )
    167                         wp_die( __( 'Invalid email address.' ) );
    168 
    169                 if ( is_subdomain_install() ) {
    170                         $newdomain = $domain . '.' . preg_replace( '|^www\.|', '', $current_site->domain );
    171                         $path = $base;
    172                 } else {
    173                         $newdomain = $current_site->domain;
    174                         $path = $base . $domain . '/';
    175                 }
    176 
    177                 $password = 'N/A';
    178                 $user_id = email_exists($email);
    179                 if ( !$user_id ) { // Create a new user with a random password
    180                         $password = wp_generate_password();
    181                         $user_id = wpmu_create_user( $domain, $password, $email );
    182                         if ( false == $user_id )
    183                                 wp_die( __( 'There was an error creating the user.' ) );
    184                         else
    185                                 wp_new_user_notification( $user_id, $password );
    186                 }
    187 
    188                 $wpdb->hide_errors();
    189                 $id = wpmu_create_blog( $newdomain, $path, $title, $user_id , array( 'public' => 1 ), $current_site->id );
    190                 $wpdb->show_errors();
    191                 if ( !is_wp_error( $id ) ) {
    192                         $dashboard_blog = get_dashboard_blog();
    193                         if ( !is_super_admin( $user_id ) && get_user_option( 'primary_blog', $user_id ) == $dashboard_blog->blog_id )
    194                                 update_user_option( $user_id, 'primary_blog', $id, true );
    195                         $content_mail = sprintf( __( "New site created by %1s\n\nAddress: http://%2s\nName: %3s"), $current_user->user_login , $newdomain . $path, stripslashes( $title ) );
    196                         wp_mail( get_site_option('admin_email'),  sprintf( __( '[%s] New Site Created' ), $current_site->site_name ), $content_mail, 'From: "Site Admin" <' . get_site_option( 'admin_email' ) . '>' );
    197                         wpmu_welcome_notification( $id, $user_id, $password, $title, array( 'public' => 1 ) );
    198                         wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'add-blog' ), wp_get_referer() ) );
    199                         exit();
    200                 } else {
    201                         wp_die( $id->get_error_message() );
    202                 }
    203         break;
    204 
    205         case 'updateblog':
    206                 check_admin_referer( 'editblog' );
    207                 if ( ! current_user_can( 'manage_sites' ) )
    208                         wp_die( __( 'You do not have permission to access this page.' ) );
    209 
    210                 if ( empty( $_POST ) )
    211                         wp_die( sprintf( __( 'You probably need to go back to the <a href="%s">sites page</a>', esc_url( admin_url( 'ms-sites.php' ) ) ) ) );
    212 
    213                 switch_to_blog( $id );
    214 
    215                 // themes
    216                 $allowedthemes = array();
    217                 if ( isset($_POST['theme']) && is_array( $_POST['theme'] ) ) {
    218                         foreach ( $_POST['theme'] as $theme => $val ) {
    219                                 if ( 'on' == $val )
    220                                         $allowedthemes[$theme] = true;
    221                         }
    222                 }
    223                 update_option( 'allowedthemes',  $allowedthemes );
    224 
    225                 // options
    226                 if ( is_array( $_POST['option'] ) ) {
    227                         $c = 1;
    228                         $count = count( $_POST['option'] );
    229                         $skip_options = array( 'allowedthemes' ); // Don't update these options since they are handled elsewhere in the form.
    230                         foreach ( (array) $_POST['option'] as $key => $val ) {
    231                                 if ( $key === 0 || is_array( $val ) || in_array($key, $skip_options) )
    232                                         continue; // Avoids "0 is a protected WP option and may not be modified" error when edit blog options
    233                                 if ( $c == $count )
    234                                         update_option( $key, stripslashes( $val ) );
    235                                 else
    236                                         update_option( $key, stripslashes( $val ), false ); // no need to refresh blog details yet
    237                                 $c++;
    238                         }
    239                 }
    240 
    241                 // home and siteurl
    242                 if ( isset( $_POST['update_home_url'] ) && $_POST['update_home_url'] == 'update' ) {
    243                         $blog_address = get_blogaddress_by_domain( $_POST['blog']['domain'], $_POST['blog']['path'] );
    244                         if ( get_option( 'siteurl' ) !=  $blog_address )
    245                                 update_option( 'siteurl', $blog_address );
    246 
    247                         if ( get_option( 'home' ) != $blog_address )
    248                                 update_option( 'home', $blog_address );
    249                 }
    250 
    251                 // rewrite rules can't be flushed during switch to blog
    252                 delete_option( 'rewrite_rules' );
    253 
    254                 // update blogs table
    255                 $blog_data = stripslashes_deep( $_POST['blog'] );
    256                 update_blog_details( $id, $blog_data );
    257 
    258                 // get blog prefix
    259                 $blog_prefix = $wpdb->get_blog_prefix( $id );
    260 
    261                 // user roles
    262                 if ( isset( $_POST['role'] ) && is_array( $_POST['role'] ) == true ) {
    263                         $newroles = $_POST['role'];
    264 
    265                         reset( $newroles );
    266                         foreach ( (array) $newroles as $userid => $role ) {
    267                                 $user = new WP_User( $userid );
    268                                 if ( empty( $user->ID ) )
    269                                         continue;
    270                                 $user->for_blog( $id );
    271                                 $user->set_role( $role );
    272                         }
    273                 }
    274 
    275                 // remove user
    276                 if ( isset( $_POST['blogusers'] ) && is_array( $_POST['blogusers'] ) ) {
    277                         reset( $_POST['blogusers'] );
    278                         foreach ( (array) $_POST['blogusers'] as $key => $val )
    279                                 remove_user_from_blog( $key, $id );
    280                 }
    281 
    282                 // change password
    283                 if ( isset( $_POST['user_password'] ) && is_array( $_POST['user_password'] ) ) {
    284                         reset( $_POST['user_password'] );
    285                         $newroles = $_POST['role'];
    286                         foreach ( (array) $_POST['user_password'] as $userid => $pass ) {
    287                                 unset( $_POST['role'] );
    288                                 $_POST['role'] = $newroles[ $userid ];
    289                                 if ( $pass != '' ) {
    290                                         $cap = $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = '{$blog_prefix}capabilities' AND meta_value = 'a:0:{}'", $userid ) );
    291                                         $userdata = get_userdata($userid);
    292                                         $_POST['pass1'] = $_POST['pass2'] = $pass;
    293                                         $_POST['email'] = $userdata->user_email;
    294                                         $_POST['rich_editing'] = $userdata->rich_editing;
    295                                         edit_user( $userid );
    296                                         if ( $cap == null )
    297                                                 $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->usermeta} WHERE user_id = %d AND meta_key = '{$blog_prefix}capabilities' AND meta_value = 'a:0:{}'", $userid ) );
    298                                 }
    299                         }
    300                         unset( $_POST['role'] );
    301                         $_POST['role'] = $newroles;
    302                 }
    303 
    304                 // add user
    305                 if ( !empty( $_POST['newuser'] ) ) {
    306                         $newuser = $_POST['newuser'];
    307                         $userid = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) );
    308                         if ( $userid ) {
    309                                 $user = $wpdb->get_var( "SELECT user_id FROM " . $wpdb->usermeta . " WHERE user_id='$userid' AND meta_key='{$blog_prefix}capabilities'" );
    310                                 if ( $user == false )
    311                                         add_user_to_blog( $id, $userid, $_POST['new_role'] );
    312                         }
    313                 }
    314                 do_action( 'wpmu_update_blog_options' );
    315                 restore_current_blog();
    316                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'editblog', 'id' => $id ), wp_get_referer() ) );
    317         break;
    318 
    319         case 'deleteblog':
    320                 check_admin_referer('deleteblog');
    321                 if ( ! current_user_can( 'manage_sites' ) )
    322                         wp_die( __( 'You do not have permission to access this page.' ) );
    323 
    324                 if ( $id != '0' && $id != $current_site->blog_id )
    325                         wpmu_delete_blog( $id, true );
    326 
    327                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'delete' ), wp_get_referer() ) );
    328                 exit();
    329         break;
    330 
    331         case 'allblogs':
    332                 if ( isset( $_POST['doaction']) || isset($_POST['doaction2'] ) ) {
    333                         check_admin_referer( 'bulk-ms-sites', '_wpnonce_bulk-ms-sites' );
    334 
    335                         if ( ! current_user_can( 'manage_sites' ) )
    336                                 wp_die( __( 'You do not have permission to access this page.' ) );
    337 
    338                         if ( $_GET['action'] != -1 || $_POST['action2'] != -1 )
    339                                 $doaction = $_POST['action'] != -1 ? $_POST['action'] : $_POST['action2'];
    340 
    341 
    342                         foreach ( (array) $_POST['allblogs'] as $key => $val ) {
    343                                 if ( $val != '0' && $val != $current_site->blog_id ) {
    344                                         switch ( $doaction ) {
    345                                                 case 'delete':
    346                                                         $blogfunction = 'all_delete';
    347                                                         wpmu_delete_blog( $val, true );
    348                                                 break;
    349 
    350                                                 case 'spam':
    351                                                         $blogfunction = 'all_spam';
    352                                                         update_blog_status( $val, 'spam', '1', 0 );
    353                                                         set_time_limit( 60 );
    354                                                 break;
    355 
    356                                                 case 'notspam':
    357                                                         $blogfunction = 'all_notspam';
    358                                                         update_blog_status( $val, 'spam', '0', 0 );
    359                                                         set_time_limit( 60 );
    360                                                 break;
    361                                         }
    362                                 } else {
    363                                         wp_die( __( 'You are not allowed to change the current site.' ) );
    364                                 }
    365                         }
    366 
    367                         wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $blogfunction ), wp_get_referer() ) );
    368                         exit();
    369                 } else {
    370                         wp_redirect( admin_url( 'ms-sites.php' ) );
    371                 }
    372         break;
    373 
    374         case 'archiveblog':
    375                 check_admin_referer( 'archiveblog' );
    376                 if ( ! current_user_can( 'manage_sites' ) )
    377                         wp_die( __( 'You do not have permission to access this page.' ) );
    378 
    379                 update_blog_status( $id, 'archived', '1' );
    380                 do_action( 'archive_blog', $id );
    381                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'archive' ), wp_get_referer() ) );
    382                 exit();
    383         break;
    384 
    385         case 'unarchiveblog':
    386                 check_admin_referer( 'unarchiveblog' );
    387                 if ( ! current_user_can( 'manage_sites' ) )
    388                         wp_die( __( 'You do not have permission to access this page.' ) );
    389 
    390                 do_action( 'unarchive_blog', $id );
    391                 update_blog_status( $id, 'archived', '0' );
    392                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unarchive' ), wp_get_referer() ) );
    393                 exit();
    394         break;
    395 
    396         case 'activateblog':
    397                 check_admin_referer( 'activateblog' );
    398                 if ( ! current_user_can( 'manage_sites' ) )
    399                         wp_die( __( 'You do not have permission to access this page.' ) );
    400 
    401                 update_blog_status( $id, 'deleted', '0' );
    402                 do_action( 'activate_blog', $id );
    403                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'activate' ), wp_get_referer() ) );
    404                 exit();
    405         break;
    406 
    407         case 'deactivateblog':
    408                 check_admin_referer( 'deactivateblog' );
    409                 if ( ! current_user_can( 'manage_sites' ) )
    410                         wp_die( __( 'You do not have permission to access this page.' ) );
    411 
    412                 do_action( 'deactivate_blog', $id );
    413                 update_blog_status( $id, 'deleted', '1' );
    414                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'deactivate' ), wp_get_referer() ) );
    415                 exit();
    416         break;
    417 
    418         case 'unspamblog':
    419                 check_admin_referer( 'unspamblog' );
    420                 if ( ! current_user_can( 'manage_sites' ) )
    421                         wp_die( __( 'You do not have permission to access this page.' ) );
    422 
    423                 update_blog_status( $id, 'spam', '0' );
    424                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unspam' ), wp_get_referer() ) );
    425                 exit();
    426         break;
    427 
    428         case 'spamblog':
    429                 check_admin_referer( 'spamblog' );
    430                 if ( ! current_user_can( 'manage_sites' ) )
    431                         wp_die( __( 'You do not have permission to access this page.' ) );
    432 
    433                 update_blog_status( $id, 'spam', '1' );
    434                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'spam' ), wp_get_referer() ) );
    435                 exit();
    436         break;
    437 
    438         // Themes
    439     case 'updatethemes':
    440         if ( ! current_user_can( 'manage_network_themes' ) )
    441                 wp_die( __( 'You do not have permission to access this page.' ) );
    442 
    443         if ( is_array( $_POST['theme'] ) ) {
    444                         $themes = get_themes();
    445                         reset( $themes );
    446                         $allowed_themes = array();
    447                         foreach ( (array) $themes as $key => $theme ) {
    448                                 if ( $_POST['theme'][ esc_html( $theme['Stylesheet'] ) ] == 'enabled' )
    449                                         $allowed_themes[ esc_html( $theme['Stylesheet'] ) ] = true;
    450                         }
    451                         update_site_option( 'allowedthemes', $allowed_themes );
    452                 }
    453                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'themes' ),  wp_get_referer() ) );
    454                 exit();
    455         break;
    456 
    457         // Common
    458         case 'confirm':
    459                 if ( !headers_sent() ) {
    460                         nocache_headers();
    461                         header( 'Content-Type: text/html; charset=utf-8' );
    462                 }
    463                 if ( $current_site->blog_id == $id )
    464                         wp_die( __( 'You are not allowed to change the current site.' ) );
    465                 ?>
    466                 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    467                 <html xmlns="http://www.w3.org/1999/xhtml" <?php if ( function_exists( 'language_attributes' ) ) language_attributes(); ?>>
    468                         <head>
    469                                 <title><?php _e( 'WordPress &rsaquo; Confirm your action' ); ?></title>
    470 
    471                                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    472                                 <?php
    473                                 wp_admin_css( 'install', true );
    474                                 wp_admin_css( 'ie', true );
    475                                 ?>
    476                         </head>
    477                         <body>
    478                                 <h1 id="logo"><img alt="WordPress" src="<?php echo esc_attr( admin_url( 'images/wordpress-logo.png' ) ); ?>" /></h1>
    479                                 <form action="ms-edit.php?action=<?php echo esc_attr( $_GET['action2'] ) ?>" method="post">
    480                                         <input type="hidden" name="action" value="<?php echo esc_attr( $_GET['action2'] ) ?>" />
    481                                         <input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
    482                                         <input type="hidden" name="_wp_http_referer" value="<?php echo esc_attr( wp_get_referer() ); ?>" />
    483                                         <?php wp_nonce_field( $_GET['action2'], '_wpnonce', false ); ?>
    484                                         <p><?php echo esc_html( stripslashes( $_GET['msg'] ) ); ?></p>
    485                                         <p class="submit"><input class="button" type="submit" value="<?php _e( 'Confirm' ); ?>" /></p>
    486                                 </form>
    487                         </body>
    488                 </html>
    489                 <?php
    490         break;
    491 
    492         // Users
    493         case 'deleteuser':
    494                 if ( ! current_user_can( 'manage_network_users' ) )
    495                         wp_die( __( 'You do not have permission to access this page.' ) );
    496 
    497                 check_admin_referer( 'deleteuser' );
    498 
    499                 if ( $id != '0' && $id != '1' ) {
    500                         $_POST['allusers'] = array( $id ); // confirm_delete_users() can only handle with arrays
    501                         $title = __( 'Users' );
    502                         $parent_file = 'ms-admin.php';
    503                         require_once( 'admin-header.php' );
    504                         echo '<div class="wrap">';
    505                         confirm_delete_users( $_POST['allusers'] );
    506                         echo '</div>';
    507             require_once( 'admin-footer.php' );
    508             exit();
    509                 } else {
    510                         wp_redirect( admin_url( 'ms-users.php' ) );
    511                 }
    512         break;
    513 
    514         case 'allusers':
    515                 if ( ! current_user_can( 'manage_network_users' ) )
    516                         wp_die( __( 'You do not have permission to access this page.' ) );
    517 
    518                 if ( isset( $_POST['doaction']) || isset($_POST['doaction2'] ) ) {
    519                         check_admin_referer( 'bulk-ms-users', '_wpnonce_bulk-ms-users' );
    520 
    521                         if ( $_GET['action'] != -1 || $_POST['action2'] != -1 )
    522                                 $doaction = $_POST['action'] != -1 ? $_POST['action'] : $_POST['action2'];
    523 
    524                         foreach ( (array) $_POST['allusers'] as $key => $val ) {
    525                                 if ( !empty( $val ) ) {
    526                                         switch ( $doaction ) {
    527                                                 case 'delete':
    528                                                         $title = __( 'Users' );
    529                                                         $parent_file = 'ms-admin.php';
    530                                                         require_once( 'admin-header.php' );
    531                                                         echo '<div class="wrap">';
    532                                                         confirm_delete_users( $_POST['allusers'] );
    533                                                         echo '</div>';
    534                                             require_once( 'admin-footer.php' );
    535                                             exit();
    536                                         break;
    537 
    538                                                 case 'spam':
    539                                                         $user = new WP_User( $val );
    540                                                         if ( in_array( $user->user_login, get_super_admins() ) )
    541                                                                 wp_die( sprintf( __( 'Warning! User cannot be modified. The user %s is a network administrator.' ), esc_html( $user->user_login ) ) );
    542 
    543                                                         $userfunction = 'all_spam';
    544                                                         $blogs = get_blogs_of_user( $val, true );
    545                                                         foreach ( (array) $blogs as $key => $details ) {
    546                                                                 if ( $details->userblog_id != $current_site->blog_id ) // main blog not a spam !
    547                                                                         update_blog_status( $details->userblog_id, 'spam', '1' );
    548                                                         }
    549                                                         update_user_status( $val, 'spam', '1', 1 );
    550                                                 break;
    551 
    552                                                 case 'notspam':
    553                                                         $userfunction = 'all_notspam';
    554                                                         $blogs = get_blogs_of_user( $val, true );
    555                                                         foreach ( (array) $blogs as $key => $details )
    556                                                                 update_blog_status( $details->userblog_id, 'spam', '0' );
    557 
    558                                                         update_user_status( $val, 'spam', '0', 1 );
    559                                                 break;
    560                                         }
    561                                 }
    562                         }
    563 
    564                         wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $userfunction ), wp_get_referer() ) );
    565                         exit();
    566                 } else {
    567                         wp_redirect( admin_url( 'ms-users.php' ) );
    568                 }
    569         break;
    570 
    571         case 'dodelete':
    572                 check_admin_referer( 'ms-users-delete' );
    573                 if ( ! current_user_can( 'manage_network_users' ) )
    574                         wp_die( __( 'You do not have permission to access this page.' ) );
    575 
    576                 if ( ! empty( $_POST['blog'] ) && is_array( $_POST['blog'] ) ) {
    577                         foreach ( $_POST['blog'] as $id => $users ) {
    578                                 foreach ( $users as $blogid => $user_id ) {
    579                                         if ( ! empty( $_POST['delete'] ) && 'reassign' == $_POST['delete'][$blogid][$id] )
    580                                                 remove_user_from_blog( $id, $blogid, $user_id );
    581                                         else
    582                                                 remove_user_from_blog( $id, $blogid );
    583                                 }
    584                         }
    585                 }
    586                 $i = 0;
    587                 if ( is_array( $_POST['user'] ) && ! empty( $_POST['user'] ) )
    588                         foreach( $_POST['user'] as $id ) {
    589                                 wpmu_delete_user( $id );
    590                                 $i++;
    591                         }
    592 
    593                 if ( $i == 1 )
    594                         $deletefunction = 'delete';
    595                 else
    596                         $deletefunction = 'all_delete';
    597 
    598                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $deletefunction ), admin_url( 'ms-users.php' ) ) );
    599         break;
    600 
    601         case 'adduser':
    602                 check_admin_referer( 'add-user', '_wpnonce_add-user' );
    603                 if ( ! current_user_can( 'manage_network_users' ) )
    604                         wp_die( __( 'You do not have permission to access this page.' ) );
    605 
    606                 if ( is_array( $_POST['user'] ) == false )
    607                         wp_die( __( 'Cannot create an empty user.' ) );
    608                 $user = $_POST['user'];
    609                 if ( empty($user['username']) && empty($user['email']) )
    610                         wp_die( __( 'Missing username and email.' ) );
    611                 elseif ( empty($user['username']) )
    612                         wp_die( __( 'Missing username.' ) );
    613                 elseif ( empty($user['email']) )
    614                         wp_die( __( 'Missing email.' ) );
    615 
    616                 $password = wp_generate_password();
    617                 $user_id = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) );
    618 
    619                 if ( false == $user_id )
    620                         wp_die( __( 'Duplicated username or email address.' ) );
    621                 else
    622                         wp_new_user_notification( $user_id, $password );
    623 
    624                 if ( get_site_option( 'dashboard_blog' ) == false )
    625                         add_user_to_blog( $current_site->blog_id, $user_id, get_site_option( 'default_user_role', 'subscriber' ) );
    626                 else
    627                         add_user_to_blog( get_site_option( 'dashboard_blog' ), $user_id, get_site_option( 'default_user_role', 'subscriber' ) );
    628 
    629                 wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'add' ), wp_get_referer() ) );
    630                 exit();
    631         break;
    632 
    633         default:
    634                 wp_redirect( admin_url( 'ms-admin.php' ) );
    635         break;
    636 }
    637 ?>
     12wp_redirect( network_admin_url() );
     13 No newline at end of file
  • wp-admin/includes/menu.php

    Property changes on: wp-admin/ms-edit.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
     1<?php
     2
     3/**
     4 * Build Administration Menu.
     5 *
     6 * @package WordPress
     7 * @subpackage Administration
     8 */
     9
     10if ( is_network_admin() )
     11        do_action('_network_admin_menu');
     12else
     13        do_action('_admin_menu');
     14
     15// Create list of page plugin hook names.
     16foreach ($menu as $menu_page) {
     17        if ( false !== $pos = strpos($menu_page[2], '?') ) {
     18                // Handle post_type=post|page|foo pages.
     19                $hook_name = substr($menu_page[2], 0, $pos);
     20                $hook_args = substr($menu_page[2], $pos + 1);
     21                wp_parse_str($hook_args, $hook_args);
     22                // Set the hook name to be the post type.
     23                if ( isset($hook_args['post_type']) )
     24                        $hook_name = $hook_args['post_type'];
     25                else
     26                        $hook_name = basename($hook_name, '.php');
     27                unset($hook_args);
     28        } else {
     29                $hook_name = basename($menu_page[2], '.php');
     30        }
     31        $hook_name = sanitize_title($hook_name);
     32
     33        if ( isset($compat[$hook_name]) )
     34                $hook_name = $compat[$hook_name];
     35        elseif ( !$hook_name )
     36                continue;
     37
     38        $admin_page_hooks[$menu_page[2]] = $hook_name;
     39}
     40unset($menu_page, $compat);
     41
     42$_wp_submenu_nopriv = array();
     43$_wp_menu_nopriv = array();
     44// Loop over submenus and remove pages for which the user does not have privs.
     45foreach ( array( 'submenu' ) as $sub_loop ) {
     46        foreach ($$sub_loop as $parent => $sub) {
     47                foreach ($sub as $index => $data) {
     48                        if ( ! current_user_can($data[1]) ) {
     49                                unset(${$sub_loop}[$parent][$index]);
     50                                $_wp_submenu_nopriv[$parent][$data[2]] = true;
     51                        }
     52                }
     53                unset($index, $data);
     54
     55                if ( empty(${$sub_loop}[$parent]) )
     56                        unset(${$sub_loop}[$parent]);
     57        }
     58        unset($sub, $parent);
     59}
     60unset($sub_loop);
     61
     62// Loop over the top-level menu.
     63// Menus for which the original parent is not accessible due to lack of privs will have the next
     64// submenu in line be assigned as the new menu parent.
     65foreach ( $menu as $id => $data ) {
     66        if ( empty($submenu[$data[2]]) )
     67                continue;
     68        $subs = $submenu[$data[2]];
     69        $first_sub = array_shift($subs);
     70        $old_parent = $data[2];
     71        $new_parent = $first_sub[2];
     72        // If the first submenu is not the same as the assigned parent,
     73        // make the first submenu the new parent.
     74        if ( $new_parent != $old_parent ) {
     75                $_wp_real_parent_file[$old_parent] = $new_parent;
     76                $menu[$id][2] = $new_parent;
     77
     78                foreach ($submenu[$old_parent] as $index => $data) {
     79                        $submenu[$new_parent][$index] = $submenu[$old_parent][$index];
     80                        unset($submenu[$old_parent][$index]);
     81                }
     82                unset($submenu[$old_parent], $index);
     83
     84                if ( isset($_wp_submenu_nopriv[$old_parent]) )
     85                        $_wp_submenu_nopriv[$new_parent] = $_wp_submenu_nopriv[$old_parent];
     86        }
     87}
     88unset($id, $data, $subs, $first_sub, $old_parent, $new_parent);
     89
     90if ( is_network_admin() )
     91        do_action('network_admin_menu', '');
     92else
     93        do_action('admin_menu', '');
     94
     95// Remove menus that have no accessible submenus and require privs that the user does not have.
     96// Run re-parent loop again.
     97foreach ( $menu as $id => $data ) {
     98        if ( ! current_user_can($data[1]) )
     99                $_wp_menu_nopriv[$data[2]] = true;
     100
     101        // If submenu is empty...
     102        if ( empty($submenu[$data[2]]) ) {
     103                // And user doesn't have privs, remove menu.
     104                if ( isset( $_wp_menu_nopriv[$data[2]] ) ) {
     105                        unset($menu[$id]);
     106                }
     107        }
     108}
     109unset($id, $data);
     110
     111// Remove any duplicated seperators
     112$seperator_found = false;
     113foreach ( $menu as $id => $data ) {
     114        if ( 0 == strcmp('wp-menu-separator', $data[4] ) ) {
     115                if (false == $seperator_found) {
     116                        $seperator_found = true;
     117                } else {
     118                        unset($menu[$id]);
     119                        $seperator_found = false;
     120                }
     121        } else {
     122                $seperator_found = false;
     123        }
     124}
     125unset($id, $data);
     126
     127function add_cssclass($add, $class) {
     128        $class = empty($class) ? $add : $class .= ' ' . $add;
     129        return $class;
     130}
     131
     132function add_menu_classes($menu) {
     133
     134        $first = $lastorder = false;
     135        $i = 0;
     136        $mc = count($menu);
     137        foreach ( $menu as $order => $top ) {
     138                $i++;
     139
     140                if ( 0 == $order ) { // dashboard is always shown/single
     141                        $menu[0][4] = add_cssclass('menu-top-first', $top[4]);
     142                        $lastorder = 0;
     143                        continue;
     144                }
     145
     146                if ( 0 === strpos($top[2], 'separator') ) { // if separator
     147                        $first = true;
     148                        $c = $menu[$lastorder][4];
     149                        $menu[$lastorder][4] = add_cssclass('menu-top-last', $c);
     150                        continue;
     151                }
     152
     153                if ( $first ) {
     154                        $c = $menu[$order][4];
     155                        $menu[$order][4] = add_cssclass('menu-top-first', $c);
     156                        $first = false;
     157                }
     158
     159                if ( $mc == $i ) { // last item
     160                        $c = $menu[$order][4];
     161                        $menu[$order][4] = add_cssclass('menu-top-last', $c);
     162                }
     163
     164                $lastorder = $order;
     165        }
     166
     167        return apply_filters( 'add_menu_classes', $menu );
     168}
     169
     170uksort($menu, "strnatcasecmp"); // make it all pretty
     171
     172if ( apply_filters('custom_menu_order', false) ) {
     173        $menu_order = array();
     174        foreach ( $menu as $menu_item ) {
     175                $menu_order[] = $menu_item[2];
     176        }
     177        unset($menu_item);
     178        $default_menu_order = $menu_order;
     179        $menu_order = apply_filters('menu_order', $menu_order);
     180        $menu_order = array_flip($menu_order);
     181        $default_menu_order = array_flip($default_menu_order);
     182
     183        function sort_menu($a, $b) {
     184                global $menu_order, $default_menu_order;
     185                $a = $a[2];
     186                $b = $b[2];
     187                if ( isset($menu_order[$a]) && !isset($menu_order[$b]) ) {
     188                        return -1;
     189                } elseif ( !isset($menu_order[$a]) && isset($menu_order[$b]) ) {
     190                        return 1;
     191                } elseif ( isset($menu_order[$a]) && isset($menu_order[$b]) ) {
     192                        if ( $menu_order[$a] == $menu_order[$b] )
     193                                return 0;
     194                        return ($menu_order[$a] < $menu_order[$b]) ? -1 : 1;
     195                } else {
     196                        return ($default_menu_order[$a] <= $default_menu_order[$b]) ? -1 : 1;
     197                }
     198        }
     199
     200        usort($menu, 'sort_menu');
     201        unset($menu_order, $default_menu_order);
     202}
     203
     204$menu = add_menu_classes($menu);
     205
     206if ( !user_can_access_admin_page() ) {
     207        do_action('admin_page_access_denied');
     208        wp_die( __('You do not have sufficient permissions to access this page.') );
     209}
     210
     211?>
     212 No newline at end of file
  • wp-admin/admin.php

    Property changes on: wp-admin/includes/menu.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
    1414if ( !defined('WP_ADMIN') )
    1515        define('WP_ADMIN', TRUE);
    1616
     17if ( !defined('WP_NETWORK_ADMIN') )
     18        define('WP_NETWORK_ADMIN', FALSE);
     19
    1720if ( isset($_GET['import']) && !defined('WP_LOAD_IMPORTERS') )
    1821        define('WP_LOAD_IMPORTERS', true);
    1922
     
    9093else
    9194        $taxnow = '';
    9295
    93 require(ABSPATH . 'wp-admin/menu.php');
     96if ( WP_NETWORK_ADMIN )
     97        require(ABSPATH . 'wp-admin/network/menu.php');
     98else
     99        require(ABSPATH . 'wp-admin/menu.php');
    94100
    95101if ( current_user_can( 'manage_options' ) )
    96102        @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', '256M' ) );
  • wp-admin/ms-sites.php

     
    99
    1010require_once( './admin.php' );
    1111
    12 if ( ! is_multisite() )
    13         wp_die( __( 'Multisite support is not enabled.' ) );
    14 
    15 if ( ! current_user_can( 'manage_sites' ) )
    16         wp_die( __( 'You do not have permission to access this page.' ) );
    17 
    18 $title = __( 'Sites' );
    19 $parent_file = 'ms-admin.php';
    20 
    21 if ( isset( $_GET['action'] ) && 'editblog' == $_GET['action'] ) {
    22         add_contextual_help($current_screen,
    23                 '<p>' . __('This extensive list of options has five modules: Site Info, Site Options, allowing Site Themes for this given site, changing user roles and passwords for that site, adding a new user, and Miscellaneous Site Actions (upload size limits).') . '</p>' .
    24                 '<p>' . __('Note that some fields in Site Options are grayed out and say Serialized Data. These are stored values in the database which you cannot change from here.') . '</p>' .
    25                 '<p><strong>' . __('For more information:') . '</strong></p>' .
    26                 '<p>' . __('<a href="http://codex.wordpress.org/Super_Admin_Sites_Edit_Site" target="_blank">Documentation on Editing Sites</a>') . '</p>' .
    27                 '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    28         );
    29 } else {
    30         add_contextual_help($current_screen,
    31                 '<p>' . __('Add New takes you farther down on this same page. You can search for a site by Name, ID number, or IP address. Screen Options allows you to choose how many sites to display on one page.') . '</p>' .
    32                 '<p>' . __('This is the main table of all sites on this network. Switch between list and excerpt views by using the icons above the right side of the table.') . '</p>' .
    33                 '<p>' . __('Hovering over each site reveals seven options (three for the primary site):') . '</p>' .
    34                 '<ul><li>' . __('an Edit link to a separate Edit Site screen.') . '</li>' .
    35                 '<li>' . __('Backend means the Dashboard for that site.') . '</li>' .
    36                 '<li>' . __('Deactivate, Archive, and Spam which lead to confirmation screens. These actions can be reversed later.') . '</li>' .
    37                 '<li>' . __('Delete which is a permanent action after the confirmations screen.') . '</li>' .
    38                 '<li>' . __('Visit to go to the frontend site live.') . '</li></ul>' .
    39                 '<p>' . __('The site ID is used internally, and is not shown on the front end of the site or to users/viewers.') . '</p>' .
    40                 '<p>' . __('Clicking on bold settings can re-sort this table. The upper right icons switch between list and excerpt views.') . '</p>' .
    41                 '<p>' . __("Clicking on Add Site, after filling out the address, title, and admin's email address, adds the site instantly to the network and this table. You may want to then click on the action link to edit options for that site.") . '</p>' .
    42                 '<p>' . __('If the admin email for the new site does not exist in the database, a new user will also be created.') . '</p>' .
    43                 '<p><strong>' . __('For more information:') . '</strong></p>' .
    44                 '<p>' . __('<a href="http://codex.wordpress.org/Super_Admin_Sites_SubPanel" target="_blank">Documentation on Sites</a>') . '</p>' .
    45                 '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    46         );
    47 }
    48 
    49 wp_enqueue_script( 'admin-forms' );
    50 
    51 require_once( './admin-header.php' );
    52 
    53 $id = isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0;
    54 
    55 if ( isset( $_GET['updated'] ) && $_GET['updated'] == 'true' && ! empty( $_GET['action'] ) ) {
    56         ?>
    57         <div id="message" class="updated"><p>
    58                 <?php
    59                 switch ( $_GET['action'] ) {
    60                         case 'all_notspam':
    61                                 _e( 'Sites removed from spam.' );
    62                         break;
    63                         case 'all_spam':
    64                                 _e( 'Sites marked as spam.' );
    65                         break;
    66                         case 'all_delete':
    67                                 _e( 'Sites deleted.' );
    68                         break;
    69                         case 'delete':
    70                                 _e( 'Site deleted.' );
    71                         break;
    72                         case 'add-blog':
    73                                 _e( 'Site added.' );
    74                         break;
    75                         case 'archive':
    76                                 _e( 'Site archived.' );
    77                         break;
    78                         case 'unarchive':
    79                                 _e( 'Site unarchived.' );
    80                         break;
    81                         case 'activate':
    82                                 _e( 'Site activated.' );
    83                         break;
    84                         case 'deactivate':
    85                                 _e( 'Site deactivated.' );
    86                         break;
    87                         case 'unspam':
    88                                 _e( 'Site removed from spam.' );
    89                         break;
    90                         case 'spam':
    91                                 _e( 'Site marked as spam.' );
    92                         break;
    93                         default:
    94                                 _e( 'Settings saved.' );
    95                         break;
    96                 }
    97                 ?>
    98         </p></div>
    99         <?php
    100 }
    101 
    102 $action = isset( $_GET['action'] ) ? $_GET['action'] : 'list';
    103 
    104 switch ( $action ) {
    105         // Edit site
    106         case 'editblog':
    107                 $blog_prefix = $wpdb->get_blog_prefix( $id );
    108                 $options = $wpdb->get_results( "SELECT * FROM {$blog_prefix}options WHERE option_name NOT LIKE '\_%' AND option_name NOT LIKE '%user_roles'" );
    109                 $details = get_blog_details( $id );
    110                 if ( $details->site_id != $wpdb->siteid )
    111                         wp_die( __( 'You do not have permission to access this page.' ) );
    112 
    113                 $editblog_roles = get_blog_option( $id, "{$blog_prefix}user_roles" );
    114                 $is_main_site = is_main_site( $id );
    115                 ?>
    116                 <div class="wrap">
    117                 <?php screen_icon(); ?>
    118                 <h2><?php _e( 'Edit Site' ); ?> - <a href="<?php echo esc_url( get_home_url( $id ) ); ?>"><?php echo esc_url( get_home_url( $id ) ); ?></a></h2>
    119                 <form method="post" action="ms-edit.php?action=updateblog">
    120                         <?php wp_nonce_field( 'editblog' ); ?>
    121                         <input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
    122                         <div class="metabox-holder" style="width:49%;float:left;">
    123                                 <div id="blogedit_bloginfo" class="postbox">
    124                                 <h3 class="hndle"><span><?php _e( 'Site info (wp_blogs)' ); ?></span></h3>
    125                                 <div class="inside">
    126                                         <table class="form-table">
    127                                                 <tr class="form-field form-required">
    128                                                         <th scope="row"><?php _e( 'Domain' ) ?></th>
    129                                                         <?php
    130                                                         $protocol = is_ssl() ? 'https://' : 'http://';
    131                                                         if ( $is_main_site ) { ?>
    132                                                         <td><code><?php echo $protocol; echo esc_attr( $details->domain ) ?></code></td>
    133                                                         <?php } else { ?>
    134                                                         <td><?php echo $protocol; ?><input name="blog[domain]" type="text" id="domain" value="<?php echo esc_attr( $details->domain ) ?>" size="33" /></td>
    135                                                         <?php } ?>
    136                                                 </tr>
    137                                                 <tr class="form-field form-required">
    138                                                         <th scope="row"><?php _e( 'Path' ) ?></th>
    139                                                         <?php if ( $is_main_site ) { ?>
    140                                                         <td><code><?php echo esc_attr( $details->path ) ?></code></td>
    141                                                         <?php } else { ?>
    142                                                         <td><input name="blog[path]" type="text" id="path" value="<?php echo esc_attr( $details->path ) ?>" size="40" style='margin-bottom:5px;' />
    143                                                         <br /><input type="checkbox" style="width:20px;" name="update_home_url" value="update" <?php if ( get_blog_option( $id, 'siteurl' ) == untrailingslashit( get_blogaddress_by_id ($id ) ) || get_blog_option( $id, 'home' ) == untrailingslashit( get_blogaddress_by_id( $id ) ) ) echo 'checked="checked"'; ?> /> <?php _e( 'Update <code>siteurl</code> and <code>home</code> as well.' ); ?></td>
    144                                                         <?php } ?>
    145                                                 </tr>
    146                                                 <tr class="form-field">
    147                                                         <th scope="row"><?php _ex( 'Registered', 'site' ) ?></th>
    148                                                         <td><input name="blog[registered]" type="text" id="blog_registered" value="<?php echo esc_attr( $details->registered ) ?>" size="40" /></td>
    149                                                 </tr>
    150                                                 <tr class="form-field">
    151                                                         <th scope="row"><?php _e('Last Updated') ?></th>
    152                                                         <td><input name="blog[last_updated]" type="text" id="blog_last_updated" value="<?php echo esc_attr( $details->last_updated ) ?>" size="40" /></td>
    153                                                 </tr>
    154                                                 <?php
    155                                                 $radio_fields = array( 'public' => __( 'Public' ) );
    156                                                 if ( ! $is_main_site ) {
    157                                                         $radio_fields['archived'] = __( 'Archived' );
    158                                                         $radio_fields['spam']     = _x( 'Spam', 'site' );
    159                                                         $radio_fields['deleted']  = __( 'Deleted' );
    160                                                 }
    161                                                 $radio_fields['mature'] = __( 'Mature' );
    162                                                 foreach ( $radio_fields as $field_key => $field_label ) {
    163                                                 ?>
    164                                                 <tr>
    165                                                         <th scope="row"><?php echo $field_label; ?></th>
    166                                                         <td>
    167                                                                 <input type="radio" name="blog[<?php echo $field_key; ?>]" id="blog_<?php echo $field_key; ?>_1" value="1"<?php checked( $details->$field_key, 1 ); ?> />
    168                                                                 <label for="blog_<?php echo $field_key; ?>_1"><?php _e('Yes'); ?></label>
    169                                                                 <input type="radio" name="blog[<?php echo $field_key; ?>]" id="blog_<?php echo $field_key; ?>_0" value="0"<?php checked( $details->$field_key, 0 ); ?> />
    170                                                                 <label for="blog_<?php echo $field_key; ?>_0"><?php _e('No'); ?></label>
    171                                                         </td>
    172                                                 </tr>
    173                                                 <?php } ?>
    174                                         </table>
    175                                         <p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Update Options' ) ?>" /></p>
    176                                 </div>
    177                                 </div>
    178 
    179                                 <div id="blogedit_blogoptions" class="postbox" >
    180                                 <h3 class="hndle"><span><?php printf( __( 'Site options (%soptions)' ), $blog_prefix ); ?></span></h3>
    181                                 <div class="inside">
    182                                         <table class="form-table">
    183                                                 <?php
    184                                                 $editblog_default_role = 'subscriber';
    185                                                 foreach ( $options as $option ) {
    186                                                         if ( $option->option_name == 'default_role' )
    187                                                                 $editblog_default_role = $option->option_value;
    188                                                         $disabled = false;
    189                                                         $class = 'all-options';
    190                                                         if ( is_serialized( $option->option_value ) ) {
    191                                                                 if ( is_serialized_string( $option->option_value ) ) {
    192                                                                         $option->option_value = esc_html( maybe_unserialize( $option->option_value ), 'single' );
    193                                                                 } else {
    194                                                                         $option->option_value = 'SERIALIZED DATA';
    195                                                                         $disabled = true;
    196                                                                         $class = 'all-options disabled';
    197                                                                 }
    198                                                         }
    199                                                         if ( strpos( $option->option_value, "\n" ) !== false ) {
    200                                                         ?>
    201                                                                 <tr class="form-field">
    202                                                                         <th scope="row"><?php echo ucwords( str_replace( "_", " ", $option->option_name ) ) ?></th>
    203                                                                         <td><textarea class="<?php echo $class; ?>" rows="5" cols="40" name="option[<?php echo esc_attr( $option->option_name ) ?>]" id="<?php echo esc_attr( $option->option_name ) ?>"<?php disabled( $disabled ) ?>><?php echo wp_htmledit_pre( $option->option_value ) ?></textarea></td>
    204                                                                 </tr>
    205                                                         <?php
    206                                                         } else {
    207                                                         ?>
    208                                                                 <tr class="form-field">
    209                                                                         <th scope="row"><?php echo esc_html( ucwords( str_replace( "_", " ", $option->option_name ) ) ); ?></th>
    210                                                                         <?php if ( $is_main_site && in_array( $option->option_name, array( 'siteurl', 'home' ) ) ) { ?>
    211                                                                         <td><code><?php echo esc_html( $option->option_value ) ?></code></td>
    212                                                                         <?php } else { ?>
    213                                                                         <td><input class="<?php echo $class; ?>" name="option[<?php echo esc_attr( $option->option_name ) ?>]" type="text" id="<?php echo esc_attr( $option->option_name ) ?>" value="<?php echo esc_attr( $option->option_value ) ?>" size="40" <?php disabled( $disabled ) ?> /></td>
    214                                                                         <?php } ?>
    215                                                                 </tr>
    216                                                         <?php
    217                                                         }
    218                                                 } // End foreach
    219                                                 ?>
    220                                         </table>
    221                                         <p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Update Options' ) ?>" /></p>
    222                                 </div>
    223                                 </div>
    224                         </div>
    225 
    226                         <div class="metabox-holder" style="width:49%;float:right;">
    227                                 <?php
    228                                 // Site Themes
    229                                 $themes = get_themes();
    230                                 $blog_allowed_themes = wpmu_get_blog_allowedthemes( $id );
    231                                 $allowed_themes = get_site_option( 'allowedthemes' );
    232 
    233                                 if ( ! $allowed_themes )
    234                                         $allowed_themes = array_keys( $themes );
    235 
    236                                 $out = '';
    237                                 foreach ( $themes as $key => $theme ) {
    238                                         $theme_key = esc_html( $theme['Stylesheet'] );
    239                                         if ( ! isset( $allowed_themes[$theme_key] ) ) {
    240                                                 $checked = isset( $blog_allowed_themes[ $theme_key ] ) ? 'checked="checked"' : '';
    241                                                 $out .= '<tr class="form-field form-required">
    242                                                                 <th title="' . esc_attr( $theme["Description"] ).'" scope="row">' . esc_html( $key ) . '</th>
    243                                                                 <td><label><input name="theme[' . esc_attr( $theme_key ) . ']" type="checkbox" style="width:20px;" value="on" '.$checked.'/> ' . __( 'Active' ) . '</label></td>
    244                                                         </tr>';
    245                                         }
    246                                 }
    247 
    248                                 if ( $out != '' ) {
    249                                 ?>
    250                                 <div id="blogedit_blogthemes" class="postbox">
    251                                 <h3 class="hndle"><span><?php esc_html_e( 'Site Themes' ); ?></span></h3>
    252                                 <div class="inside">
    253                                         <p class="description"><?php _e( 'Activate the themename of an existing theme and hit "Update Options" to allow the theme for this site.' ) ?></p>
    254                                         <table class="form-table">
    255                                                 <?php echo $out; ?>
    256                                         </table>
    257                                         <p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Update Options' ) ?>" /></p>
    258                                 </div></div>
    259                                 <?php }
    260 
    261                                 // Site users
    262                                 $blogusers = get_users_of_blog( $id );
    263                                 if ( is_array( $blogusers ) ) {
    264                                         echo '<div id="blogedit_blogusers" class="postbox"><h3 class="hndle"><span>' . __( 'Site Users' ) . '</span></h3><div class="inside">';
    265                                         echo '<table class="form-table">';
    266                                         echo "<tr><th>" . __( 'User' ) . "</th><th>" . __( 'Role' ) . "</th><th>" . __( 'Password' ) . "</th><th>" . __( 'Remove' ) . "</th></tr>";
    267                                         reset( $blogusers );
    268                                         foreach ( (array) $blogusers as $key => $val ) {
    269                                                 if ( isset( $val->meta_value ) && ! $val->meta_value )
    270                                                         continue;
    271                                                 $t = @unserialize( $val->meta_value );
    272                                                 if ( is_array( $t ) ) {
    273                                                         reset( $t );
    274                                                         $existing_role = key( $t );
    275                                                 }
    276                                                 echo '<tr><td><a href="user-edit.php?user_id=' . $val->user_id . '">' . $val->user_login . '</a></td>';
    277                                                 if ( $val->user_id != $current_user->data->ID ) {
    278                                                         ?>
    279                                                         <td>
    280                                                                 <select name="role[<?php echo $val->user_id ?>]" id="new_role_1"><?php
    281                                                                         foreach ( $editblog_roles as $role => $role_assoc ){
    282                                                                                 $name = translate_user_role( $role_assoc['name'] );
    283                                                                                 echo '<option ' . selected( $role, $existing_role, false ) . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>';
    284                                                                         }
    285                                                                         ?>
    286                                                                 </select>
    287                                                         </td>
    288                                                         <td>
    289                                                                 <input type="text" name="user_password[<?php echo esc_attr( $val->user_id ) ?>]" />
    290                                                         </td>
    291                                                         <?php
    292                                                         echo '<td><input title="' . __( 'Click to remove user' ) . '" type="checkbox" name="blogusers[' . esc_attr( $val->user_id ) . ']" /></td>';
    293                                                 } else {
    294                                                         echo "<td><strong>" . __ ( 'N/A' ) . "</strong></td><td><strong>" . __ ( 'N/A' ) . "</strong></td><td><strong>" . __( 'N/A' ) . "</strong></td>";
    295                                                 }
    296                                                 echo '</tr>';
    297                                         }
    298                                         echo "</table>";
    299                                         echo '<p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="' . esc_attr__( 'Update Options' ) . '" /></p>';
    300                                         echo "</div></div>";
    301                                 }
    302                                 ?>
    303 
    304                                 <div id="blogedit_blogadduser" class="postbox">
    305                                 <h3 class="hndle"><span><?php _e( 'Add a new user' ); ?></span></h3>
    306                                 <div class="inside">
    307                                         <p class="description"><?php _e( 'Enter the username of an existing user and hit &#8220;Update Options&#8221; to add the user.' ) ?></p>
    308                                         <table class="form-table">
    309                                                         <tr>
    310                                                                 <th scope="row"><?php _e( 'User&nbsp;Login:' ) ?></th>
    311                                                                 <td><input type="text" name="newuser" id="newuser" /></td>
    312                                                         </tr>
    313                                                         <tr>
    314                                                                 <th scope="row"><?php _e( 'Role:' ) ?></th>
    315                                                                 <td>
    316                                                                         <select name="new_role" id="new_role_0">
    317                                                                         <?php
    318                                                                         reset( $editblog_roles );
    319                                                                         foreach ( $editblog_roles as $role => $role_assoc ){
    320                                                                                 $name = translate_user_role( $role_assoc['name'] );
    321                                                                                 $selected = ( $role == $editblog_default_role ) ? 'selected="selected"' : '';
    322                                                                                 echo '<option ' . $selected . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>';
    323                                                                         }
    324                                                                         ?>
    325                                                                         </select>
    326                                                                 </td>
    327                                                         </tr>
    328                                                 </table>
    329                                         <p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Update Options' ) ?>" /></p>
    330                                 </div>
    331                                 </div>
    332 
    333                                 <div id="blogedit_miscoptions" class="postbox">
    334                                 <h3 class="hndle"><span><?php _e( 'Misc Site Actions' ) ?></span></h3>
    335                                 <div class="inside">
    336                                         <table class="form-table">
    337                                                         <?php do_action( 'wpmueditblogaction', $id ); ?>
    338                                         </table>
    339                                         <p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Update Options' ) ?>" /></p>
    340                                 </div>
    341                                 </div>
    342                         </div>
    343 
    344                         <div style="clear:both;"></div>
    345                 </form>
    346                 </div>
    347                 <?php
    348         break;
    349 
    350         // List sites
    351         case 'list':
    352         default:
    353                 $pagenum = isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 0;
    354                 if ( empty($pagenum) )
    355                         $pagenum = 1;
    356 
    357                 $per_page = (int) get_user_option( 'ms_sites_per_page' );
    358                 if ( empty( $per_page ) || $per_page < 1 )
    359                         $per_page = 15;
    360 
    361                 $per_page = apply_filters( 'ms_sites_per_page', $per_page );
    362 
    363                 $s = isset( $_GET['s'] ) ? stripslashes( trim( $_GET[ 's' ] ) ) : '';
    364                 $like_s = esc_sql( like_escape( $s ) );
    365 
    366                 $query = "SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' ";
    367 
    368                 if ( isset( $_GET['searchaction'] ) ) {
    369                         if ( 'name' == $_GET['searchaction'] ) {
    370                                 $query .= " AND ( {$wpdb->blogs}.domain LIKE '%{$like_s}%' OR {$wpdb->blogs}.path LIKE '%{$like_s}%' ) ";
    371                         } elseif ( 'id' == $_GET['searchaction'] ) {
    372                                 $query .= " AND {$wpdb->blogs}.blog_id = '{$like_s}' ";
    373                         } elseif ( 'ip' == $_GET['searchaction'] ) {
    374                                 $query = "SELECT *
    375                                         FROM {$wpdb->blogs}, {$wpdb->registration_log}
    376                                         WHERE site_id = '{$wpdb->siteid}'
    377                                         AND {$wpdb->blogs}.blog_id = {$wpdb->registration_log}.blog_id
    378                                         AND {$wpdb->registration_log}.IP LIKE ('%{$like_s}%')";
    379                         }
    380                 }
    381 
    382                 $order_by = isset( $_GET['sortby'] ) ? $_GET['sortby'] : 'id';
    383                 if ( $order_by == 'registered' ) {
    384                         $query .= ' ORDER BY registered ';
    385                 } elseif ( $order_by == 'lastupdated' ) {
    386                         $query .= ' ORDER BY last_updated ';
    387                 } elseif ( $order_by == 'blogname' ) {
    388                         $query .= ' ORDER BY domain ';
    389                 } else {
    390                         $order_by = 'id';
    391                         $query .= " ORDER BY {$wpdb->blogs}.blog_id ";
    392                 }
    393 
    394                 $order = ( isset( $_GET['order'] ) && 'DESC' == $_GET['order'] ) ? "DESC" : "ASC";
    395                 $query .= $order;
    396 
    397                 $total = $wpdb->get_var( str_replace( 'SELECT *', 'SELECT COUNT(blog_id)', $query ) );
    398 
    399                 $query .= " LIMIT " . intval( ( $pagenum - 1 ) * $per_page ) . ", " . intval( $per_page );
    400                 $blog_list = $wpdb->get_results( $query, ARRAY_A );
    401 
    402                 $num_pages = ceil($total / $per_page);
    403                 $page_links = paginate_links( array(
    404                         'base' => add_query_arg( 'paged', '%#%' ),
    405                         'format' => '',
    406                         'prev_text' => __( '&laquo;' ),
    407                         'next_text' => __( '&raquo;' ),
    408                         'total' => $num_pages,
    409                         'current' => $pagenum
    410                 ));
    411 
    412                 if ( empty( $_GET['mode'] ) )
    413                         $mode = 'list';
    414                 else
    415                         $mode = esc_attr( $_GET['mode'] );
    416                 ?>
    417 
    418                 <div class="wrap">
    419                 <?php screen_icon(); ?>
    420                 <h2><?php _e('Sites') ?>
    421                 <a href="#form-add-site" class="button add-new-h2"><?php echo esc_html_x( 'Add New', 'sites' ); ?></a>
    422                 <?php
    423                 if ( isset( $_GET['s'] ) && $_GET['s'] )
    424                 printf( '<span class="subtitle">' . __( 'Search results for &#8220;%s&#8221;' ) . '</span>', esc_html( $s ) );
    425                 ?>
    426                 </h2>
    427 
    428                 <form action="ms-sites.php" method="get" id="ms-search">
    429                 <p class="search-box">
    430                 <input type="hidden" name="action" value="blogs" />
    431                 <input type="text" name="s" value="<?php echo esc_attr( $s ); ?>" />
    432                 <input type="submit" class="button" value="<?php esc_attr_e( 'Search Site by' ) ?>" />
    433                 <select name="searchaction">
    434                         <option value="name" selected="selected"><?php _e( 'Name' ); ?></option>
    435                         <option value="id"><?php _e( 'ID' ); ?></option>
    436                         <option value="ip"><?php _e( 'IP address' ); ?></option>
    437                 </select>
    438                 </p>
    439                 </form>
    440 
    441                 <form id="form-site-list" action="ms-edit.php?action=allblogs" method="post">
    442                 <input type="hidden" name="mode" value="<?php echo esc_attr( $mode ); ?>" />
    443                 <div class="tablenav">
    444                 <div class="alignleft actions">
    445                         <select name="action">
    446                                 <option value="-1" selected="selected"><?php _e( 'Bulk Actions' ); ?></option>
    447                                 <option value="delete"><?php _e( 'Delete' ); ?></option>
    448                                 <option value="spam"><?php _ex( 'Mark as Spam', 'site' ); ?></option>
    449                                 <option value="notspam"><?php _ex( 'Not Spam', 'site' ); ?></option>
    450                         </select>
    451                         <input type="submit" value="<?php esc_attr_e( 'Apply' ); ?>" name="doaction" id="doaction" class="button-secondary action" />
    452                         <?php wp_nonce_field( 'bulk-ms-sites', '_wpnonce_bulk-ms-sites' ); ?>
    453                 </div>
    454 
    455                 <?php if ( $page_links ) { ?>
    456                 <div class="tablenav-pages">
    457                 <?php $page_links_text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>%s',
    458                 number_format_i18n( ( $pagenum - 1 ) * $per_page + 1 ),
    459                 number_format_i18n( min( $pagenum * $per_page, $total ) ),
    460                 number_format_i18n( $total ),
    461                 $page_links
    462                 ); echo $page_links_text; ?>
    463                 </div>
    464                 <?php } ?>
    465 
    466                 <div class="view-switch">
    467                         <a href="<?php echo esc_url( add_query_arg( 'mode', 'list', $_SERVER['REQUEST_URI'] ) ) ?>"><img <?php if ( 'list' == $mode ) echo 'class="current"'; ?> id="view-switch-list" src="<?php echo esc_url( includes_url( 'images/blank.gif' ) ); ?>" width="20" height="20" title="<?php _e( 'List View' ) ?>" alt="<?php _e( 'List View' ) ?>" /></a>
    468                         <a href="<?php echo esc_url( add_query_arg( 'mode', 'excerpt', $_SERVER['REQUEST_URI'] ) ) ?>"><img <?php if ( 'excerpt' == $mode ) echo 'class="current"'; ?> id="view-switch-excerpt" src="<?php echo esc_url( includes_url( 'images/blank.gif' ) ); ?>" width="20" height="20" title="<?php _e( 'Excerpt View' ) ?>" alt="<?php _e( 'Excerpt View' ) ?>" /></a>
    469                 </div>
    470 
    471                 </div>
    472 
    473                 <div class="clear"></div>
    474 
    475                 <?php
    476                 // define the columns to display, the syntax is 'internal name' => 'display name'
    477                 $blogname_columns = ( is_subdomain_install() ) ? __( 'Domain' ) : __( 'Path' );
    478                 $sites_columns = array(
    479                         'id'           => __( 'ID' ),
    480                         'blogname'     => $blogname_columns,
    481                         'lastupdated'  => __( 'Last Updated'),
    482                         'registered'   => _x( 'Registered', 'site' ),
    483                         'users'        => __( 'Users' )
    484                 );
    485 
    486                 if ( has_filter( 'wpmublogsaction' ) )
    487                         $sites_columns['plugins'] = __( 'Actions' );
    488 
    489                 $sites_columns = apply_filters( 'wpmu_blogs_columns', $sites_columns );
    490                 ?>
    491 
    492                 <table class="widefat">
    493                         <thead>
    494                                 <tr>
    495                                 <th class="manage-column column-cb check-column" id="cb" scope="col">
    496                                         <input type="checkbox" />
    497                                 </th>
    498                                 <?php
    499                                 $col_url = '';
    500                                 foreach($sites_columns as $column_id => $column_display_name) {
    501                                         $column_link = "<a href='";
    502                                         $order2 = '';
    503                                         if ( $order_by == $column_id )
    504                                                 $order2 = ( $order == 'DESC' ) ? 'ASC' : 'DESC';
    505 
    506                                         $column_link .= esc_url( add_query_arg( array( 'order' => $order2, 'paged' => $pagenum, 'sortby' => $column_id ), remove_query_arg( array('action', 'updated'), $_SERVER['REQUEST_URI'] ) ) );
    507                                         $column_link .= "'>{$column_display_name}</a>";
    508                                         $col_url .= '<th scope="col">' . ( ( $column_id == 'users' || $column_id == 'plugins' ) ? $column_display_name : $column_link ) . '</th>';
    509                                 }
    510                                 echo $col_url ?>
    511                                 </tr>
    512                         </thead>
    513                         <tfoot>
    514                                 <tr>
    515                                 <th class="manage-column column-cb check-column" id="cb1" scope="col">
    516                                         <input type="checkbox" />
    517                                 </th>
    518                                         <?php echo $col_url ?>
    519                                 </tr>
    520                         </tfoot>
    521                         <tbody id="the-site-list" class="list:site">
    522                         <?php
    523                         $status_list = array( 'archived' => array( 'site-archived', __( 'Archived' ) ), 'spam' => array( 'site-spammed', _x( 'Spam', 'site' ) ), 'deleted' => array( 'site-deleted', __( 'Deleted' ) ), 'mature' => array( 'site-mature', __( 'Mature' ) ) );
    524                         if ( $blog_list ) {
    525                                 $class = '';
    526                                 foreach ( $blog_list as $blog ) {
    527                                         $class = ( 'alternate' == $class ) ? '' : 'alternate';
    528                                         reset( $status_list );
    529 
    530                                         $blog_states = array();
    531                                         foreach ( $status_list as $status => $col ) {
    532                                                 if ( get_blog_status( $blog['blog_id'], $status ) == 1 ) {
    533                                                         $class = $col[0];
    534                                                         $blog_states[] = $col[1];
    535                                                 }
    536                                         }
    537                                         $blog_state = '';
    538                                         if ( ! empty( $blog_states ) ) {
    539                                                 $state_count = count( $blog_states );
    540                                                 $i = 0;
    541                                                 $blog_state .= ' - ';
    542                                                 foreach ( $blog_states as $state ) {
    543                                                         ++$i;
    544                                                         ( $i == $state_count ) ? $sep = '' : $sep = ', ';
    545                                                         $blog_state .= "<span class='post-state'>$state$sep</span>";
    546                                                 }
    547                                         }
    548                                         echo "<tr class='$class'>";
    549 
    550                                         $blogname = ( is_subdomain_install() ) ? str_replace( '.'.$current_site->domain, '', $blog['domain'] ) : $blog['path'];
    551                                         foreach ( $sites_columns as $column_name=>$column_display_name ) {
    552                                                 switch ( $column_name ) {
    553                                                         case 'id': ?>
    554                                                                 <th scope="row" class="check-column">
    555                                                                         <input type="checkbox" id="blog_<?php echo $blog['blog_id'] ?>" name="allblogs[]" value="<?php echo esc_attr( $blog['blog_id'] ) ?>" />
    556                                                                 </th>
    557                                                                 <th valign="top" scope="row">
    558                                                                         <?php echo $blog['blog_id'] ?>
    559                                                                 </th>
    560                                                         <?php
    561                                                         break;
    562 
    563                                                         case 'blogname': ?>
    564                                                                 <td class="column-title">
    565                                                                         <a href="<?php echo esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $blog['blog_id'] ) ); ?>" class="edit"><?php echo $blogname . $blog_state; ?></a>
    566                                                                         <?php
    567                                                                         if ( 'list' != $mode )
    568                                                                                 echo '<p>' . sprintf( _x( '%1$s &#8211; <em>%2$s</em>', '%1$s: site name. %2$s: site tagline.' ), get_blog_option( $blog['blog_id'], 'blogname' ), get_blog_option( $blog['blog_id'], 'blogdescription ' ) ) . '</p>';
    569 
    570                                                                         // Preordered.
    571                                                                         $actions = array(
    572                                                                                 'edit' => '', 'backend' => '',
    573                                                                                 'activate' => '', 'deactivate' => '',
    574                                                                                 'archive' => '', 'unarchive' => '',
    575                                                                                 'spam' => '', 'unspam' => '',
    576                                                                                 'delete' => '',
    577                                                                                 'visit' => '',
    578                                                                         );
    579 
    580                                                                         $actions['edit']        = '<span class="edit"><a href="' . esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $blog['blog_id'] ) ) . '">' . __( 'Edit' ) . '</a></span>';
    581                                                                         $actions['backend']     = "<span class='backend'><a href='" . esc_url( get_admin_url($blog['blog_id']) ) . "' class='edit'>" . __( 'Backend' ) . '</a></span>';
    582                                                                         if ( $current_site->blog_id != $blog['blog_id'] ) {
    583                                                                                 if ( get_blog_status( $blog['blog_id'], 'deleted' ) == '1' )
    584                                                                                         $actions['activate']    = '<span class="activate"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=activateblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to activate the site %s' ), $blogname ) ) ) ) . '">' . __( 'Activate' ) . '</a></span>';
    585                                                                                 else
    586                                                                                         $actions['deactivate']  = '<span class="activate"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=deactivateblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to deactivate the site %s' ), $blogname ) ) ) ) . '">' . __( 'Deactivate' ) . '</a></span>';
    587 
    588                                                                                 if ( get_blog_status( $blog['blog_id'], 'archived' ) == '1' )
    589                                                                                         $actions['unarchive']   = '<span class="archive"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=unarchiveblog&amp;id=' .  $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to unarchive the site %s.' ), $blogname ) ) ) ) . '">' . __( 'Unarchive' ) . '</a></span>';
    590                                                                                 else
    591                                                                                         $actions['archive']     = '<span class="archive"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=archiveblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to archive the site %s.' ), $blogname ) ) ) ) . '">' . _x( 'Archive', 'verb; site' ) . '</a></span>';
    592 
    593                                                                                 if ( get_blog_status( $blog['blog_id'], 'spam' ) == '1' )
    594                                                                                         $actions['unspam']      = '<span class="spam"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=unspamblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to unspam the site %s.' ), $blogname ) ) ) ) . '">' . _x( 'Not Spam', 'site' ) . '</a></span>';
    595                                                                                 else
    596                                                                                         $actions['spam']        = '<span class="spam"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=spamblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to mark the site %s as spam.' ), $blogname ) ) ) ) . '">' . _x( 'Spam', 'site' ) . '</a></span>';
    597 
    598                                                                                 $actions['delete']      = '<span class="delete"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=deleteblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to delete the site %s.' ), $blogname ) ) ) ) . '">' . __( 'Delete' ) . '</a></span>';
    599                                                                         }
    600 
    601                                                                         $actions['visit']       = "<span class='view'><a href='" . esc_url( get_home_url( $blog['blog_id'] ) ) . "' rel='permalink'>" . __( 'Visit' ) . '</a></span>';
    602                                                                         $actions = array_filter( $actions );
    603                                                                         if ( count( $actions ) ) : ?>
    604                                                                         <div class="row-actions">
    605                                                                                 <?php echo implode( ' | ', $actions ); ?>
    606                                                                         </div>
    607                                                                         <?php endif; ?>
    608                                                                 </td>
    609                                                         <?php
    610                                                         break;
    611 
    612                                                         case 'lastupdated': ?>
    613                                                                 <td valign="top">
    614                                                                         <?php
    615                                                                         if ( 'list' == $mode )
    616                                                                                 $date = 'Y/m/d';
    617                                                                         else
    618                                                                                 $date = 'Y/m/d \<\b\r \/\> g:i:s a';
    619                                                                         echo ( $blog['last_updated'] == '0000-00-00 00:00:00' ) ? __( 'Never' ) : mysql2date( __( $date ), $blog['last_updated'] ); ?>
    620                                                                 </td>
    621                                                         <?php
    622                                                         break;
    623                                                 case 'registered': ?>
    624                                                                 <td valign="top">
    625                                                                 <?php
    626                                                                 if ( $blog['registered'] == '0000-00-00 00:00:00' )
    627                                                                         echo '&#x2014;';
    628                                                                 else
    629                                                                         echo mysql2date( __( $date ), $blog['registered'] );
    630                                                                 ?>
    631                                                                 </td>
    632                                                 <?php
    633                                                 break;
    634                                                         case 'users': ?>
    635                                                                 <td valign="top">
    636                                                                         <?php
    637                                                                         $blogusers = get_users_of_blog( $blog['blog_id'] );
    638                                                                         if ( is_array( $blogusers ) ) {
    639                                                                                 $blogusers_warning = '';
    640                                                                                 if ( count( $blogusers ) > 5 ) {
    641                                                                                         $blogusers = array_slice( $blogusers, 0, 5 );
    642                                                                                         $blogusers_warning = __( 'Only showing first 5 users.' ) . ' <a href="' . esc_url( get_admin_url( $blog['blog_id'], 'users.php' ) ) . '">' . __( 'More' ) . '</a>';
    643                                                                                 }
    644                                                                                 foreach ( $blogusers as $key => $val ) {
    645                                                                                         echo '<a href="' . esc_url( admin_url( 'user-edit.php?user_id=' . $val->user_id ) ) . '">' . esc_html( $val->user_login ) . '</a> ';
    646                                                                                         if ( 'list' != $mode )
    647                                                                                                 echo '(' . $val->user_email . ')';
    648                                                                                         echo '<br />';
    649                                                                                 }
    650                                                                                 if ( $blogusers_warning != '' )
    651                                                                                         echo '<strong>' . $blogusers_warning . '</strong><br />';
    652                                                                         }
    653                                                                         ?>
    654                                                                 </td>
    655                                                         <?php
    656                                                         break;
    657 
    658                                                         case 'plugins': ?>
    659                                                                 <?php if ( has_filter( 'wpmublogsaction' ) ) { ?>
    660                                                                 <td valign="top">
    661                                                                         <?php do_action( 'wpmublogsaction', $blog['blog_id'] ); ?>
    662                                                                 </td>
    663                                                                 <?php } ?>
    664                                                         <?php break;
    665 
    666                                                         default: ?>
    667                                                                 <?php if ( has_filter( 'manage_blogs_custom_column' ) ) { ?>
    668                                                                 <td valign="top">
    669                                                                         <?php do_action( 'manage_blogs_custom_column', $column_name, $blog['blog_id'] ); ?>
    670                                                                 </td>
    671                                                                 <?php } ?>
    672                                                         <?php break;
    673                                                 }
    674                                         }
    675                                         ?>
    676                                         </tr>
    677                                         <?php
    678                                 }
    679                         } else { ?>
    680                                 <tr>
    681                                         <td colspan="<?php echo (int) count( $sites_columns ); ?>"><?php _e( 'No sites found.' ) ?></td>
    682                                 </tr>
    683                         <?php
    684                         } // end if ($blogs)
    685                         ?>
    686 
    687                         </tbody>
    688                 </table>
    689                 <div class="tablenav">
    690                         <?php
    691                         if ( $page_links )
    692                                 echo "<div class='tablenav-pages'>$page_links_text</div>";
    693                         ?>
    694 
    695                         <div class="alignleft actions">
    696                         <select name="action2">
    697                                 <option value="-1" selected="selected"><?php _e( 'Bulk Actions' ); ?></option>
    698                                 <option value="delete"><?php _e( 'Delete' ); ?></option>
    699                                 <option value="spam"><?php _ex( 'Mark as Spam', 'site' ); ?></option>
    700                                 <option value="notspam"><?php _ex( 'Not Spam', 'site' ); ?></option>
    701                         </select>
    702                         <input type="submit" value="<?php esc_attr_e( 'Apply' ); ?>" name="doaction2" id="doaction2" class="button-secondary action" />
    703                         </div>
    704                         <br class="clear" />
    705                 </div>
    706 
    707                 </form>
    708                 </div>
    709 
    710                 <div id="form-add-site" class="wrap">
    711                         <h3><?php _e( 'Add Site' ) ?></h3>
    712                         <form method="post" action="ms-edit.php?action=addblog">
    713                                 <?php wp_nonce_field( 'add-blog', '_wpnonce_add-blog' ) ?>
    714                                 <table class="form-table">
    715                                         <tr class="form-field form-required">
    716                                                 <th scope="row"><?php _e( 'Site Address' ) ?></th>
    717                                                 <td>
    718                                                 <?php if ( is_subdomain_install() ) { ?>
    719                                                         <input name="blog[domain]" type="text" class="regular-text" title="<?php _e( 'Domain' ) ?>"/>.<?php echo preg_replace( '|^www\.|', '', $current_site->domain );?>
    720                                                 <?php } else {
    721                                                         echo $current_site->domain . $current_site->path ?><input name="blog[domain]" class="regular-text" type="text" title="<?php _e( 'Domain' ) ?>"/>
    722                                                 <?php }
    723                                                 echo '<p>' . __( 'Only the characters a-z and 0-9 recommended.' ) . '</p>';
    724                                                 ?>
    725                                                 </td>
    726                                         </tr>
    727                                         <tr class="form-field form-required">
    728                                                 <th scope="row"><?php _e( 'Site Title' ) ?></th>
    729                                                 <td><input name="blog[title]" type="text" class="regular-text" title="<?php _e( 'Title' ) ?>"/></td>
    730                                         </tr>
    731                                         <tr class="form-field form-required">
    732                                                 <th scope="row"><?php _e( 'Admin Email' ) ?></th>
    733                                                 <td><input name="blog[email]" type="text" class="regular-text" title="<?php _e( 'Email' ) ?>"/></td>
    734                                         </tr>
    735                                         <tr class="form-field">
    736                                                 <td colspan="2"><?php _e( 'A new user will be created if the above email address is not in the database.' ) ?><br /><?php _e( 'The username and password will be mailed to this email address.' ) ?></td>
    737                                         </tr>
    738                                 </table>
    739                                 <p class="submit">
    740                                         <input class="button" type="submit" name="go" value="<?php esc_attr_e( 'Add Site' ) ?>" /></p>
    741                         </form>
    742                 </div>
    743                 <?php
    744         break;
    745 } // end switch( $action )
    746 
    747 include( './admin-footer.php' ); ?>
     12wp_redirect( network_admin_url('sites.php') );
     13 No newline at end of file
  • wp-admin/ms-upgrade-network.php

    Property changes on: wp-admin/ms-sites.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
    99
    1010require_once('admin.php');
    1111
    12 if ( !is_multisite() )
    13         wp_die( __( 'Multisite support is not enabled.' ) );
    14 
    15 require_once( ABSPATH . WPINC . '/http.php' );
    16 
    17 $title = __( 'Update Network' );
    18 $parent_file = 'ms-admin.php';
    19 
    20 add_contextual_help($current_screen,
    21         '<p>' . __('Only use this screen once you have updated to a new version of WordPress through Dashboard > Updates. Clicking the Update Network button will step through each site in the network, five at a time, and make sure any database upgrades are applied.') . '</p>' .
    22         '<p>' . __('If a version update to core has not happened, clicking this button won&#8217;t affect anything.') . '</p>' .
    23         '<p>' . __('If this process fails for any reason, users logging in to their sites will force the same update.') . '</p>' .
    24         '<p><strong>' . __('For more information:') . '</strong></p>' .
    25         '<p>' . __('<a href="http://codex.wordpress.org/Super_Admin_Update_SubPanel" target="_blank">Update Network Documentation</a>') . '</p>' .
    26         '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    27 );
    28 
    29 require_once('admin-header.php');
    30 
    31 if ( ! current_user_can( 'manage_network' ) )
    32         wp_die( __( 'You do not have permission to access this page.' ) );
    33 
    34 echo '<div class="wrap">';
    35 screen_icon();
    36 echo '<h2>' . __( 'Update Network' ) . '</h2>';
    37 
    38 $action = isset($_GET['action']) ? $_GET['action'] : 'show';
    39 
    40 switch ( $action ) {
    41         case "upgrade":
    42                 $n = ( isset($_GET['n']) ) ? intval($_GET['n']) : 0;
    43 
    44                 if ( $n < 5 ) {
    45                         global $wp_db_version;
    46                         update_site_option( 'wpmu_upgrade_site', $wp_db_version );
    47                 }
    48 
    49                 $blogs = $wpdb->get_results( "SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' AND spam = '0' AND deleted = '0' AND archived = '0' ORDER BY registered DESC LIMIT {$n}, 5", ARRAY_A );
    50                 if ( empty( $blogs ) ) {
    51                         echo '<p>' . __( 'All done!' ) . '</p>';
    52                         break;
    53                 }
    54                 echo "<ul>";
    55                 foreach ( (array) $blogs as $details ) {
    56                         $siteurl = get_blog_option( $details['blog_id'], 'siteurl' );
    57                         echo "<li>$siteurl</li>";
    58                         $response = wp_remote_get( trailingslashit( $siteurl ) . "wp-admin/upgrade.php?step=upgrade_db", array( 'timeout' => 120, 'httpversion' => '1.1' ) );
    59                         if ( is_wp_error( $response ) )
    60                                 wp_die( sprintf( __( 'Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: <em>%2$s</em>' ), $siteurl, $response->get_error_message() ) );
    61                         do_action( 'after_mu_upgrade', $response );
    62                         do_action( 'wpmu_upgrade_site', $details[ 'blog_id' ] );
    63                 }
    64                 echo "</ul>";
    65                 ?><p><?php _e( 'If your browser doesn&#8217;t start loading the next page automatically, click this link:' ); ?> <a class="button" href="ms-upgrade-network.php?action=upgrade&amp;n=<?php echo ($n + 5) ?>"><?php _e("Next Sites"); ?></a></p>
    66                 <script type='text/javascript'>
    67                 <!--
    68                 function nextpage() {
    69                         location.href = "ms-upgrade-network.php?action=upgrade&n=<?php echo ($n + 5) ?>";
    70                 }
    71                 setTimeout( "nextpage()", 250 );
    72                 //-->
    73                 </script><?php
    74         break;
    75         case 'show':
    76         default:
    77                 ?><p><?php _e( 'You can update all the sites on your network through this page. It works by calling the update script of each site automatically. Hit the link below to update.' ); ?></p>
    78                 <p><a class="button" href="ms-upgrade-network.php?action=upgrade"><?php _e("Update Network"); ?></a></p><?php
    79                 do_action( 'wpmu_upgrade_page' );
    80         break;
    81 }
    82 ?>
    83 </div>
    84 
    85 <?php include('./admin-footer.php'); ?>
     12wp_redirect( network_admin_url('upgrade.php') );
     13 No newline at end of file
  • wp-admin/network/settings.php

    Property changes on: wp-admin/ms-upgrade-network.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
    1616        wp_die( __( 'You do not have permission to access this page.' ) );
    1717
    1818$title = __( 'Network Options' );
    19 $parent_file = 'ms-admin.php';
     19$parent_file = 'settings.php';
    2020
    2121add_contextual_help($current_screen,
    2222        '<p>' . __('This screen sets and changes options for the network as a whole. The first site is the main site in the network and network options are pulled from that original site&#8217;s options.') . '</p>' .
     
    3333        '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    3434);
    3535
    36 include( './admin-header.php' );
     36include( '../admin-header.php' );
    3737
    3838if (isset($_GET['updated'])) {
    3939        ?>
     
    4545<div class="wrap">
    4646        <?php screen_icon(); ?>
    4747        <h2><?php _e( 'Network Options' ) ?></h2>
    48         <form method="post" action="ms-edit.php?action=siteoptions">
     48        <form method="post" action="edit.php?action=siteoptions">
    4949                <?php wp_nonce_field( 'siteoptions' ); ?>
    5050                <h3><?php _e( 'Operational Settings' ); ?></h3>
    5151                <table class="form-table">
     
    315315        </form>
    316316</div>
    317317
    318 <?php include( './admin-footer.php' ); ?>
     318<?php include( '../admin-footer.php' ); ?>
  • wp-admin/network/profile.php

     
     1<?php
     2
     3require_once( './admin.php' );
     4
     5require( '../profile.php' );
     6 No newline at end of file
  • wp-admin/network/users.php

    Property changes on: wp-admin/network/profile.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
    1616        wp_die( __( 'You do not have permission to access this page.' ) );
    1717
    1818$title = __( 'Users' );
    19 $parent_file = 'ms-admin.php';
     19$parent_file = 'users.php';
    2020
    2121add_contextual_help($current_screen,
    2222        '<p>' . __('This table shows all users across the network and the sites to which they are assigned.') . '</p>' .
     
    3434
    3535wp_enqueue_script( 'admin-forms' );
    3636
    37 require_once( './admin-header.php' );
     37require_once( '../admin-header.php' );
    3838
    3939if ( isset( $_GET['updated'] ) && $_GET['updated'] == 'true' && ! empty( $_GET['action'] ) ) {
    4040        ?>
     
    130130        ?>
    131131        </h2>
    132132
    133         <form action="ms-users.php" method="get" class="search-form">
     133        <form action="users.php" method="get" class="search-form">
    134134                <p class="search-box">
    135135                <input type="text" name="s" value="<?php echo esc_attr( $s ); ?>" class="search-input" id="user-search-input" />
    136136                <input type="submit" id="post-query-submit" value="<?php esc_attr_e( 'Search Users' ) ?>" class="button" />
    137137                </p>
    138138        </form>
    139139
    140         <form id="form-user-list" action='ms-edit.php?action=allusers' method='post'>
     140        <form id="form-user-list" action='edit.php?action=allusers' method='post'>
    141141                <input type="hidden" name="mode" value="<?php echo esc_attr( $mode ); ?>" />
    142142                <div class="tablenav">
    143143                        <div class="alignleft actions">
     
    244244                                                                $edit_link = ( $current_user->ID == $user['ID'] ) ? 'profile.php' : 'user-edit.php?user_id=' . $user['ID'];
    245245                                                                ?>
    246246                                                                <td class="username column-username">
    247                                                                         <?php echo $avatar; ?><strong><a href="<?php echo esc_url( admin_url( $edit_link ) ); ?>" class="edit"><?php echo stripslashes( $user['user_login'] ); ?></a><?php
     247                                                                        <?php echo $avatar; ?><strong><a href="<?php echo esc_url( network_admin_url( $edit_link ) ); ?>" class="edit"><?php echo stripslashes( $user['user_login'] ); ?></a><?php
    248248                                                                        if ( in_array( $user['user_login'], $super_admins ) )
    249249                                                                                echo ' - ' . __( 'Super admin' );
    250250                                                                        ?></strong>
    251251                                                                        <br/>
    252252                                                                        <div class="row-actions">
    253                                                                                 <span class="edit"><a href="<?php echo esc_url( admin_url( $edit_link ) ); ?>"><?php _e( 'Edit' ); ?></a></span>
     253                                                                                <span class="edit"><a href="<?php echo esc_url( network_admin_url( $edit_link ) ); ?>"><?php _e( 'Edit' ); ?></a></span>
    254254                                                                                <?php if ( ! in_array( $user['user_login'], $super_admins ) ) { ?>
    255                                                                                 | <span class="delete"><a href="<?php echo $delete      = esc_url( admin_url( add_query_arg( '_wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), wp_nonce_url( 'ms-edit.php', 'deleteuser' ) . '&amp;action=deleteuser&amp;id=' . $user['ID'] ) ) ); ?>" class="delete"><?php _e( 'Delete' ); ?></a></span>
     255                                                                                | <span class="delete"><a href="<?php echo $delete      = esc_url( admin_url( add_query_arg( '_wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), wp_nonce_url( 'edit.php', 'deleteuser' ) . '&amp;action=deleteuser&amp;id=' . $user['ID'] ) ) ); ?>" class="delete"><?php _e( 'Delete' ); ?></a></span>
    256256                                                                                <?php } ?>
    257257                                                                        </div>
    258258                                                                </td>
     
    287287                                                                        if ( is_array( $blogs ) ) {
    288288                                                                                foreach ( (array) $blogs as $key => $val ) {
    289289                                                                                        $path   = ( $val->path == '/' ) ? '' : $val->path;
    290                                                                                         echo '<a href="'. esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $val->userblog_id  ) ) .'">' . str_replace( '.' . $current_site->domain, '', $val->domain . $path ) . '</a>';
     290                                                                                        echo '<a href="'. esc_url( network_admin_url( 'sites.php?action=editblog&amp;id=' . $val->userblog_id  ) ) .'">' . str_replace( '.' . $current_site->domain, '', $val->domain . $path ) . '</a>';
    291291                                                                                        echo ' <small class="row-actions">';
    292292
    293293                                                                                        // Edit
    294                                                                                         echo '<a href="'. esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $val->userblog_id  ) ) .'">' . __( 'Edit' ) . '</a> | ';
     294                                                                                        echo '<a href="'. esc_url( network_admin_url( 'sites.php?action=editblog&amp;id=' . $val->userblog_id  ) ) .'">' . __( 'Edit' ) . '</a> | ';
    295295
    296296                                                                                        // View
    297297                                                                                        echo '<a ';
     
    354354?>
    355355<div class="wrap" id="form-add-user">
    356356        <h3><?php _e( 'Add User' ) ?></h3>
    357         <form action="ms-edit.php?action=adduser" method="post">
     357        <form action="edit.php?action=adduser" method="post">
    358358        <table class="form-table">
    359359                <tr class="form-field form-required">
    360360                        <th scope="row"><?php _e( 'Username' ) ?></th>
     
    375375</div>
    376376<?php endif; ?>
    377377
    378 <?php include( './admin-footer.php' ); ?>
     378<?php include( '../admin-footer.php' ); ?>
  • wp-admin/network/plugins.php

     
     1<?php
     2
     3require_once( './admin.php' );
     4
     5require( '../plugins.php' );
     6 No newline at end of file
  • wp-admin/network/user-edit.php

    Property changes on: wp-admin/network/plugins.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
     1<?php
     2
     3require_once( './admin.php' );
     4
     5require( '../user-edit.php' );
     6 No newline at end of file
  • wp-admin/network/menu.php

    Property changes on: wp-admin/network/user-edit.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
     1<?php
     2
     3/* translators: Network menu item */
     4$menu[0] = array(__('Dashboard'), 'manage_network', 'index.php', '', 'menu-top menu-top-first menu-icon-site', 'menu-site', 'div');
     5
     6$menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' );
     7
     8/* translators: Sites menu item */
     9$menu[5] = array(__('Sites'), 'manage_sites', 'sites.php', '', 'menu-top menu-icon-site', 'menu-site', 'div');
     10$menu[10] = array(__('Users'), 'manage_network_users', 'users.php', '', 'menu-top menu-icon-users', 'menu-users', 'div');
     11$menu[15] = array(__('Themes'), 'manage_network_themes', 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'div');
     12$menu[20] = array(__('Plugins'), 'manage_network_plugins', 'plugins.php', '', 'menu-top menu-icon-plugins', 'menu-plugins', 'div');
     13$menu[25] = array(__('Settings'), 'manage_network_options', 'settings.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'div');
     14$menu[30] = array(__('Update'), 'manage_network', 'upgrade.php', '', 'menu-top menu-icon-tools', 'menu-update', 'div');
     15
     16$menu[99] = array( '', 'read', 'separator-last', '', 'wp-menu-separator-last' );
     17
     18$compat = array();
     19$submenu = array();
     20
     21require(ABSPATH . 'wp-admin/includes/menu.php');
     22
     23?>
     24 No newline at end of file
  • wp-admin/network/themes.php

    Property changes on: wp-admin/network/menu.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
    1313        wp_die( __( 'You do not have permission to access this page.' ) );
    1414
    1515$title = __( 'Network Themes' );
    16 $parent_file = 'ms-admin.php';
     16$parent_file = 'themes.php';
    1717
    1818add_contextual_help($current_screen,
    1919        '<p>' . __('This screen enables and disables the inclusion of themes available to choose in the Appearance menu for each site. It does not activate or deactivate which theme a site is currently using.') . '</p>' .
     
    2424        '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    2525);
    2626
    27 require_once( './admin-header.php' );
     27require_once( '../admin-header.php' );
    2828
    2929if ( isset( $_GET['updated'] ) ) {
    3030        ?>
     
    3636$allowed_themes = get_site_allowed_themes();
    3737?>
    3838<div class="wrap">
    39         <form action="<?php echo esc_url( admin_url( 'ms-edit.php?action=updatethemes' ) ); ?>" method="post">
     39        <form action="<?php echo esc_url( network_admin_url( 'edit.php?action=updatethemes' ) ); ?>" method="post">
    4040                <?php screen_icon(); ?>
    4141                <h2><?php _e( 'Network Themes' ) ?></h2>
    4242                <p><?php _e( 'Themes must be enabled for your network before they will be available to individual sites.' ) ?></p>
     
    9696        </p>
    9797</div>
    9898
    99 <?php include( './admin-footer.php' ); ?>
     99<?php include( '../admin-footer.php' ); ?>
  • wp-admin/network/index.php

     
    1616        wp_die( __( 'You do not have permission to access this page.' ) );
    1717
    1818$title = __( 'Network Admin' );
    19 $parent_file = 'ms-admin.php';
     19$parent_file = 'index.php';
    2020
    2121add_contextual_help($current_screen,
    2222        '<p>' . __('Until WordPress 3.0, running multiple sites required using WordPress MU instead of regular WordPress. In version 3.0, these applications have merged. If you are a former MU user, you should be aware of the following changes:') . '</p>' .
     
    2828        '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    2929);
    3030
    31 require_once( './admin-header.php' );
     31require_once( '../admin-header.php' );
    3232
    3333$c_users = get_user_count();
    3434$c_blogs = get_blog_count();
     
    4444        <h2><?php echo esc_html( $title ); ?></h2>
    4545
    4646        <ul class="subsubsub">
    47         <li><a href="ms-sites.php#form-add-site"><?php _e( 'Create a New Site' ); ?></a> |</li>
    48         <li><a href="ms-users.php#form-add-user"><?php _e( 'Create a New User' ); ?></a></li>
     47        <li><a href="sites.php#form-add-site"><?php _e( 'Create a New Site' ); ?></a> |</li>
     48        <li><a href="users.php#form-add-user"><?php _e( 'Create a New User' ); ?></a></li>
    4949        </ul>
    5050        <br class="clear" />
    5151
    5252        <p class="youhave"><?php echo $sentence; ?></p>
    5353        <?php do_action( 'wpmuadminresult', '' ); ?>
    5454
    55         <form name="searchform" action="ms-users.php" method="get">
     55        <form name="searchform" action="users.php" method="get">
    5656                <p>
    5757                        <input type="hidden" name="action" value="users" />
    5858                        <input type="text" name="s" value="" size="17" />
     
    6060                </p>
    6161        </form>
    6262
    63         <form name="searchform" action="ms-sites.php" method="get">
     63        <form name="searchform" action="sites.php" method="get">
    6464                <p>
    6565                        <input type="hidden" name="action" value="blogs" />
    6666                        <input type="hidden" name="searchaction" value="name" />
     
    7373        <?php do_action( 'mu_activity_box_end' ); ?>
    7474</div>
    7575
    76 <?php include( './admin-footer.php' ); ?>
     76<?php include( '../admin-footer.php' ); ?>
  • wp-admin/network/sites.php

     
    1616        wp_die( __( 'You do not have permission to access this page.' ) );
    1717
    1818$title = __( 'Sites' );
    19 $parent_file = 'ms-admin.php';
     19$parent_file = 'sites.php';
    2020
    2121if ( isset( $_GET['action'] ) && 'editblog' == $_GET['action'] ) {
    2222        add_contextual_help($current_screen,
     
    4848
    4949wp_enqueue_script( 'admin-forms' );
    5050
    51 require_once( './admin-header.php' );
     51require_once( '../admin-header.php' );
    5252
    5353$id = isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0;
    5454
     
    116116                <div class="wrap">
    117117                <?php screen_icon(); ?>
    118118                <h2><?php _e( 'Edit Site' ); ?> - <a href="<?php echo esc_url( get_home_url( $id ) ); ?>"><?php echo esc_url( get_home_url( $id ) ); ?></a></h2>
    119                 <form method="post" action="ms-edit.php?action=updateblog">
     119                <form method="post" action="edit.php?action=updateblog">
    120120                        <?php wp_nonce_field( 'editblog' ); ?>
    121121                        <input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
    122122                        <div class="metabox-holder" style="width:49%;float:left;">
     
    425425                ?>
    426426                </h2>
    427427
    428                 <form action="ms-sites.php" method="get" id="ms-search">
     428                <form action="sites.php" method="get" id="ms-search">
    429429                <p class="search-box">
    430430                <input type="hidden" name="action" value="blogs" />
    431431                <input type="text" name="s" value="<?php echo esc_attr( $s ); ?>" />
     
    438438                </p>
    439439                </form>
    440440
    441                 <form id="form-site-list" action="ms-edit.php?action=allblogs" method="post">
     441                <form id="form-site-list" action="edit.php?action=allblogs" method="post">
    442442                <input type="hidden" name="mode" value="<?php echo esc_attr( $mode ); ?>" />
    443443                <div class="tablenav">
    444444                <div class="alignleft actions">
     
    562562
    563563                                                        case 'blogname': ?>
    564564                                                                <td class="column-title">
    565                                                                         <a href="<?php echo esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $blog['blog_id'] ) ); ?>" class="edit"><?php echo $blogname . $blog_state; ?></a>
     565                                                                        <a href="<?php echo esc_url( network_admin_url( 'sites.php?action=editblog&amp;id=' . $blog['blog_id'] ) ); ?>" class="edit"><?php echo $blogname . $blog_state; ?></a>
    566566                                                                        <?php
    567567                                                                        if ( 'list' != $mode )
    568568                                                                                echo '<p>' . sprintf( _x( '%1$s &#8211; <em>%2$s</em>', '%1$s: site name. %2$s: site tagline.' ), get_blog_option( $blog['blog_id'], 'blogname' ), get_blog_option( $blog['blog_id'], 'blogdescription ' ) ) . '</p>';
     
    577577                                                                                'visit' => '',
    578578                                                                        );
    579579
    580                                                                         $actions['edit']        = '<span class="edit"><a href="' . esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $blog['blog_id'] ) ) . '">' . __( 'Edit' ) . '</a></span>';
     580                                                                        $actions['edit']        = '<span class="edit"><a href="' . esc_url( network_admin_url( 'sites.php?action=editblog&amp;id=' . $blog['blog_id'] ) ) . '">' . __( 'Edit' ) . '</a></span>';
    581581                                                                        $actions['backend']     = "<span class='backend'><a href='" . esc_url( get_admin_url($blog['blog_id']) ) . "' class='edit'>" . __( 'Backend' ) . '</a></span>';
    582582                                                                        if ( $current_site->blog_id != $blog['blog_id'] ) {
    583583                                                                                if ( get_blog_status( $blog['blog_id'], 'deleted' ) == '1' )
    584                                                                                         $actions['activate']    = '<span class="activate"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=activateblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to activate the site %s' ), $blogname ) ) ) ) . '">' . __( 'Activate' ) . '</a></span>';
     584                                                                                        $actions['activate']    = '<span class="activate"><a href="' . esc_url( network_admin_url( 'edit.php?action=confirm&amp;action2=activateblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to activate the site %s' ), $blogname ) ) ) ) . '">' . __( 'Activate' ) . '</a></span>';
    585585                                                                                else
    586                                                                                         $actions['deactivate']  = '<span class="activate"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=deactivateblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to deactivate the site %s' ), $blogname ) ) ) ) . '">' . __( 'Deactivate' ) . '</a></span>';
     586                                                                                        $actions['deactivate']  = '<span class="activate"><a href="' . esc_url( network_admin_url( 'edit.php?action=confirm&amp;action2=deactivateblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to deactivate the site %s' ), $blogname ) ) ) ) . '">' . __( 'Deactivate' ) . '</a></span>';
    587587
    588588                                                                                if ( get_blog_status( $blog['blog_id'], 'archived' ) == '1' )
    589                                                                                         $actions['unarchive']   = '<span class="archive"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=unarchiveblog&amp;id=' .  $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to unarchive the site %s.' ), $blogname ) ) ) ) . '">' . __( 'Unarchive' ) . '</a></span>';
     589                                                                                        $actions['unarchive']   = '<span class="archive"><a href="' . esc_url( network_admin_url( 'edit.php?action=confirm&amp;action2=unarchiveblog&amp;id=' .  $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to unarchive the site %s.' ), $blogname ) ) ) ) . '">' . __( 'Unarchive' ) . '</a></span>';
    590590                                                                                else
    591                                                                                         $actions['archive']     = '<span class="archive"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=archiveblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to archive the site %s.' ), $blogname ) ) ) ) . '">' . _x( 'Archive', 'verb; site' ) . '</a></span>';
     591                                                                                        $actions['archive']     = '<span class="archive"><a href="' . esc_url( network_admin_url( 'edit.php?action=confirm&amp;action2=archiveblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to archive the site %s.' ), $blogname ) ) ) ) . '">' . _x( 'Archive', 'verb; site' ) . '</a></span>';
    592592
    593593                                                                                if ( get_blog_status( $blog['blog_id'], 'spam' ) == '1' )
    594                                                                                         $actions['unspam']      = '<span class="spam"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=unspamblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to unspam the site %s.' ), $blogname ) ) ) ) . '">' . _x( 'Not Spam', 'site' ) . '</a></span>';
     594                                                                                        $actions['unspam']      = '<span class="spam"><a href="' . esc_url( network_admin_url( 'edit.php?action=confirm&amp;action2=unspamblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to unspam the site %s.' ), $blogname ) ) ) ) . '">' . _x( 'Not Spam', 'site' ) . '</a></span>';
    595595                                                                                else
    596                                                                                         $actions['spam']        = '<span class="spam"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=spamblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to mark the site %s as spam.' ), $blogname ) ) ) ) . '">' . _x( 'Spam', 'site' ) . '</a></span>';
     596                                                                                        $actions['spam']        = '<span class="spam"><a href="' . esc_url( network_admin_url( 'edit.php?action=confirm&amp;action2=spamblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to mark the site %s as spam.' ), $blogname ) ) ) ) . '">' . _x( 'Spam', 'site' ) . '</a></span>';
    597597
    598                                                                                 $actions['delete']      = '<span class="delete"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=deleteblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to delete the site %s.' ), $blogname ) ) ) ) . '">' . __( 'Delete' ) . '</a></span>';
     598                                                                                $actions['delete']      = '<span class="delete"><a href="' . esc_url( network_admin_url( 'edit.php?action=confirm&amp;action2=deleteblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to delete the site %s.' ), $blogname ) ) ) ) . '">' . __( 'Delete' ) . '</a></span>';
    599599                                                                        }
    600600
    601601                                                                        $actions['visit']       = "<span class='view'><a href='" . esc_url( get_home_url( $blog['blog_id'] ) ) . "' rel='permalink'>" . __( 'Visit' ) . '</a></span>';
     
    709709
    710710                <div id="form-add-site" class="wrap">
    711711                        <h3><?php _e( 'Add Site' ) ?></h3>
    712                         <form method="post" action="ms-edit.php?action=addblog">
     712                        <form method="post" action="edit.php?action=addblog">
    713713                                <?php wp_nonce_field( 'add-blog', '_wpnonce_add-blog' ) ?>
    714714                                <table class="form-table">
    715715                                        <tr class="form-field form-required">
     
    744744        break;
    745745} // end switch( $action )
    746746
    747 include( './admin-footer.php' ); ?>
     747include( '../admin-footer.php' ); ?>
  • wp-admin/network/upgrade.php

     
    77 * @since 3.0.0
    88 */
    99
    10 require_once('admin.php');
     10require_once('./admin.php');
    1111
    1212if ( !is_multisite() )
    1313        wp_die( __( 'Multisite support is not enabled.' ) );
     
    1515require_once( ABSPATH . WPINC . '/http.php' );
    1616
    1717$title = __( 'Update Network' );
    18 $parent_file = 'ms-admin.php';
     18$parent_file = 'upgrade.php';
    1919
    2020add_contextual_help($current_screen,
    2121        '<p>' . __('Only use this screen once you have updated to a new version of WordPress through Dashboard > Updates. Clicking the Update Network button will step through each site in the network, five at a time, and make sure any database upgrades are applied.') . '</p>' .
     
    2626        '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    2727);
    2828
    29 require_once('admin-header.php');
     29require_once('../admin-header.php');
    3030
    3131if ( ! current_user_can( 'manage_network' ) )
    3232        wp_die( __( 'You do not have permission to access this page.' ) );
     
    6666                <script type='text/javascript'>
    6767                <!--
    6868                function nextpage() {
    69                         location.href = "ms-upgrade-network.php?action=upgrade&n=<?php echo ($n + 5) ?>";
     69                        location.href = "upgrade.php?action=upgrade&n=<?php echo ($n + 5) ?>";
    7070                }
    7171                setTimeout( "nextpage()", 250 );
    7272                //-->
     
    7575        case 'show':
    7676        default:
    7777                ?><p><?php _e( 'You can update all the sites on your network through this page. It works by calling the update script of each site automatically. Hit the link below to update.' ); ?></p>
    78                 <p><a class="button" href="ms-upgrade-network.php?action=upgrade"><?php _e("Update Network"); ?></a></p><?php
     78                <p><a class="button" href="upgrade.php?action=upgrade"><?php _e("Update Network"); ?></a></p><?php
    7979                do_action( 'wpmu_upgrade_page' );
    8080        break;
    8181}
    8282?>
    8383</div>
    8484
    85 <?php include('./admin-footer.php'); ?>
     85<?php include('../admin-footer.php'); ?>
  • wp-admin/network/admin.php

     
     1<?php
     2
     3define('WP_NETWORK_ADMIN', TRUE);
     4
     5require_once( dirname(dirname(__FILE__)) . '/admin.php');
     6
     7if ( !is_main_site() )
     8        wp_redirect( network_admin_url() );
     9
     10?>
     11 No newline at end of file
  • wp-admin/menu.php

    Property changes on: wp-admin/network/admin.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
    2525$awaiting_mod = wp_count_comments();
    2626$awaiting_mod = $awaiting_mod->moderated;
    2727
    28 if ( is_multisite() && is_super_admin() ) {
    29         /* translators: Network menu item */
    30         $menu[0] = array(__('Super Admin'), 'manage_network', 'ms-admin.php', '', 'menu-top menu-top-first menu-icon-site', 'menu-site', 'div');
    31         $submenu[ 'ms-admin.php' ][1] = array( __('Admin'), 'manage_network', 'ms-admin.php' );
    32         /* translators: Sites menu item */
    33         $submenu[ 'ms-admin.php' ][5] = array( __('Sites'), 'manage_sites', 'ms-sites.php' );
    34         $submenu[ 'ms-admin.php' ][10] = array( __('Users'), 'manage_network_users', 'ms-users.php' );
    35         $submenu[ 'ms-admin.php' ][20] = array( __('Themes'), 'manage_network_themes', 'ms-themes.php' );
    36         $submenu[ 'ms-admin.php' ][25] = array( __('Options'), 'manage_network_options', 'ms-options.php' );
    37         $submenu[ 'ms-admin.php' ][30] = array( __('Update'), 'manage_network', 'ms-upgrade-network.php' );
     28$menu[2] = array( __('Dashboard'), 'read', 'index.php', '', 'menu-top menu-top-first menu-icon-dashboard', 'menu-dashboard', 'div' );
    3829
    39         $menu[1] = array( '', 'read', 'separator1', '', 'wp-menu-separator' );
    40 
    41         $menu[2] = array( __('Dashboard'), 'read', 'index.php', '', 'menu-top menu-icon-dashboard', 'menu-dashboard', 'div' );
    42 } else {
    43         $menu[2] = array( __('Dashboard'), 'read', 'index.php', '', 'menu-top menu-top-first menu-icon-dashboard', 'menu-dashboard', 'div' );
    44 }
    45 
    4630if ( is_multisite() || is_super_admin() ) {
    4731        $submenu[ 'index.php' ][0] = array( __('Dashboard'), 'read', 'index.php' );
    4832
     
    234218$_wp_real_parent_file['page-new.php'] = 'edit.php?post_type=page';
    235219$_wp_real_parent_file['wpmu-admin.php'] = 'ms-admin.php';
    236220
    237 do_action('_admin_menu');
     221// ensure we're backwards compatible
     222$compat = array(
     223        'index' => 'dashboard',
     224        'edit' => 'posts',
     225        'post' => 'posts',
     226        'upload' => 'media',
     227        'link-manager' => 'links',
     228        'edit-pages' => 'pages',
     229        'page' => 'pages',
     230        'edit-comments' => 'comments',
     231        'options-general' => 'settings',
     232        'themes' => 'appearance',
     233        );
    238234
    239 // Create list of page plugin hook names.
    240 foreach ($menu as $menu_page) {
    241         if ( false !== $pos = strpos($menu_page[2], '?') ) {
    242                 // Handle post_type=post|page|foo pages.
    243                 $hook_name = substr($menu_page[2], 0, $pos);
    244                 $hook_args = substr($menu_page[2], $pos + 1);
    245                 wp_parse_str($hook_args, $hook_args);
    246                 // Set the hook name to be the post type.
    247                 if ( isset($hook_args['post_type']) )
    248                         $hook_name = $hook_args['post_type'];
    249                 else
    250                         $hook_name = basename($hook_name, '.php');
    251                 unset($hook_args);
    252         } else {
    253                 $hook_name = basename($menu_page[2], '.php');
    254         }
    255         $hook_name = sanitize_title($hook_name);
     235require(ABSPATH . 'wp-admin/includes/menu.php');
    256236
    257         // ensure we're backwards compatible
    258         $compat = array(
    259                 'index' => 'dashboard',
    260                 'edit' => 'posts',
    261                 'post' => 'posts',
    262                 'upload' => 'media',
    263                 'link-manager' => 'links',
    264                 'edit-pages' => 'pages',
    265                 'page' => 'pages',
    266                 'edit-comments' => 'comments',
    267                 'options-general' => 'settings',
    268                 'themes' => 'appearance',
    269                 );
    270 
    271         if ( isset($compat[$hook_name]) )
    272                 $hook_name = $compat[$hook_name];
    273         elseif ( !$hook_name )
    274                 continue;
    275 
    276         $admin_page_hooks[$menu_page[2]] = $hook_name;
    277 }
    278 unset($menu_page);
    279 
    280 $_wp_submenu_nopriv = array();
    281 $_wp_menu_nopriv = array();
    282 // Loop over submenus and remove pages for which the user does not have privs.
    283 foreach ( array( 'submenu' ) as $sub_loop ) {
    284         foreach ($$sub_loop as $parent => $sub) {
    285                 foreach ($sub as $index => $data) {
    286                         if ( ! current_user_can($data[1]) ) {
    287                                 unset(${$sub_loop}[$parent][$index]);
    288                                 $_wp_submenu_nopriv[$parent][$data[2]] = true;
    289                         }
    290                 }
    291                 unset($index, $data);
    292 
    293                 if ( empty(${$sub_loop}[$parent]) )
    294                         unset(${$sub_loop}[$parent]);
    295         }
    296         unset($sub, $parent);
    297 }
    298 unset($sub_loop);
    299 
    300 // Loop over the top-level menu.
    301 // Menus for which the original parent is not accessible due to lack of privs will have the next
    302 // submenu in line be assigned as the new menu parent.
    303 foreach ( $menu as $id => $data ) {
    304         if ( empty($submenu[$data[2]]) )
    305                 continue;
    306         $subs = $submenu[$data[2]];
    307         $first_sub = array_shift($subs);
    308         $old_parent = $data[2];
    309         $new_parent = $first_sub[2];
    310         // If the first submenu is not the same as the assigned parent,
    311         // make the first submenu the new parent.
    312         if ( $new_parent != $old_parent ) {
    313                 $_wp_real_parent_file[$old_parent] = $new_parent;
    314                 $menu[$id][2] = $new_parent;
    315 
    316                 foreach ($submenu[$old_parent] as $index => $data) {
    317                         $submenu[$new_parent][$index] = $submenu[$old_parent][$index];
    318                         unset($submenu[$old_parent][$index]);
    319                 }
    320                 unset($submenu[$old_parent], $index);
    321 
    322                 if ( isset($_wp_submenu_nopriv[$old_parent]) )
    323                         $_wp_submenu_nopriv[$new_parent] = $_wp_submenu_nopriv[$old_parent];
    324         }
    325 }
    326 unset($id, $data, $subs, $first_sub, $old_parent, $new_parent);
    327 
    328 do_action('admin_menu', '');
    329 
    330 // Remove menus that have no accessible submenus and require privs that the user does not have.
    331 // Run re-parent loop again.
    332 foreach ( $menu as $id => $data ) {
    333         if ( ! current_user_can($data[1]) )
    334                 $_wp_menu_nopriv[$data[2]] = true;
    335 
    336         // If submenu is empty...
    337         if ( empty($submenu[$data[2]]) ) {
    338                 // And user doesn't have privs, remove menu.
    339                 if ( isset( $_wp_menu_nopriv[$data[2]] ) ) {
    340                         unset($menu[$id]);
    341                 }
    342         }
    343 }
    344 unset($id, $data);
    345 
    346 // Remove any duplicated seperators
    347 $seperator_found = false;
    348 foreach ( $menu as $id => $data ) {
    349         if ( 0 == strcmp('wp-menu-separator', $data[4] ) ) {
    350                 if (false == $seperator_found) {
    351                         $seperator_found = true;
    352                 } else {
    353                         unset($menu[$id]);
    354                         $seperator_found = false;
    355                 }
    356         } else {
    357                 $seperator_found = false;
    358         }
    359 }
    360 unset($id, $data);
    361 
    362 function add_cssclass($add, $class) {
    363         $class = empty($class) ? $add : $class .= ' ' . $add;
    364         return $class;
    365 }
    366 
    367 function add_menu_classes($menu) {
    368 
    369         $first = $lastorder = false;
    370         $i = 0;
    371         $mc = count($menu);
    372         foreach ( $menu as $order => $top ) {
    373                 $i++;
    374 
    375                 if ( 0 == $order ) { // dashboard is always shown/single
    376                         $menu[0][4] = add_cssclass('menu-top-first', $top[4]);
    377                         $lastorder = 0;
    378                         continue;
    379                 }
    380 
    381                 if ( 0 === strpos($top[2], 'separator') ) { // if separator
    382                         $first = true;
    383                         $c = $menu[$lastorder][4];
    384                         $menu[$lastorder][4] = add_cssclass('menu-top-last', $c);
    385                         continue;
    386                 }
    387 
    388                 if ( $first ) {
    389                         $c = $menu[$order][4];
    390                         $menu[$order][4] = add_cssclass('menu-top-first', $c);
    391                         $first = false;
    392                 }
    393 
    394                 if ( $mc == $i ) { // last item
    395                         $c = $menu[$order][4];
    396                         $menu[$order][4] = add_cssclass('menu-top-last', $c);
    397                 }
    398 
    399                 $lastorder = $order;
    400         }
    401 
    402         return apply_filters( 'add_menu_classes', $menu );
    403 }
    404 
    405 uksort($menu, "strnatcasecmp"); // make it all pretty
    406 
    407 if ( apply_filters('custom_menu_order', false) ) {
    408         $menu_order = array();
    409         foreach ( $menu as $menu_item ) {
    410                 $menu_order[] = $menu_item[2];
    411         }
    412         unset($menu_item);
    413         $default_menu_order = $menu_order;
    414         $menu_order = apply_filters('menu_order', $menu_order);
    415         $menu_order = array_flip($menu_order);
    416         $default_menu_order = array_flip($default_menu_order);
    417 
    418         function sort_menu($a, $b) {
    419                 global $menu_order, $default_menu_order;
    420                 $a = $a[2];
    421                 $b = $b[2];
    422                 if ( isset($menu_order[$a]) && !isset($menu_order[$b]) ) {
    423                         return -1;
    424                 } elseif ( !isset($menu_order[$a]) && isset($menu_order[$b]) ) {
    425                         return 1;
    426                 } elseif ( isset($menu_order[$a]) && isset($menu_order[$b]) ) {
    427                         if ( $menu_order[$a] == $menu_order[$b] )
    428                                 return 0;
    429                         return ($menu_order[$a] < $menu_order[$b]) ? -1 : 1;
    430                 } else {
    431                         return ($default_menu_order[$a] <= $default_menu_order[$b]) ? -1 : 1;
    432                 }
    433         }
    434 
    435         usort($menu, 'sort_menu');
    436         unset($menu_order, $default_menu_order);
    437 }
    438 
    439 $menu = add_menu_classes($menu);
    440 
    441 if ( !user_can_access_admin_page() ) {
    442         do_action('admin_page_access_denied');
    443         wp_die( __('You do not have sufficient permissions to access this page.') );
    444 }
    445 
    446237?>
  • wp-admin/admin-header.php

     
    1111        require_once( './admin.php' );
    1212
    1313get_admin_page_title();
     14
    1415$title = esc_html( strip_tags( $title ) );
     16
    1517wp_user_settings();
    1618wp_menu_unfold();
    1719?>
     
    8688<div id="wpcontent">
    8789<div id="wphead">
    8890<?php
    89 $blog_name = get_bloginfo('name', 'display');
     91
     92if ( is_network_admin() )
     93        $blog_name = esc_html($current_site->site_name);
     94else
     95        $blog_name = get_bloginfo('name', 'display');
    9096if ( '' == $blog_name ) {
    9197        $blog_name = '&nbsp;';
    9298} else {
     
    111117        <a href="<?php echo trailingslashit( get_bloginfo( 'url' ) ); ?>" title="<?php esc_attr_e('Visit Site') ?>">
    112118                <span id="site-title"><?php echo $blog_name ?></span>
    113119        </a>
    114 <?php if ( current_user_can('manage_options') && '1' != get_option('blog_public') ): ?>
     120<?php if ( !is_network_admin() && current_user_can('manage_options') && '1' != get_option('blog_public') ): ?>
    115121        <a id="privacy-on-link" href="options-privacy.php" title="<?php echo esc_attr( apply_filters('privacy_on_link_title', __('Your site is asking search engines not to index its content') ) ); ?>"><?php echo apply_filters('privacy_on_link_text', __('Search Engines Blocked') ); ?></a>
    116122<?php endif; ?>
    117123</h1>
     
    123129<p><?php
    124130$links = array();
    125131$links[5] = sprintf(__('Howdy, <a href="%1$s" title="Edit your profile">%2$s</a>'), 'profile.php', $user_identity);
    126 $links[15] = '| <a href="' . wp_logout_url() . '" title="' . __('Log Out') . '">' . __('Log Out') . '</a>';
     132if ( is_super_admin() && !is_network_admin() )
     133        $links[10] = '| <a href="' . network_admin_url() . '" title="' . esc_attr__('Network Admin') . '">' . __('Network Admin') . '</a>';
     134$links[15] = '| <a href="' . wp_logout_url() . '" title="' . esc_attr__('Log Out') . '">' . __('Log Out') . '</a>';
    127135
    128136$links = apply_filters('admin_user_info_links', $links, $current_user);
    129137ksort($links);
     
    132140?></p>
    133141</div>
    134142
    135 <?php favorite_actions($current_screen); ?>
     143<?php !is_network_admin() ? favorite_actions($current_screen) : ''; ?>
    136144</div>
    137145</div>
    138146
  • wp-admin/ms-users.php

     
    99
    1010require_once( './admin.php' );
    1111
    12 if ( !is_multisite() )
    13         wp_die( __( 'Multisite support is not enabled.' ) );
    14 
    15 if ( ! current_user_can( 'manage_network_users' ) )
    16         wp_die( __( 'You do not have permission to access this page.' ) );
    17 
    18 $title = __( 'Users' );
    19 $parent_file = 'ms-admin.php';
    20 
    21 add_contextual_help($current_screen,
    22         '<p>' . __('This table shows all users across the network and the sites to which they are assigned.') . '</p>' .
    23         '<p>' . __('Hover over any user on the list to make the edit links appear. The Edit link on the left will take you to his or her Edit User profile page; the Edit link on the right by any site name goes to an Edit Site screen for that site.') . '</p>' .
    24         '<p>' . __('You can also go to the user&#8217;s profile page by clicking on the individual username.') . '</p>' .
    25         '<p>' . __('You can sort the table by clicking on any of the bold headings and switch between list and excerpt views by using the icons in the upper right.') . '</p>' .
    26         '<p>' . __('The bulk action will permanently delete selected users, or mark/unmark those selected as spam. Spam users will have posts removed and will be unable to sign up again with the same email addresses.') . '</p>' .
    27         '<p>' . __('Add User will add that person to this table and send them an email.') . '</p>' .
    28         '<p>' . __('Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them.') . '</p>' .
    29         '<p>' . __('You can make an existing user an additional super admin by going to the Edit User profile page and checking the box to grant that privilege.') . '</p>' .
    30         '<p><strong>' . __('For more information:') . '</strong></p>' .
    31         '<p>' . __('<a href="http://codex.wordpress.org/Super_Admin_Users_SubPanel" target="_blank">Network Users Documentation</a>') . '</p>' .
    32         '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    33 );
    34 
    35 wp_enqueue_script( 'admin-forms' );
    36 
    37 require_once( './admin-header.php' );
    38 
    39 if ( isset( $_GET['updated'] ) && $_GET['updated'] == 'true' && ! empty( $_GET['action'] ) ) {
    40         ?>
    41         <div id="message" class="updated"><p>
    42                 <?php
    43                 switch ( $_GET['action'] ) {
    44                         case 'delete':
    45                                 _e( 'User deleted.' );
    46                         break;
    47                         case 'all_spam':
    48                                 _e( 'Users marked as spam.' );
    49                         break;
    50                         case 'all_notspam':
    51                                 _e( 'Users removed from spam.' );
    52                         break;
    53                         case 'all_delete':
    54                                 _e( 'Users deleted.' );
    55                         break;
    56                         case 'add':
    57                                 _e( 'User added.' );
    58                         break;
    59                 }
    60                 ?>
    61         </p></div>
    62         <?php
    63 }
    64 
    65         $pagenum = isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 0;
    66         if ( empty( $pagenum ) )
    67                 $pagenum = 1;
    68 
    69         $per_page = (int) get_user_option( 'ms_users_per_page' );
    70         if ( empty( $per_page ) || $per_page < 1 )
    71                 $per_page = 15;
    72 
    73         $per_page = apply_filters( 'ms_users_per_page', $per_page );
    74 
    75         $s = isset( $_GET['s'] ) ? stripslashes( trim( $_GET[ 's' ] ) ) : '';
    76         $like_s = esc_sql( like_escape( $s ) );
    77 
    78         $query = "SELECT * FROM {$wpdb->users}";
    79 
    80         if ( !empty( $like_s ) ) {
    81                 $query .= " WHERE user_login LIKE '%$like_s%' OR user_email LIKE '%$like_s%'";
    82         }
    83 
    84         $order_by = isset( $_GET['sortby'] ) ? $_GET['sortby'] : 'id';
    85         if ( $order_by == 'email' ) {
    86                 $query .= ' ORDER BY user_email ';
    87         } elseif ( $order_by == 'login' ) {
    88                 $query .= ' ORDER BY user_login ';
    89         } elseif ( $order_by == 'name' ) {
    90                 $query .= ' ORDER BY display_name ';
    91         } elseif ( $order_by == 'registered' ) {
    92                 $query .= ' ORDER BY user_registered ';
    93         } else {
    94                 $order_by = 'id';
    95                 $query .= ' ORDER BY ID ';
    96         }
    97 
    98         $order = ( isset( $_GET['order'] ) && 'DESC' == $_GET['order'] ) ? 'DESC' : 'ASC';
    99         $query .= $order;
    100 
    101         $total = $wpdb->get_var( str_replace( 'SELECT *', 'SELECT COUNT(ID)', $query ) );
    102 
    103         $query .= " LIMIT " . intval( ( $pagenum - 1 ) * $per_page) . ", " . intval( $per_page );
    104 
    105         $user_list = $wpdb->get_results( $query, ARRAY_A );
    106 
    107         $num_pages = ceil( $total / $per_page );
    108         $page_links = paginate_links( array(
    109                 'base' => add_query_arg( 'paged', '%#%' ),
    110                 'format' => '',
    111                 'prev_text' => __( '&laquo;' ),
    112                 'next_text' => __( '&raquo;' ),
    113                 'total' => $num_pages,
    114                 'current' => $pagenum
    115         ));
    116 
    117         if ( empty( $_GET['mode'] ) )
    118                 $mode = 'list';
    119         else
    120                 $mode = esc_attr( $_GET['mode'] );
    121 
    122         ?>
    123         <div class="wrap">
    124         <?php screen_icon(); ?>
    125         <h2><?php esc_html_e( 'Users' ); ?>
    126         <a href="#form-add-user" class="button add-new-h2"><?php echo esc_html_x( 'Add New' , 'users'); ?></a>
    127         <?php
    128         if ( isset( $_GET['s'] ) && $_GET['s'] )
    129         printf( '<span class="subtitle">' . __( 'Search results for &#8220;%s&#8221;' ) . '</span>', esc_html( $s ) );
    130         ?>
    131         </h2>
    132 
    133         <form action="ms-users.php" method="get" class="search-form">
    134                 <p class="search-box">
    135                 <input type="text" name="s" value="<?php echo esc_attr( $s ); ?>" class="search-input" id="user-search-input" />
    136                 <input type="submit" id="post-query-submit" value="<?php esc_attr_e( 'Search Users' ) ?>" class="button" />
    137                 </p>
    138         </form>
    139 
    140         <form id="form-user-list" action='ms-edit.php?action=allusers' method='post'>
    141                 <input type="hidden" name="mode" value="<?php echo esc_attr( $mode ); ?>" />
    142                 <div class="tablenav">
    143                         <div class="alignleft actions">
    144                                 <select name="action">
    145                                         <option value="-1" selected="selected"><?php _e( 'Bulk Actions' ); ?></option>
    146                                         <option value="delete"><?php _e( 'Delete' ); ?></option>
    147                                         <option value="spam"><?php _ex( 'Mark as Spam', 'user' ); ?></option>
    148                                         <option value="notspam"><?php _ex( 'Not Spam', 'user' ); ?></option>
    149                                 </select>
    150                                 <input type="submit" value="<?php esc_attr_e( 'Apply' ); ?>" name="doaction" id="doaction" class="button-secondary action" />
    151                                 <?php wp_nonce_field( 'bulk-ms-users', '_wpnonce_bulk-ms-users' ); ?>
    152                         </div>
    153 
    154                         <?php if ( $page_links ) { ?>
    155                         <div class="tablenav-pages">
    156                         <?php $page_links_text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>%s',
    157                         number_format_i18n( ( $pagenum - 1 ) * $per_page + 1 ),
    158                         number_format_i18n( min( $pagenum * $per_page, $total ) ),
    159                         number_format_i18n( $total ),
    160                         $page_links
    161                         ); echo $page_links_text; ?>
    162                         </div>
    163                         <?php } ?>
    164 
    165                         <div class="view-switch">
    166                                 <a href="<?php echo esc_url( add_query_arg( 'mode', 'list', $_SERVER['REQUEST_URI'] ) ) ?>"><img <?php if ( 'list' == $mode ) echo 'class="current"'; ?> id="view-switch-list" src="<?php echo esc_url( includes_url( 'images/blank.gif' ) ); ?>" width="20" height="20" title="<?php _e( 'List View' ) ?>" alt="<?php _e( 'List View' ) ?>" /></a>
    167                                 <a href="<?php echo esc_url( add_query_arg( 'mode', 'excerpt', $_SERVER['REQUEST_URI'] ) ) ?>"><img <?php if ( 'excerpt' == $mode ) echo 'class="current"'; ?> id="view-switch-excerpt" src="<?php echo esc_url( includes_url( 'images/blank.gif' ) ); ?>" width="20" height="20" title="<?php _e( 'Excerpt View' ) ?>" alt="<?php _e( 'Excerpt View' ) ?>" /></a>
    168                         </div>
    169                 </div>
    170                 <div class="clear"></div>
    171 
    172                 <?php
    173                 // define the columns to display, the syntax is 'internal name' => 'display name'
    174                 $users_columns = array(
    175                         'id'           => __( 'ID' ),
    176                         'login'      => __( 'Username' ),
    177                         'name'       => __( 'Name' ),
    178                         'email'      => __( 'E-mail' ),
    179                         'registered' => _x( 'Registered', 'user' ),
    180                         'blogs'      => __( 'Sites' )
    181                 );
    182                 $users_columns = apply_filters( 'wpmu_users_columns', $users_columns );
    183                 ?>
    184                 <table class="widefat">
    185                         <thead>
    186                         <tr>
    187                                 <th class="manage-column column-cb check-column" scope="col">
    188                                         <input type="checkbox" />
    189                                 </th>
    190                                 <?php
    191                                 $col_url = '';
    192                                 foreach($users_columns as $column_id => $column_display_name) {
    193                                         $column_link = "<a href='";
    194                                         $order2 = '';
    195                                         if ( $order_by == $column_id )
    196                                                 $order2 = ( $order == 'DESC' ) ? 'ASC' : 'DESC';
    197 
    198                                         $column_link .= esc_url( add_query_arg( array( 'order' => $order2, 'paged' => $pagenum, 'sortby' => $column_id ), remove_query_arg( array( 'action', 'updated' ), $_SERVER['REQUEST_URI'] ) ) );
    199                                         $column_link .= "'>{$column_display_name}</a>";
    200                                         $col_url .= '<th scope="col">' . ( $column_id == 'blogs' ? $column_display_name : $column_link ) . '</th>';
    201                                 }
    202                                 echo $col_url; ?>
    203                         </tr>
    204                         </thead>
    205                         <tfoot>
    206                         <tr>
    207                                 <th class="manage-column column-cb check-column" scope="col">
    208                                         <input type="checkbox" />
    209                                 </th>
    210                                 <?php echo $col_url; ?>
    211                         </tr>
    212                         </tfoot>
    213                         <tbody id="the-user-list" class="list:user">
    214                         <?php if ( $user_list ) {
    215                                 $class = '';
    216                                 $super_admins = get_super_admins();
    217                                 foreach ( (array) $user_list as $user ) {
    218                                         $class = ( 'alternate' == $class ) ? '' : 'alternate';
    219 
    220                                         $status_list = array( 'spam' => 'site-spammed', 'deleted' => 'site-deleted' );
    221 
    222                                         foreach ( $status_list as $status => $col ) {
    223                                                 if ( $user[$status] )
    224                                                         $class = $col;
    225                                         }
    226 
    227                                         ?>
    228                                         <tr class="<?php echo $class; ?>">
    229                                         <?php
    230                                         foreach( (array) $users_columns as $column_name=>$column_display_name ) :
    231                                                 switch( $column_name ) {
    232                                                         case 'id': ?>
    233                                                                 <th scope="row" class="check-column">
    234                                                                         <input type="checkbox" id="blog_<?php echo $user['ID'] ?>" name="allusers[]" value="<?php echo esc_attr( $user['ID'] ) ?>" />
    235                                                                 </th>
    236                                                                 <th valign="top" scope="row">
    237                                                                         <?php echo $user['ID'] ?>
    238                                                                 </th>
    239                                                         <?php
    240                                                         break;
    241 
    242                                                         case 'login':
    243                                                                 $avatar = get_avatar( $user['user_email'], 32 );
    244                                                                 $edit_link = ( $current_user->ID == $user['ID'] ) ? 'profile.php' : 'user-edit.php?user_id=' . $user['ID'];
    245                                                                 ?>
    246                                                                 <td class="username column-username">
    247                                                                         <?php echo $avatar; ?><strong><a href="<?php echo esc_url( admin_url( $edit_link ) ); ?>" class="edit"><?php echo stripslashes( $user['user_login'] ); ?></a><?php
    248                                                                         if ( in_array( $user['user_login'], $super_admins ) )
    249                                                                                 echo ' - ' . __( 'Super admin' );
    250                                                                         ?></strong>
    251                                                                         <br/>
    252                                                                         <div class="row-actions">
    253                                                                                 <span class="edit"><a href="<?php echo esc_url( admin_url( $edit_link ) ); ?>"><?php _e( 'Edit' ); ?></a></span>
    254                                                                                 <?php if ( ! in_array( $user['user_login'], $super_admins ) ) { ?>
    255                                                                                 | <span class="delete"><a href="<?php echo $delete      = esc_url( admin_url( add_query_arg( '_wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), wp_nonce_url( 'ms-edit.php', 'deleteuser' ) . '&amp;action=deleteuser&amp;id=' . $user['ID'] ) ) ); ?>" class="delete"><?php _e( 'Delete' ); ?></a></span>
    256                                                                                 <?php } ?>
    257                                                                         </div>
    258                                                                 </td>
    259                                                         <?php
    260                                                         break;
    261 
    262                                                         case 'name': ?>
    263                                                                 <td class="name column-name"><?php echo $user['display_name'] ?></td>
    264                                                         <?php
    265                                                         break;
    266 
    267                                                         case 'email': ?>
    268                                                                 <td class="email column-email"><a href="mailto:<?php echo $user['user_email'] ?>"><?php echo $user['user_email'] ?></a></td>
    269                                                         <?php
    270                                                         break;
    271 
    272                                                         case 'registered':
    273                                                                 if ( 'list' == $mode )
    274                                                                         $date = 'Y/m/d';
    275                                                                 else
    276                                                                         $date = 'Y/m/d \<\b\r \/\> g:i:s a';
    277                                                         ?>
    278                                                                 <td><?php echo mysql2date( __( $date ), $user['user_registered'] ); ?></td>
    279                                                         <?php
    280                                                         break;
    281 
    282                                                         case 'blogs':
    283                                                                 $blogs = get_blogs_of_user( $user['ID'], true );
    284                                                                 ?>
    285                                                                 <td>
    286                                                                         <?php
    287                                                                         if ( is_array( $blogs ) ) {
    288                                                                                 foreach ( (array) $blogs as $key => $val ) {
    289                                                                                         $path   = ( $val->path == '/' ) ? '' : $val->path;
    290                                                                                         echo '<a href="'. esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $val->userblog_id  ) ) .'">' . str_replace( '.' . $current_site->domain, '', $val->domain . $path ) . '</a>';
    291                                                                                         echo ' <small class="row-actions">';
    292 
    293                                                                                         // Edit
    294                                                                                         echo '<a href="'. esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $val->userblog_id  ) ) .'">' . __( 'Edit' ) . '</a> | ';
    295 
    296                                                                                         // View
    297                                                                                         echo '<a ';
    298                                                                                         if ( get_blog_status( $val->userblog_id, 'spam' ) == 1 )
    299                                                                                                 echo 'style="background-color: #faa" ';
    300                                                                                         echo 'href="' .  esc_url( get_home_url( $val->userblog_id ) )  . '">' . __( 'View' ) . '</a>';
    301 
    302                                                                                         echo '</small><br />';
    303                                                                                 }
    304                                                                         }
    305                                                                         ?>
    306                                                                 </td>
    307                                                         <?php
    308                                                         break;
    309 
    310                                                         default: ?>
    311                                                                 <td><?php do_action( 'manage_users_custom_column', $column_name, $user['ID'] ); ?></td>
    312                                                         <?php
    313                                                         break;
    314                                                 }
    315                                         endforeach
    316                                         ?>
    317                                         </tr>
    318                                         <?php
    319                                 }
    320                         } else {
    321                         ?>
    322                                 <tr>
    323                                         <td colspan="<?php echo (int) count($users_columns); ?>"><?php _e( 'No users found.' ) ?></td>
    324                                 </tr>
    325                                 <?php
    326                         } // end if ($users)
    327                         ?>
    328                         </tbody>
    329                 </table>
    330 
    331                 <div class="tablenav">
    332                         <?php
    333                         if ( $page_links )
    334                                 echo "<div class='tablenav-pages'>$page_links_text</div>";
    335                         ?>
    336 
    337                         <div class="alignleft actions">
    338                                 <select name="action2">
    339                                         <option value="-1" selected="selected"><?php _e( 'Bulk Actions' ); ?></option>
    340                                         <option value="delete"><?php _e( 'Delete' ); ?></option>
    341                                         <option value="spam"><?php _ex( 'Mark as Spam', 'user' ); ?></option>
    342                                         <option value="notspam"><?php _ex( 'Not Spam', 'user' ); ?></option>
    343                                 </select>
    344                                 <input type="submit" value="<?php esc_attr_e( 'Apply' ); ?>" name="doaction2" id="doaction2" class="button-secondary action" />
    345                         </div>
    346                         <br class="clear" />
    347                 </div>
    348 
    349                 </form>
    350                 </div>
    351 
    352 <?php
    353 if ( apply_filters( 'show_adduser_fields', true ) ) :
    354 ?>
    355 <div class="wrap" id="form-add-user">
    356         <h3><?php _e( 'Add User' ) ?></h3>
    357         <form action="ms-edit.php?action=adduser" method="post">
    358         <table class="form-table">
    359                 <tr class="form-field form-required">
    360                         <th scope="row"><?php _e( 'Username' ) ?></th>
    361                         <td><input type="text" class="regular-text" name="user[username]" /></td>
    362                 </tr>
    363                 <tr class="form-field form-required">
    364                         <th scope="row"><?php _e( 'Email' ) ?></th>
    365                         <td><input type="text" class="regular-text" name="user[email]" /></td>
    366                 </tr>
    367                 <tr class="form-field">
    368                         <td colspan="2"><?php _e( 'Username and password will be mailed to the above email address.' ) ?></td>
    369                 </tr>
    370         </table>
    371         <p class="submit">
    372                 <?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ) ?>
    373                 <input class="button" type="submit" value="<?php esc_attr_e( 'Add user' ) ?>" /></p>
    374         </form>
    375 </div>
    376 <?php endif; ?>
    377 
    378 <?php include( './admin-footer.php' ); ?>
     12wp_redirect( network_admin_url('users.php') );
     13 No newline at end of file
  • wp-admin/plugins.php

    Property changes on: wp-admin/ms-users.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
    122122                        $title = __( 'Upgrade Plugins' );
    123123                        $parent_file = 'plugins.php';
    124124
    125                         require_once( './admin-header.php' );
     125                        require_once( ABSPATH . 'wp-admin/admin-header.php' );
    126126
    127127                        echo '<div class="wrap">';
    128128                        screen_icon();
     
    219219
    220220                        if ( ! isset($_REQUEST['verify-delete']) ) {
    221221                                wp_enqueue_script('jquery');
    222                                 require_once('./admin-header.php');
     222                                require_once(ABSPATH . 'wp-admin/admin-header.php');
    223223                                ?>
    224224                        <div class="wrap">
    225225                                <?php
     
    327327
    328328$title = __('Plugins');
    329329
    330 require_once('./admin-header.php');
     330require_once(ABSPATH . 'wp-admin/admin-header.php');
    331331
    332332$invalid = validate_active_plugins();
    333333if ( !empty($invalid) )
     
    345345        <div id="message" class="updated"><p><?php echo $errmsg; ?></p>
    346346        <?php
    347347                if ( !isset($_GET['charsout']) && wp_verify_nonce($_GET['_error_nonce'], 'plugin-activation-error_' . $plugin) ) { ?>
    348         <iframe style="border:0" width="100%" height="70px" src="<?php echo admin_url('plugins.php?action=error_scrape&amp;plugin=' . esc_attr($plugin) . '&amp;_wpnonce=' . esc_attr($_GET['_error_nonce'])); ?>"></iframe>
     348        <iframe style="border:0" width="100%" height="70px" src="<?php echo 'plugins.php?action=error_scrape&amp;plugin=' . esc_attr($plugin) . '&amp;_wpnonce=' . esc_attr($_GET['_error_nonce']); ?>"></iframe>
    349349        <?php
    350350                }
    351351        ?>
     
    384384$recent_plugins = array();
    385385$recently_activated = get_option('recently_activated', array());
    386386$upgrade_plugins = array();
    387 $network_plugins = array();
    388387$mustuse_plugins = $dropins_plugins = array();
    389 if ( ! is_multisite() || current_user_can('manage_network_plugins') ) {
     388if ( ! is_multisite() || ( is_network_admin() && current_user_can('manage_network_plugins') ) ) {
    390389        if ( apply_filters( 'show_advanced_plugins', true, 'mustuse' ) )
    391390                $mustuse_plugins = get_mu_plugins();
    392391        if ( apply_filters( 'show_advanced_plugins', true, 'dropins' ) )
     
    413412unset( $plugin_array_name );
    414413
    415414foreach ( (array) $all_plugins as $plugin_file => $plugin_data) {
     415        if ( is_network_admin() )
     416                $is_active = is_plugin_active_for_network($plugin_file);
     417        else
     418                $is_active = is_plugin_active($plugin_file);
    416419        // Filter into individual sections
    417         if ( is_multisite() && is_network_only_plugin( $plugin_file ) && !current_user_can( 'manage_network_plugins' ) ) {
     420        if ( is_plugin_active_for_network($plugin_file) && !is_network_admin() ) {
    418421                unset( $all_plugins[ $plugin_file ] );
    419422                continue;
    420         } elseif ( is_plugin_active_for_network($plugin_file) ) {
    421                 $network_plugins[ $plugin_file ] = $plugin_data;
    422         } elseif ( is_plugin_active($plugin_file) ) {
     423        } elseif ( is_multisite() && is_network_only_plugin( $plugin_file ) && !current_user_can( 'manage_network_plugins' ) ) {
     424                unset( $all_plugins[ $plugin_file ] );
     425                continue;
     426        } elseif ( $is_active ) {
    423427                $active_plugins[ $plugin_file ] = $plugin_data;
    424428        } else {
    425                 if ( isset( $recently_activated[ $plugin_file ] ) ) // Was the plugin recently activated?
     429                if ( !is_network_admin() && isset( $recently_activated[ $plugin_file ] ) ) // Was the plugin recently activated?
    426430                        $recent_plugins[ $plugin_file ] = $plugin_data;
    427431                $inactive_plugins[ $plugin_file ] = $plugin_data;
    428432        }
     
    439443$total_active_plugins = count($active_plugins);
    440444$total_recent_plugins = count($recent_plugins);
    441445$total_upgrade_plugins = count($upgrade_plugins);
    442 $total_network_plugins = count($network_plugins);
    443446$total_mustuse_plugins = count($mustuse_plugins);
    444447$total_dropins_plugins = count($dropins_plugins);
    445448
     
    543546                );
    544547
    545548                if ( 'mustuse' == $context ) {
     549                        if ( is_multisite() && !is_network_admin() )
     550                                continue;
    546551                        $is_active = true;
    547552                } elseif ( 'dropins' == $context ) {
     553                        if ( is_multisite() && !is_network_admin() )
     554                                continue;
    548555                        $dropins = _get_dropins();
    549556                        $plugin_name = $plugin_file;
    550557                        if ( $plugin_file != $plugin_data['Name'] )
     
    563570                                $description .= '<p>' . $plugin_data['Description'] . '</p>';
    564571                } else {
    565572                        $is_active_for_network = is_plugin_active_for_network($plugin_file);
    566                         $is_active = $is_active_for_network || is_plugin_active( $plugin_file );
    567                         if ( $is_active_for_network && !is_super_admin() )
     573                        if ( is_network_admin() )
     574                                $is_active = $is_active_for_network;
     575                        else
     576                                $is_active = is_plugin_active( $plugin_file );
     577
     578                        if ( $is_active_for_network && !is_super_admin() && !is_network_admin() )
    568579                                continue;
    569580
    570                         if ( $is_active ) {
     581                        if ( is_network_admin() ) {
    571582                                if ( $is_active_for_network ) {
    572                                         if ( is_super_admin() )
     583                                        if ( current_user_can( 'manage_network_plugins' ) )
    573584                                                $actions['network_deactivate'] = '<a href="' . wp_nonce_url('plugins.php?action=deactivate&amp;networkwide=1&amp;plugin=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page, 'deactivate-plugin_' . $plugin_file) . '" title="' . __('Deactivate this plugin') . '">' . __('Network Deactivate') . '</a>';
    574585                                } else {
    575                                         $actions['deactivate'] = '<a href="' . wp_nonce_url('plugins.php?action=deactivate&amp;plugin=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page, 'deactivate-plugin_' . $plugin_file) . '" title="' . __('Deactivate this plugin') . '">' . __('Deactivate') . '</a>';
     586                                        if ( current_user_can( 'manage_network_plugins' ) )
     587                                                $actions['network_activate'] = '<a href="' . wp_nonce_url('plugins.php?action=activate&amp;networkwide=1&amp;plugin=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page, 'activate-plugin_' . $plugin_file) . '" title="' . __('Activate this plugin for all sites in this network') . '" class="edit">' . __('Network Activate') . '</a>';
     588                                        if ( current_user_can('delete_plugins') )
     589                                                $actions['delete'] = '<a href="' . wp_nonce_url('plugins.php?action=delete-selected&amp;checked[]=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page, 'bulk-manage-plugins') . '" title="' . __('Delete this plugin') . '" class="delete">' . __('Delete') . '</a>';
    576590                                }
    577591                        } else {
    578                                 if ( is_multisite() && is_network_only_plugin( $plugin_file ) )
    579                                         $actions['network_only'] = '<span title="' . __('This plugin can only be activated for all sites in a network') . '">' . __('Network Only') . '</span>';
    580                                 else
     592                                if ( $is_active ) {
     593                                        $actions['deactivate'] = '<a href="' . wp_nonce_url('plugins.php?action=deactivate&amp;plugin=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page, 'deactivate-plugin_' . $plugin_file) . '" title="' . __('Deactivate this plugin') . '">' . __('Deactivate') . '</a>';
     594                                } else {
     595                                        if ( is_network_only_plugin( $plugin_file ) && !is_network_admin() )
     596                                                continue;
     597
    581598                                        $actions['activate'] = '<a href="' . wp_nonce_url('plugins.php?action=activate&amp;plugin=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page, 'activate-plugin_' . $plugin_file) . '" title="' . __('Activate this plugin') . '" class="edit">' . __('Activate') . '</a>';
    582599
    583                                 if ( is_multisite() && current_user_can( 'manage_network_plugins' ) )
    584                                         $actions['network_activate'] = '<a href="' . wp_nonce_url('plugins.php?action=activate&amp;networkwide=1&amp;plugin=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page, 'activate-plugin_' . $plugin_file) . '" title="' . __('Activate this plugin for all sites in this network') . '" class="edit">' . __('Network Activate') . '</a>';
     600                                        if ( current_user_can('delete_plugins') )
     601                                                $actions['delete'] = '<a href="' . wp_nonce_url('plugins.php?action=delete-selected&amp;checked[]=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page, 'bulk-manage-plugins') . '" title="' . __('Delete this plugin') . '" class="delete">' . __('Delete') . '</a>';
     602                                } // end if $is_active
     603                         } // end if is_network_admin()
    585604
    586                                 if ( current_user_can('delete_plugins') )
    587                                         $actions['delete'] = '<a href="' . wp_nonce_url('plugins.php?action=delete-selected&amp;checked[]=' . $plugin_file . '&amp;plugin_status=' . $context . '&amp;paged=' . $page, 'bulk-manage-plugins') . '" title="' . __('Delete this plugin') . '" class="delete">' . __('Delete') . '</a>';
    588                         } // end if $is_active
    589 
    590605                        if ( current_user_can('edit_plugins') && is_writable(WP_PLUGIN_DIR . '/' . $plugin_file) )
    591606                                $actions['edit'] = '<a href="plugin-editor.php?file=' . $plugin_file . '" title="' . __('Open this file in the Plugin Editor') . '" class="edit">' . __('Edit') . '</a>';
    592607                } // end if $context
     
    689704
    690705<?php do_action( 'pre_current_active_plugins', $all_plugins ) ?>
    691706
    692 <form method="post" action="<?php echo admin_url('plugins.php') ?>">
     707<form method="post" action="plugins.php">
    693708<?php wp_nonce_field('bulk-manage-plugins') ?>
    694709<input type="hidden" name="plugin_status" value="<?php echo esc_attr($status) ?>" />
    695710<input type="hidden" name="paged" value="<?php echo esc_attr($page) ?>" />
     
    783798</div>
    784799
    785800<?php
    786 include('./admin-footer.php');
     801include(ABSPATH . 'wp-admin/admin-footer.php');
    787802?>
  • wp-admin/user-edit.php

     
    8484                        $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->signups} SET user_email = %s WHERE user_login = %s", $user->user_email, $current_user->user_login ) );
    8585                wp_update_user( get_object_vars( $user ) );
    8686                delete_option( $current_user->ID . '_new_email' );
    87                 wp_redirect( add_query_arg( array('updated' => 'true'), admin_url( 'profile.php' ) ) );
     87                wp_redirect( add_query_arg( array('updated' => 'true'), self_admin_url( 'profile.php' ) ) );
    8888                die();
    8989        }
    9090} elseif ( is_multisite() && IS_PROFILE_PAGE && !empty( $_GET['dismiss'] ) && $current_user->ID . '_new_email' == $_GET['dismiss'] ) {
    9191        delete_option( $current_user->ID . '_new_email' );
    92         wp_redirect( add_query_arg( array('updated' => 'true'), admin_url( 'profile.php' ) ) );
     92        wp_redirect( add_query_arg( array('updated' => 'true'), self_admin_url( 'profile.php' ) ) );
    9393        die();
    9494}
    9595
     
    138138        if ( $delete_role ) // stops users being added to current blog when they are edited
    139139                delete_user_meta( $user_id, $blog_prefix . 'capabilities' );
    140140
    141         if ( is_multisite() && !IS_PROFILE_PAGE && current_user_can( 'manage_network_options' ) && !isset($super_admins) && empty( $_POST['super_admin'] ) == is_super_admin( $user_id ) )
     141        if ( is_multisite() && is_network_admin() & !IS_PROFILE_PAGE && current_user_can( 'manage_network_options' ) && !isset($super_admins) && empty( $_POST['super_admin'] ) == is_super_admin( $user_id ) )
    142142                empty( $_POST['super_admin'] ) ? revoke_super_admin( $user_id ) : grant_super_admin( $user_id );
    143143}
    144144
     
    155155if ( !current_user_can('edit_user', $user_id) )
    156156        wp_die(__('You do not have permission to edit this user.'));
    157157
    158 include ('admin-header.php');
     158include (ABSPATH . 'wp-admin/admin-header.php');
    159159?>
    160160
    161161<?php if ( !IS_PROFILE_PAGE && is_super_admin( $profileuser->ID ) && current_user_can( 'manage_network_options' ) ) { ?>
     
    177177<?php screen_icon(); ?>
    178178<h2><?php echo esc_html( $title ); ?></h2>
    179179
    180 <form id="your-profile" action="<?php echo esc_url( admin_url( IS_PROFILE_PAGE ? 'profile.php' : 'user-edit.php' ) ); ?>" method="post"<?php do_action('user_edit_form_tag'); ?>>
     180<form id="your-profile" action="<?php echo esc_url( self_admin_url( IS_PROFILE_PAGE ? 'profile.php' : 'user-edit.php' ) ); ?>" method="post"<?php do_action('user_edit_form_tag'); ?>>
    181181<?php wp_nonce_field('update-user_' . $user_id) ?>
    182182<?php if ( $wp_http_referer ) : ?>
    183183        <input type="hidden" name="wp_http_referer" value="<?php echo esc_url($wp_http_referer); ?>" />
     
    245245        echo '<option value="" selected="selected">' . __('&mdash; No role for this site &mdash;') . '</option>';
    246246?>
    247247</select>
    248 <?php if ( is_multisite() && current_user_can( 'manage_network_options' ) && !isset($super_admins) ) { ?>
     248<?php if ( is_multisite() && is_network_admin() && current_user_can( 'manage_network_options' ) && !isset($super_admins) ) { ?>
    249249<p><label><input type="checkbox" id="super_admin" name="super_admin"<?php checked( is_super_admin( $profileuser->ID ) ); ?> /> <?php _e( 'Grant this user super admin privileges for the Network.'); ?></label></p>
    250250<?php } ?>
    251251</td></tr>
     
    307307        $new_email = get_option( $current_user->ID . '_new_email' );
    308308        if ( $new_email && $new_email != $current_user->user_email ) : ?>
    309309        <div class="updated inline">
    310         <p><?php printf( __('There is a pending change of your e-mail to <code>%1$s</code>. <a href="%2$s">Cancel</a>'), $new_email['newemail'], esc_url( admin_url( 'profile.php?dismiss=' . $current_user->ID . '_new_email' ) ) ); ?></p>
     310        <p><?php printf( __('There is a pending change of your e-mail to <code>%1$s</code>. <a href="%2$s">Cancel</a>'), $new_email['newemail'], esc_url( self_admin_url( 'profile.php?dismiss=' . $current_user->ID . '_new_email' ) ) ); ?></p>
    311311        </div>
    312312        <?php endif; ?>
    313313        </td>
     
    398398        }
    399399</script>
    400400<?php
    401 include('./admin-footer.php');
     401include( ABSPATH . 'wp-admin/admin-footer.php');
    402402?>
  • wp-admin/ms-themes.php

     
    99
    1010require_once( './admin.php' );
    1111
    12 if ( ! current_user_can( 'manage_network_themes' ) )
    13         wp_die( __( 'You do not have permission to access this page.' ) );
    14 
    15 $title = __( 'Network Themes' );
    16 $parent_file = 'ms-admin.php';
    17 
    18 add_contextual_help($current_screen,
    19         '<p>' . __('This screen enables and disables the inclusion of themes available to choose in the Appearance menu for each site. It does not activate or deactivate which theme a site is currently using.') . '</p>' .
    20         '<p>' . __('If the network admin disables a theme that is in use, it can still remain selected on that site. If another theme is chosen, the disabled theme will not appear in the site&#8217;s Appearance > Themes screen.') . '</p>' .
    21         '<p>' . __('Themes can be enabled on a site by site basis by the network admin on the Edit Site screen you go to via the Edit action link on the Sites screen.') . '</p>' .
    22         '<p><strong>' . __('For more information:') . '</strong></p>' .
    23         '<p>' . __('<a href="http://codex.wordpress.org/Super_Admin_Themes_SubPanel" target="_blank">Documentation on Network Themes</a>') . '</p>' .
    24         '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    25 );
    26 
    27 require_once( './admin-header.php' );
    28 
    29 if ( isset( $_GET['updated'] ) ) {
    30         ?>
    31         <div id="message" class="updated"><p><?php _e( 'Site themes saved.' ) ?></p></div>
    32         <?php
    33 }
    34 
    35 $themes = get_themes();
    36 $allowed_themes = get_site_allowed_themes();
    37 ?>
    38 <div class="wrap">
    39         <form action="<?php echo esc_url( admin_url( 'ms-edit.php?action=updatethemes' ) ); ?>" method="post">
    40                 <?php screen_icon(); ?>
    41                 <h2><?php _e( 'Network Themes' ) ?></h2>
    42                 <p><?php _e( 'Themes must be enabled for your network before they will be available to individual sites.' ) ?></p>
    43                 <p class="submit">
    44                         <input type="submit" value="<?php _e( 'Apply Changes' ) ?>" /></p>
    45                 <table class="widefat">
    46                         <thead>
    47                                 <tr>
    48                                         <th style="width:15%;"><?php _e( 'Enable' ) ?></th>
    49                                         <th style="width:25%;"><?php _e( 'Theme' ) ?></th>
    50                                         <th style="width:10%;"><?php _e( 'Version' ) ?></th>
    51                                         <th style="width:60%;"><?php _e( 'Description' ) ?></th>
    52                                 </tr>
    53                         </thead>
    54                         <tbody id="plugins">
    55                         <?php
    56                         $total_theme_count = $activated_themes_count = 0;
    57                         $class = '';
    58                         foreach ( (array) $themes as $key => $theme ) {
    59                                 $total_theme_count++;
    60                                 $theme_key = esc_html( $theme['Stylesheet'] );
    61                                 $class = ( 'alt' == $class ) ? '' : 'alt';
    62                                 $class1 = $enabled = $disabled = '';
    63                                 $enabled = $disabled = false;
    64 
    65                                 if ( isset( $allowed_themes[$theme_key] ) == true ) {
    66                                         $enabled = true;
    67                                         $activated_themes_count++;
    68                                         $class1 = 'active';
    69                                 } else {
    70                                         $disabled = true;
    71                                 }
    72                                 ?>
    73                                 <tr valign="top" class="<?php echo $class . ' ' . $class1; ?>">
    74                                         <td>
    75                                                 <label><input name="theme[<?php echo $theme_key ?>]" type="radio" id="enabled_<?php echo $theme_key ?>" value="enabled" <?php checked( $enabled ) ?> /> <?php _e( 'Yes' ) ?></label>
    76                                                 &nbsp;&nbsp;&nbsp;
    77                                                 <label><input name="theme[<?php echo $theme_key ?>]" type="radio" id="disabled_<?php echo $theme_key ?>" value="disabled" <?php checked( $disabled ) ?> /> <?php _e( 'No' ) ?></label>
    78                                         </td>
    79                                         <th scope="row" style="text-align:left;"><?php echo $key ?></th>
    80                                         <td><?php echo $theme['Version'] ?></td>
    81                                         <td><?php echo $theme['Description'] ?></td>
    82                                 </tr>
    83                         <?php } ?>
    84                         </tbody>
    85                 </table>
    86 
    87                 <p class="submit">
    88                         <input type="submit" value="<?php _e( 'Apply Changes' ) ?>" /></p>
    89         </form>
    90 
    91         <h3><?php _e( 'Total' )?></h3>
    92         <p>
    93                 <?php printf( __( 'Themes Installed: %d' ), $total_theme_count); ?>
    94                 <br />
    95                 <?php printf( __( 'Themes Enabled: %d' ), $activated_themes_count); ?>
    96         </p>
    97 </div>
    98 
    99 <?php include( './admin-footer.php' ); ?>
     12wp_redirect( network_admin_url('themes.php') );
     13 No newline at end of file
  • wp-admin/ms-admin.php

    Property changes on: wp-admin/ms-themes.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
    99
    1010require_once( './admin.php' );
    1111
    12 if ( !is_multisite() )
    13         wp_die( __( 'Multisite support is not enabled.' ) );
    14 
    15 if ( ! current_user_can( 'manage_network' ) )
    16         wp_die( __( 'You do not have permission to access this page.' ) );
    17 
    18 $title = __( 'Network Admin' );
    19 $parent_file = 'ms-admin.php';
    20 
    21 add_contextual_help($current_screen,
    22         '<p>' . __('Until WordPress 3.0, running multiple sites required using WordPress MU instead of regular WordPress. In version 3.0, these applications have merged. If you are a former MU user, you should be aware of the following changes:') . '</p>' .
    23         '<ul><li>' . __('Site Admin is now Super Admin (we highly encourage you to get yourself a cape!).') . '</li>' .
    24         '<li>' . __('Blogs are now called Sites; Site is now called Network.') . '</li></ul>' .
    25         '<p>' . __('This screen provides the network administrator with links to the screens for Sites and Users to either create a new site or user, or to search existing users and sites. Those screens are also accessible through the left-hand navigation in the Super Admin section.') . '</p>' .
    26         '<p><strong>' . __('For more information:') . '</strong></p>' .
    27         '<p>' . __('<a href="http://codex.wordpress.org/Super_Admin_Super_Admin_Menu" target="_blank">Documentation on Super Admin Menu</a>') . '</p>' .
    28         '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    29 );
    30 
    31 require_once( './admin-header.php' );
    32 
    33 $c_users = get_user_count();
    34 $c_blogs = get_blog_count();
    35 
    36 $user_text = sprintf( _n( '%s user', '%s users', $c_users ), number_format_i18n( $c_users ) );
    37 $blog_text = sprintf( _n( '%s site', '%s sites', $c_blogs ), number_format_i18n( $c_blogs ) );
    38 
    39 $sentence = sprintf( __( 'You have %1$s and %2$s.' ), $blog_text, $user_text );
    40 ?>
    41 
    42 <div class="wrap">
    43         <?php screen_icon(); ?>
    44         <h2><?php echo esc_html( $title ); ?></h2>
    45 
    46         <ul class="subsubsub">
    47         <li><a href="ms-sites.php#form-add-site"><?php _e( 'Create a New Site' ); ?></a> |</li>
    48         <li><a href="ms-users.php#form-add-user"><?php _e( 'Create a New User' ); ?></a></li>
    49         </ul>
    50         <br class="clear" />
    51 
    52         <p class="youhave"><?php echo $sentence; ?></p>
    53         <?php do_action( 'wpmuadminresult', '' ); ?>
    54 
    55         <form name="searchform" action="ms-users.php" method="get">
    56                 <p>
    57                         <input type="hidden" name="action" value="users" />
    58                         <input type="text" name="s" value="" size="17" />
    59                         <input class="button" type="submit" name="submit" value="<?php esc_attr_e( 'Search Users' ); ?>" />
    60                 </p>
    61         </form>
    62 
    63         <form name="searchform" action="ms-sites.php" method="get">
    64                 <p>
    65                         <input type="hidden" name="action" value="blogs" />
    66                         <input type="hidden" name="searchaction" value="name" />
    67                         <input type="text" name="s" value="" size="17" />
    68                         <input class="button" type="submit" name="blog_name" value="<?php esc_attr_e( 'Search Sites' ); ?>" />
    69                 </p>
    70         </form>
    71 
    72         <?php do_action( 'mu_rightnow_end' ); ?>
    73         <?php do_action( 'mu_activity_box_end' ); ?>
    74 </div>
    75 
    76 <?php include( './admin-footer.php' ); ?>
     12wp_redirect( network_admin_url() );
     13 No newline at end of file
  • wp-admin/ms-options.php

    Property changes on: wp-admin/ms-admin.php
    ___________________________________________________________________
    Added: svn:eol-style
       + native
    
     
    99
    1010require_once( './admin.php' );
    1111
    12 if ( ! is_multisite() )
    13         wp_die( __( 'Multisite support is not enabled.' ) );
    14 
    15 if ( ! current_user_can( 'manage_network_options' ) )
    16         wp_die( __( 'You do not have permission to access this page.' ) );
    17 
    18 $title = __( 'Network Options' );
    19 $parent_file = 'ms-admin.php';
    20 
    21 add_contextual_help($current_screen,
    22         '<p>' . __('This screen sets and changes options for the network as a whole. The first site is the main site in the network and network options are pulled from that original site&#8217;s options.') . '</p>' .
    23         '<p>' . __('Operational settings has fields for the network&#8217;s name and admin email.') . '</p>' .
    24         '<p>' . __('Dashboard Site is an option to give a site to users who do not have a site on the system. Their default role is Subscriber, but that default can be changed. The Admin Notice Feed can provide a notice on all dashboards of the latest post via RSS or Atom, or provide no such notice if left blank.') . '</p>' .
    25         '<p>' . __('Registration settings can disable/enable public signups. If you let others sign up for a site, install spam plugins. Spaces, not commas, should separate names banned as sites for this network.') . '</p>' .
    26         '<p>' . __('New site settings are defaults applied when a new site is created in the network. These include welcome email for when a new site or user account is registered, and what&#8127;s put in the first post, page, comment, comment author, and comment URL.') . '</p>' .
    27         '<p>' . __('Upload settings control the size of the uploaded files and the amount of available upload space for each site. You can change the default value for specific sites when you edit a particular site. Allowed file types are also listed (space separated only).') . '</p>' .
    28         '<p>' . __('Checkboxes for media upload buttons set which are shown in the visual editor. If unchecked, a generic upload button is still visible; other media types can still be uploaded if on the allowed file types list.') . '</p>' .
    29         '<p>' . __('Menu setting enables/disables the plugin menus from appearing for non super admins, so that only super admins, not site admins, have access to activate plugins.') . '</p>' .
    30         '<p>' . __('Super admins can no longer be added on the Options screen. You must now go to the list of existing users on Super Admin > Users and click on Username or the Edit action link below that name. This goes to an Edit User page where you can check a box to grant super admin privileges.') . '</p>' .
    31         '<p><strong>' . __('For more information:') . '</strong></p>' .
    32         '<p>' . __('<a href="http://codex.wordpress.org/Super_Admin_Options_SubPanel" target="_blank">Network Options Documentation</a>') . '</p>' .
    33         '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    34 );
    35 
    36 include( './admin-header.php' );
    37 
    38 if (isset($_GET['updated'])) {
    39         ?>
    40         <div id="message" class="updated"><p><?php _e( 'Options saved.' ) ?></p></div>
    41         <?php
    42 }
    43 ?>
    44 
    45 <div class="wrap">
    46         <?php screen_icon(); ?>
    47         <h2><?php _e( 'Network Options' ) ?></h2>
    48         <form method="post" action="ms-edit.php?action=siteoptions">
    49                 <?php wp_nonce_field( 'siteoptions' ); ?>
    50                 <h3><?php _e( 'Operational Settings' ); ?></h3>
    51                 <table class="form-table">
    52                         <tr valign="top">
    53                                 <th scope="row"><label for="site_name"><?php _e( 'Network Name' ) ?></label></th>
    54                                 <td>
    55                                         <input name="site_name" type="text" id="site_name" class="regular-text" value="<?php echo esc_attr( $current_site->site_name ) ?>" />
    56                                         <br />
    57                                         <?php _e( 'What you would like to call this website.' ) ?>
    58                                 </td>
    59                         </tr>
    60 
    61                         <tr valign="top">
    62                                 <th scope="row"><label for="admin_email"><?php _e( 'Network Admin Email' ) ?></label></th>
    63                                 <td>
    64                                         <input name="admin_email" type="text" id="admin_email" class="regular-text" value="<?php echo esc_attr( get_site_option('admin_email') ) ?>" />
    65                                         <br />
    66                                         <?php printf( __( 'Registration and support emails will come from this address. An address such as <code>support@%s</code> is recommended.' ), $current_site->domain ); ?>
    67                                 </td>
    68                         </tr>
    69                 </table>
    70                 <h3><?php _e( 'Dashboard Settings' ); ?></h3>
    71                 <table class="form-table">
    72                         <tr valign="top">
    73                                 <th scope="row"><label for="dashboard_blog"><?php _e( 'Dashboard Site' ) ?></label></th>
    74                                 <td>
    75                                         <?php
    76                                         if ( $dashboard_blog = get_site_option( 'dashboard_blog' ) ) {
    77                                                 $details = get_blog_details( $dashboard_blog );
    78                                                 $blogname = untrailingslashit( sanitize_user( str_replace( '.', '', str_replace( $current_site->domain . $current_site->path, '', $details->domain . $details->path ) ) ) );
    79                                         } else {
    80                                                 $blogname = '';
    81                                         }?>
    82                                         <input name="dashboard_blog_orig" type="hidden" id="dashboard_blog_orig" value="<?php echo esc_attr( $blogname ); ?>" />
    83                                         <input name="dashboard_blog" type="text" id="dashboard_blog" value="<?php echo esc_attr( $blogname ); ?>" class="regular-text" />
    84                                         <br />
    85                                         <?php _e( 'Site path (&#8220;dashboard&#8221;, &#8220;control&#8221;, &#8220;manager&#8221;, etc.) or blog ID.<br />New users are added to this site as the user role defined below if they don&#8217;t have a site. Leave blank for the main site. Users with the Subscriber role on the old site will be moved to the new site if changed. The new site will be created if it does not exist.' ); ?>
    86                                 </td>
    87                         </tr>
    88                         <tr valign="top">
    89                                 <th scope="row"><label for="default_user_role"><?php _e( 'Dashboard User Default Role' ) ?></label></th>
    90                                 <td>
    91                                         <select name="default_user_role" id="default_user_role"><?php
    92                                         wp_dropdown_roles( get_site_option( 'default_user_role', 'subscriber' ) );
    93                                         ?>
    94                                         </select>
    95                                         <br />
    96                                         <?php _e( 'The default role for new users on the Dashboard site. &#8220;Subscriber&#8221; or &#8220;Contributor&#8221; roles are recommended.' ); ?>
    97                                 </td>
    98                         </tr>
    99                         <tr valign="top">
    100                                 <th scope="row"><label for="admin_notice_feed"><?php _e( 'Admin Notice Feed' ) ?></label></th>
    101                                 <td><input name="admin_notice_feed" class="large-text" type="text" id="admin_notice_feed" value="<?php echo esc_attr( get_site_option( 'admin_notice_feed' ) ) ?>" size="80" /><br />
    102                                 <?php _e( 'Display the latest post from this RSS or Atom feed on all site dashboards. Leave blank to disable.' ); ?><br />
    103 
    104                                 <?php if ( get_site_option( 'admin_notice_feed' ) != get_home_url( $current_site->id, 'feed/' ) )
    105                                         echo __( 'A good one to use would be the feed from your main site: ' ) . esc_url( get_home_url( $current_site->id, 'feed/' ) ) ?></td>
    106                         </tr>
    107                 </table>
    108                 <h3><?php _e( 'Registration Settings' ); ?></h3>
    109                 <table class="form-table">
    110                         <tr valign="top">
    111                                 <th scope="row"><?php _e( 'Allow new registrations' ) ?></th>
    112                                 <?php
    113                                 if ( !get_site_option( 'registration' ) )
    114                                         update_site_option( 'registration', 'none' );
    115                                 $reg = get_site_option( 'registration' );
    116                                 ?>
    117                                 <td>
    118                                         <label><input name="registration" type="radio" id="registration1" value="none"<?php checked( $reg, 'none') ?> /> <?php _e( 'Registration is disabled.' ); ?></label><br />
    119                                         <label><input name="registration" type="radio" id="registration2" value="user"<?php checked( $reg, 'user') ?> /> <?php _e( 'User accounts may be registered.' ); ?></label><br />
    120                                         <label><input name="registration" type="radio" id="registration3" value="blog"<?php checked( $reg, 'blog') ?> /> <?php _e( 'Logged in users may register new sites.' ); ?></label><br />
    121                                         <label><input name="registration" type="radio" id="registration4" value="all"<?php checked( $reg, 'all') ?> /> <?php _e( 'Both sites and user accounts can be registered.' ); ?></label><br />
    122                                         <p><?php _e( 'Disable or enable registration and who or what can be registered. (Default is disabled.)' ); ?></p>
    123                                         <?php if ( is_subdomain_install() ) {
    124                                                 echo '<p>' . __( 'If registration is disabled, please set <code>NOBLOGREDIRECT</code> in <code>wp-config.php</code> to a URL you will redirect visitors to if they visit a non-existent site.' ) . '</p>';
    125                                         } ?>
    126                                 </td>
    127                         </tr>
    128 
    129                         <tr valign="top">
    130                                 <th scope="row"><?php _e( 'Registration notification' ) ?></th>
    131                                 <?php
    132                                 if ( !get_site_option( 'registrationnotification' ) )
    133                                         update_site_option( 'registrationnotification', 'yes' );
    134                                 ?>
    135                                 <td>
    136                                         <label><input name="registrationnotification" type="checkbox" id="registrationnotification" value="yes"<?php checked( get_site_option( 'registrationnotification' ), 'yes' ) ?> /> <?php _e( 'Send the network admin an email notification every time someone registers a site or user account.' ) ?></label>
    137                                 </td>
    138                         </tr>
    139 
    140                         <tr valign="top" id="addnewusers">
    141                                 <th scope="row"><?php _e( 'Add New Users' ) ?></th>
    142                                 <td>
    143                                         <label><input name="add_new_users" type="checkbox" id="add_new_users" value="1"<?php checked( get_site_option( 'add_new_users' ) ) ?> /> <?php _e( 'Allow site administrators to add new users to their site via the "Users->Add New" page.' ); ?></label>
    144                                 </td>
    145                         </tr>
    146 
    147                         <tr valign="top">
    148                                 <th scope="row"><label for="illegal_names"><?php _e( 'Banned Names' ) ?></label></th>
    149                                 <td>
    150                                         <input name="illegal_names" type="text" id="illegal_names" class="large-text" value="<?php echo esc_attr( implode( " ", get_site_option( 'illegal_names' ) ) ); ?>" size="45" />
    151                                         <br />
    152                                         <?php _e( 'Users are not allowed to register these sites. Separate names by spaces.' ) ?>
    153                                 </td>
    154                         </tr>
    155 
    156                         <tr valign="top">
    157                                 <th scope="row"><label for="limited_email_domains"><?php _e( 'Limited Email Registrations' ) ?></label></th>
    158                                 <td>
    159                                         <?php $limited_email_domains = get_site_option( 'limited_email_domains' );
    160                                         $limited_email_domains = str_replace( ' ', "\n", $limited_email_domains ); ?>
    161                                         <textarea name="limited_email_domains" id="limited_email_domains" cols="45" rows="5">
    162 <?php echo wp_htmledit_pre( $limited_email_domains == '' ? '' : implode( "\n", (array) $limited_email_domains ) ); ?></textarea>
    163                                         <br />
    164                                         <?php _e( 'If you want to limit site registrations to certain domains. One domain per line.' ) ?>
    165                                 </td>
    166                         </tr>
    167 
    168                         <tr valign="top">
    169                                 <th scope="row"><label for="banned_email_domains"><?php _e('Banned Email Domains') ?></label></th>
    170                                 <td>
    171                                         <textarea name="banned_email_domains" id="banned_email_domains" cols="45" rows="5">
    172 <?php echo wp_htmledit_pre( get_site_option( 'banned_email_domains' ) == '' ? '' : implode( "\n", (array) get_site_option( 'banned_email_domains' ) ) ); ?></textarea>
    173                                         <br />
    174                                         <?php _e( 'If you want to ban domains from site registrations. One domain per line.' ) ?>
    175                                 </td>
    176                         </tr>
    177 
    178                 </table>
    179                 <h3><?php _e('New Site Settings'); ?></h3>
    180                 <table class="form-table">
    181 
    182                         <tr valign="top">
    183                                 <th scope="row"><label for="welcome_email"><?php _e( 'Welcome Email' ) ?></label></th>
    184                                 <td>
    185                                         <textarea name="welcome_email" id="welcome_email" rows="5" cols="45" class="large-text">
    186 <?php echo wp_htmledit_pre( stripslashes( get_site_option( 'welcome_email' ) ) ) ?></textarea>
    187                                         <br />
    188                                         <?php _e( 'The welcome email sent to new site owners.' ) ?>
    189                                 </td>
    190                         </tr>
    191                         <tr valign="top">
    192                                 <th scope="row"><label for="welcome_user_email"><?php _e( 'Welcome User Email' ) ?></label></th>
    193                                 <td>
    194                                         <textarea name="welcome_user_email" id="welcome_user_email" rows="5" cols="45" class="large-text">
    195 <?php echo wp_htmledit_pre( stripslashes( get_site_option( 'welcome_user_email' ) ) ) ?></textarea>
    196                                         <br />
    197                                         <?php _e( 'The welcome email sent to new users.' ) ?>
    198                                 </td>
    199                         </tr>
    200                         <tr valign="top">
    201                                 <th scope="row"><label for="first_post"><?php _e( 'First Post' ) ?></label></th>
    202                                 <td>
    203                                         <textarea name="first_post" id="first_post" rows="5" cols="45" class="large-text">
    204 <?php echo wp_htmledit_pre( stripslashes( get_site_option( 'first_post' ) ) ) ?></textarea>
    205                                         <br />
    206                                         <?php _e( 'The first post on a new site.' ) ?>
    207                                 </td>
    208                         </tr>
    209                         <tr valign="top">
    210                                 <th scope="row"><label for="first_page"><?php _e( 'First Page' ) ?></label></th>
    211                                 <td>
    212                                         <textarea name="first_page" id="first_page" rows="5" cols="45" class="large-text">
    213 <?php echo wp_htmledit_pre( stripslashes( get_site_option('first_page') ) ) ?></textarea>
    214                                         <br />
    215                                         <?php _e( 'The first page on a new site.' ) ?>
    216                                 </td>
    217                         </tr>
    218                         <tr valign="top">
    219                                 <th scope="row"><label for="first_comment"><?php _e( 'First Comment' ) ?></label></th>
    220                                 <td>
    221                                         <textarea name="first_comment" id="first_comment" rows="5" cols="45" class="large-text">
    222 <?php echo wp_htmledit_pre( stripslashes( get_site_option('first_comment') ) ) ?></textarea>
    223                                         <br />
    224                                         <?php _e( 'The first comment on a new site.' ) ?>
    225                                 </td>
    226                         </tr>
    227                         <tr valign="top">
    228                                 <th scope="row"><label for="first_comment_author"><?php _e( 'First Comment Author' ) ?></label></th>
    229                                 <td>
    230                                         <input type="text" size="40" name="first_comment_author" id="first_comment_author" value="<?php echo get_site_option('first_comment_author') ?>" />
    231                                         <br />
    232                                         <?php _e( 'The author of the first comment on a new site.' ) ?>
    233                                 </td>
    234                         </tr>
    235                         <tr valign="top">
    236                                 <th scope="row"><label for="first_comment_url"><?php _e( 'First Comment URL' ) ?></label></th>
    237                                 <td>
    238                                         <input type="text" size="40" name="first_comment_url" id="first_comment_url" value="<?php echo esc_attr( get_site_option( 'first_comment_url' ) ) ?>" />
    239                                         <br />
    240                                         <?php _e( 'The URL for the first comment on a new site.' ) ?>
    241                                 </td>
    242                         </tr>
    243                 </table>
    244                 <h3><?php _e( 'Upload Settings' ); ?></h3>
    245                 <table class="form-table">
    246                         <tr valign="top">
    247                                 <th scope="row"><?php _e( 'Media upload buttons' ) ?></th>
    248                                 <?php $mu_media_buttons = get_site_option( 'mu_media_buttons', array() ); ?>
    249                                 <td><label><input type="checkbox" id="mu_media_buttons_image" name="mu_media_buttons[image]" value="1"<?php checked( ! empty( $mu_media_buttons['image'] ) ) ?>/> <?php _e( 'Images' ); ?></label><br />
    250                                 <label><input type="checkbox" id="mu_media_buttons_video" name="mu_media_buttons[video]" value="1"<?php checked( ! empty( $mu_media_buttons['video'] ) ) ?>/> <?php _e( 'Videos' ); ?></label><br />
    251                                 <label><input type="checkbox" id="mu_media_buttons_audio" name="mu_media_buttons[audio]" value="1"<?php checked( ! empty( $mu_media_buttons['audio'] ) ) ?>/> <?php _e( 'Music' ); ?></label><br />
    252                                 <?php _e( 'The media upload buttons to display on the &#8220;Write Post&#8221; page. Make sure you update the allowed upload file types below as well.' ); ?></td>
    253                         </tr>
    254 
    255                         <tr valign="top">
    256                                 <th scope="row"><?php _e( 'Site upload space' ) ?></th>
    257                                 <td>
    258                                 <label><input type="checkbox" id="upload_space_check_disabled" name="upload_space_check_disabled" value="0"<?php checked( get_site_option( 'upload_space_check_disabled' ), 0 ) ?>/> <?php printf( __( 'Limit total size of files uploaded to %s MB' ), '</label><label><input name="blog_upload_space" type="text" id="blog_upload_space" value="' . esc_attr( get_site_option('blog_upload_space', 10) ) . '" size="3" />' ); ?></label><br />
    259                                 </td>
    260                         </tr>
    261 
    262                         <tr valign="top">
    263                                 <th scope="row"><label for="upload_filetypes"><?php _e( 'Upload file types' ) ?></label></th>
    264                                 <td><input name="upload_filetypes" type="text" id="upload_filetypes" class="large-text" value="<?php echo esc_attr( get_site_option('upload_filetypes', 'jpg jpeg png gif') ) ?>" size="45" /></td>
    265                         </tr>
    266 
    267                         <tr valign="top">
    268                                 <th scope="row"><label for="fileupload_maxk"><?php _e( 'Max upload file size' ) ?></label></th>
    269                                 <td><?php printf( _x( '%s KB', 'File size in kilobytes' ), '<input name="fileupload_maxk" type="text" id="fileupload_maxk" value="' . esc_attr( get_site_option( 'fileupload_maxk', 300 ) ) . '" size="5" />' ); ?></td>
    270                         </tr>
    271                 </table>
    272 
    273 <?php
    274                 $languages = get_available_languages();
    275                 if ( ! empty( $languages ) ) {
    276                         $lang = get_site_option( 'WPLANG' );
    277 ?>
    278                 <h3><?php _e( 'Network Wide Settings' ); ?></h3>
    279                 <div class="updated inline"><p><strong><?php _e( 'Notice:' ); ?></strong> <?php _e( 'These settings may be overridden by site owners.' ); ?></p></div>
    280                 <table class="form-table">
    281                         <?php
    282                                 ?>
    283                                 <tr valign="top">
    284                                         <th><label for="WPLANG"><?php _e( 'Default Language' ) ?></label></th>
    285                                         <td>
    286                                                 <select name="WPLANG" id="WPLANG">
    287                                                         <?php mu_dropdown_languages( $languages, get_site_option( 'WPLANG' ) ); ?>
    288                                                 </select>
    289                                         </td>
    290                                 </tr>
    291                 </table>
    292 <?php
    293                 } // languages
    294 ?>
    295 
    296                 <h3><?php _e( 'Menu Settings' ); ?></h3>
    297                 <table id="menu" class="form-table">
    298                         <tr valign="top">
    299                                 <th scope="row"><?php _e( 'Enable administration menus' ); ?></th>
    300                                 <td>
    301                         <?php
    302                         $menu_perms = get_site_option( 'menu_items' );
    303                         $menu_items = apply_filters( 'mu_menu_items', array( 'plugins' => __( 'Plugins' ) ) );
    304                         foreach ( (array) $menu_items as $key => $val ) {
    305                                 echo "<label><input type='checkbox' name='menu_items[" . $key . "]' value='1'" .  ( isset( $menu_perms[$key] ) ? checked( $menu_perms[$key], '1', false ) : '' ) . " /> " . esc_html( $val ) . "</label><br/>";
    306                         }
    307                         ?>
    308                                 </td>
    309                         </tr>
    310                 </table>
    311 
    312                 <?php do_action( 'wpmu_options' ); // Add more options here ?>
    313 
    314                 <p class="submit"><input type="submit" class="button-primary" name="Submit" value="<?php esc_attr_e( 'Save Changes' ) ?>" /></p>
    315         </form>
    316 </div>
    317 
    318 <?php include( './admin-footer.php' ); ?>
     12wp_redirect( network_admin_url('settings.php') );
     13 No newline at end of file