Huge MS refactoring and code cleanup. see #12460. props ocean90.

git-svn-id: http://svn.automattic.com/wordpress/trunk@13918 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
markjaquith 2010-04-01 21:21:27 +00:00
parent 5ca84a117e
commit d510d0bdc7
9 changed files with 1305 additions and 1218 deletions

View File

@ -1,45 +1,3 @@
/* Blog Switcher */
#all-my-blogs-tab a.current {
position: relative;
padding-bottom: 10px;
}
#all-my-blogs {
position: absolute;
top: 30px;
left: 0;
right: 0;
_width: 100%; /* IE6 Hack */
margin: 4px 7px;
padding: 6px 10px;
font-size: 12px;
}
#all-my-blogs * {
margin: 0;
}
form#all-my-blogs p, form#all-my-blogs p * {
vertical-align: middle;
}
#all-my-blogs a {
font-size: 10px;
text-decoration: underline;
margin: 0 14px;
}
#all-my-blogs a:hover, #all-my-blogs a:active {
text-decoration: none;
}
form#wpmu-search {
position:absolute;
right:0;
top:0;
}
/* Site Admin Menu */
#adminmenu .menu-icon-site div.wp-menu-image {
background: transparent url('../images/site-admin.png') no-repeat scroll 0px -33px;
@ -49,7 +7,7 @@ form#wpmu-search {
background: transparent url('../images/site-admin.png') no-repeat scroll 0px -1px;
}
/* Dashboard: MU Specific Data */
/* Dashboard: MS Specific Data */
#dashboard_right_now p.musub {
margin-top: 12px;
border-top: 1px solid #ececec;
@ -59,12 +17,32 @@ form#wpmu-search {
#dashboard_right_now td.b a.musublink {
font-size: 16px;
}
#dashboard_right_now div.musubtable {
border-top: none;
}
/* No drag and drop on ms-sites.php */
.ms-sites-php .postbox h3 {
cursor: auto;
}
.ms-sites-php .postbox .description {
margin:10px 0 0px;
padding:0px 10px 10px;
border-bottom:1px solid #DFDFDF;
}
/* Background Color for Site Status */
tr.site-deleted {
background:#f55;
background: #ff8573;
}
tr.site-spammed {
background:#faa;
background: #faa;
}
tr.site-archived {
background:#fee;
background:#ffebe8;
}
tr.site-mature {
background: #fecac2;
}

View File

@ -27,7 +27,7 @@ function check_upload_size( $file ) {
if ( $file_size > ( 1024 * get_site_option( 'fileupload_maxk', 1500 ) ) )
$file['error'] = sprintf(__('This file is too big. Files must be less than %1$s Kb in size.'), get_site_option( 'fileupload_maxk', 1500 ) );
if ( upload_is_user_over_quota( false ) ) {
$file['error'] = __('You have used your space quota. Please delete files before uploading.');
$file['error'] = __( 'You have used your space quota. Please delete files before uploading.' );
}
if ( $file['error'] != '0' )
wp_die( $file['error'] . ' <a href="javascript:history.go(-1)">' . __( 'Back' ) . '</a>' );
@ -45,74 +45,77 @@ add_filter( 'wp_handle_upload_prefilter', 'check_upload_size' );
* @param bool $drop True if blog's table should be dropped. Default is false.
* @return void
*/
function wpmu_delete_blog($blog_id, $drop = false) {
function wpmu_delete_blog( $blog_id, $drop = false ) {
global $wpdb;
$switched = false;
$switch = false;
if ( $blog_id != $wpdb->blogid ) {
$switch = true;
switch_to_blog($blog_id);
switch_to_blog( $blog_id );
}
do_action('delete_blog', $blog_id, $drop);
$blog_prefix = $wpdb->get_blog_prefix( $blog_id );
$users = get_users_of_blog($blog_id);
do_action( 'delete_blog', $blog_id, $drop );
$users = get_users_of_blog( $blog_id );
// Remove users from this blog.
if ( !empty($users) ) {
foreach ($users as $user) {
remove_user_from_blog($user->user_id, $blog_id);
if ( ! empty( $users ) ) {
foreach ( $users as $user ) {
remove_user_from_blog( $user->user_id, $blog_id) ;
}
}
update_blog_status( $blog_id, 'deleted', 1 );
if ( $drop ) {
$drop_tables = $wpdb->get_results("show tables LIKE '". $wpdb->base_prefix . $blog_id . "\_%'", ARRAY_A);
$drop_tables = $wpdb->get_results( "SHOW TABLES LIKE '{$blog_prefix}%'", ARRAY_A );
$drop_tables = apply_filters( 'wpmu_drop_tables', $drop_tables );
reset( $drop_tables );
foreach ( (array) $drop_tables as $drop_table) {
$wpdb->query( "DROP TABLE IF EXISTS ". current( $drop_table ) ."" );
}
$wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->blogs WHERE blog_id = %d", $blog_id) );
$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->blogs WHERE blog_id = %d", $blog_id ) );
$dir = apply_filters( 'wpmu_delete_blog_upload_dir', WP_CONTENT_DIR . "/blogs.dir/{$blog_id}/files/", $blog_id );
$dir = rtrim($dir, DIRECTORY_SEPARATOR);
$dir = rtrim( $dir, DIRECTORY_SEPARATOR );
$top_dir = $dir;
$stack = array($dir);
$index = 0;
while ( $index < count($stack) ) {
while ( $index < count( $stack ) ) {
# Get indexed directory from stack
$dir = $stack[$index];
$dh = @ opendir($dir);
$dh = @opendir( $dir );
if ( $dh ) {
while ( ($file = @ readdir($dh)) !== false ) {
if ($file == '.' or $file == '..')
while ( ( $file = @readdir( $dh ) ) !== false ) {
if ( $file == '.' || $file == '..' )
continue;
if (@ is_dir($dir . DIRECTORY_SEPARATOR . $file))
if ( @is_dir( $dir . DIRECTORY_SEPARATOR . $file ) )
$stack[] = $dir . DIRECTORY_SEPARATOR . $file;
else if (@ is_file($dir . DIRECTORY_SEPARATOR . $file))
@ unlink($dir . DIRECTORY_SEPARATOR . $file);
else if ( @is_file( $dir . DIRECTORY_SEPARATOR . $file ) )
@unlink( $dir . DIRECTORY_SEPARATOR . $file );
}
}
$index++;
}
$stack = array_reverse($stack); // Last added dirs are deepest
$stack = array_reverse( $stack ); // Last added dirs are deepest
foreach( (array) $stack as $dir ) {
if ( $dir != $top_dir)
@rmdir($dir);
@rmdir( $dir );
}
}
$wpdb->query( $wpdb->prepare("DELETE FROM {$wpdb->usermeta} WHERE meta_key = %s", 'wp_{$blog_id}_autosave_draft_ids') );
$blogs = get_site_option( "blog_list" );
$wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key = '{$blog_prefix}autosave_draft_ids'" );
$blogs = get_site_option( 'blog_list' );
if ( is_array( $blogs ) ) {
foreach ( $blogs as $n => $blog ) {
if ( $blog[ 'blog_id' ] == $blog_id )
unset( $blogs[ $n ] );
if ( $blog['blog_id'] == $blog_id )
unset( $blogs[$n] );
}
update_site_option( 'blog_list', $blogs );
}
@ -122,44 +125,44 @@ function wpmu_delete_blog($blog_id, $drop = false) {
}
// @todo Merge with wp_delete_user() ?
function wpmu_delete_user($id) {
function wpmu_delete_user( $id ) {
global $wpdb;
$id = (int) $id;
do_action('wpmu_delete_user', $id);
do_action( 'wpmu_delete_user', $id );
$blogs = get_blogs_of_user($id);
$blogs = get_blogs_of_user( $id );
if ( ! empty($blogs) ) {
foreach ($blogs as $blog) {
switch_to_blog($blog->userblog_id);
remove_user_from_blog($id, $blog->userblog_id);
if ( ! empty( $blogs ) ) {
foreach ( $blogs as $blog ) {
switch_to_blog( $blog->userblog_id );
remove_user_from_blog( $id, $blog->userblog_id );
$post_ids = $wpdb->get_col( $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_author = %d", $id ) );
$post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_author = %d", $id ) );
foreach ( (array) $post_ids as $post_id ) {
wp_delete_post($post_id);
wp_delete_post( $post_id );
}
// Clean links
$link_ids = $wpdb->get_col( $wpdb->prepare("SELECT link_id FROM $wpdb->links WHERE link_owner = %d", $id) );
$link_ids = $wpdb->get_col( $wpdb->prepare( "SELECT link_id FROM $wpdb->links WHERE link_owner = %d", $id ) );
if ( $link_ids ) {
foreach ( $link_ids as $link_id )
wp_delete_link($link_id);
wp_delete_link( $link_id );
}
restore_current_blog();
}
}
$wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->users WHERE ID = %d", $id) );
$wpdb->query( $wpdb->prepare("DELETE FROM $wpdb->usermeta WHERE user_id = %d", $id) );
$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->users WHERE ID = %d", $id ) );
$wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->usermeta WHERE user_id = %d", $id ) );
clean_user_cache($id);
clean_user_cache( $id );
// allow for commit transaction
do_action('deleted_user', $id);
do_action( 'deleted_user', $id );
return true;
}
@ -169,14 +172,14 @@ function confirm_delete_users( $users ) {
if ( !is_array( $users ) )
return false;
screen_icon('tools');
screen_icon();
?>
<h2><?php esc_html_e('Users'); ?></h2>
<p><?php _e( 'Transfer posts before deleting users:' ); ?></p>
<form action="ms-edit.php?action=allusers" method="post">
<input type="hidden" name="alluser_transfer_delete" />
<h2><?php esc_html_e( 'Users' ); ?></h2>
<p><?php _e( 'Transfer or delete posts and links before deleting users.' ); ?></p>
<form action="ms-edit.php?action=dodelete" method="post">
<input type="hidden" name="dodelete" />
<?php
wp_nonce_field( 'allusers' );
wp_nonce_field( 'ms-users-delete' );
$site_admins = get_site_option( 'site_admins', array( 'admin' ) );
$admin_out = "<option value='$current_user->ID'>$current_user->user_login</option>";
@ -191,29 +194,40 @@ function confirm_delete_users( $users ) {
$blogs = get_blogs_of_user( $val, true );
if ( !empty( $blogs ) ) {
echo '<p><strong>' . sprintf( __( 'Sites from %s:' ), $delete_user->user_login ) . '</strong></p>';
?>
<br /><fieldset><p><legend><?php printf( __( "What should be done with posts and links owned by <em>%s</em>?" ), $delete_user->user_login ); ?></legend></p>
<?php
foreach ( (array) $blogs as $key => $details ) {
$blog_users = get_users_of_blog( $details->userblog_id );
if ( is_array( $blog_users ) && !empty( $blog_users ) ) {
echo "<p><a href='http://{$details->domain}{$details->path}'>{$details->blogname}</a> ";
echo "<select name='blog[$val][{$key}]'>";
$out = '';
$user_site = "<a href='" . esc_url( get_home_url( $details->userblog_id ) ) . "'>{$details->blogname}</a>";
$user_dropdown = "<select name='blog[$val][{$key}]'>";
$user_list = '';
foreach ( $blog_users as $user ) {
if ( $user->user_id != $val && !in_array( $user->user_id, $allusers ) )
$out .= "<option value='{$user->user_id}'>{$user->user_login}</option>";
$user_list .= "<option value='{$user->user_id}'>{$user->user_login}</option>";
}
if ( $out == '' )
$out = $admin_out;
echo $out;
echo "</select>\n";
if ( '' == $user_list )
$user_list = $admin_out;
$user_dropdown .= $user_list;
$user_dropdown .= "</select>\n";
?>
<ul style="list-style:none;">
<li><?php printf( __( 'Site: %s' ), $user_site ); ?></li>
<li><label><input type="radio" id="delete_option0" name="delete[<?php echo $details->userblog_id . '][' . $delete_user->ID ?>]" value="delete" checked="checked" />
<?php _e( 'Delete all posts and links.' ); ?></label></li>
<li><label><input type="radio" id="delete_option1" name="delete[<?php echo $details->userblog_id . '][' . $delete_user->ID ?>]" value="reassign" />
<?php echo __( 'Attribute all posts and links to:' ) . '</label>' . $user_dropdown; ?></li>
</ul>
<?php
}
}
echo "</fieldset>";
}
}
}
?>
<br class="clear" />
<input type="submit" class="button-secondary delete" value="<?php _e( 'Delete user and transfer posts' ); ?> " />
<p class="submit"><input type="submit" class="button-secondary delete" value="<?php esc_attr_e( 'Confirm Deletion' ); ?>" /></p>
</form>
<?php
return true;
@ -225,20 +239,20 @@ function wpmu_get_blog_allowedthemes( $blog_id = 0 ) {
if ( $blog_id != 0 )
switch_to_blog( $blog_id );
$blog_allowed_themes = get_option( "allowedthemes" );
$blog_allowed_themes = get_option( 'allowedthemes' );
if ( !is_array( $blog_allowed_themes ) || empty( $blog_allowed_themes ) ) { // convert old allowed_themes to new allowedthemes
$blog_allowed_themes = get_option( "allowed_themes" );
$blog_allowed_themes = get_option( 'allowed_themes' );
if ( is_array( $blog_allowed_themes ) ) {
foreach( (array) $themes as $key => $theme ) {
$theme_key = esc_html( $theme[ 'Stylesheet' ] );
if ( isset( $blog_allowed_themes[ $key ] ) == true ) {
$blog_allowedthemes[ $theme_key ] = 1;
$theme_key = esc_html( $theme['Stylesheet'] );
if ( isset( $blog_allowed_themes[$key] ) == true ) {
$blog_allowedthemes[$theme_key] = 1;
}
}
$blog_allowed_themes = $blog_allowedthemes;
add_option( "allowedthemes", $blog_allowed_themes );
delete_option( "allowed_themes" );
add_option( 'allowedthemes', $blog_allowed_themes );
delete_option( 'allowed_themes' );
}
}
@ -248,18 +262,18 @@ function wpmu_get_blog_allowedthemes( $blog_id = 0 ) {
return $blog_allowed_themes;
}
function update_option_new_admin_email($old_value, $value) {
function update_option_new_admin_email( $old_value, $value ) {
if ( $value == get_option( 'admin_email' ) || !is_email( $value ) )
return;
$hash = md5( $value. time() .mt_rand() );
$new_admin_email = array(
"hash" => $hash,
"newemail" => $value
'hash' => $hash,
'newemail' => $value
);
update_option( 'adminhash', $new_admin_email );
$content = apply_filters( 'new_admin_email_content', __("Dear user,
$content = apply_filters( 'new_admin_email_content', __( "Dear user,
You recently requested to have the administration email address on
your site changed.
@ -273,45 +287,45 @@ This email has been sent to ###EMAIL###
Regards,
All at ###SITENAME###
###SITEURL###"), $new_admin_email );
###SITEURL### "), $new_admin_email );
$content = str_replace('###ADMIN_URL###', esc_url(admin_url('options.php?adminhash='.$hash)), $content);
$content = str_replace('###EMAIL###', $value, $content);
$content = str_replace('###SITENAME###', get_site_option( 'site_name' ), $content);
$content = str_replace('###SITEURL###', network_home_url(), $content);
$content = str_replace( '###ADMIN_URL###', esc_url( admin_url( 'options.php?adminhash='.$hash ) ), $content );
$content = str_replace( '###EMAIL###', $value, $content );
$content = str_replace( '###SITENAME###', get_site_option( 'site_name' ), $content );
$content = str_replace( '###SITEURL###', network_home_url(), $content );
wp_mail( $value, sprintf(__('[%s] New Admin Email Address'), get_option('blogname')), $content );
wp_mail( $value, sprintf( __( '[%s] New Admin Email Address' ), get_option( 'blogname' ) ), $content );
}
add_action('update_option_new_admin_email', 'update_option_new_admin_email', 10, 2);
add_action( 'update_option_new_admin_email', 'update_option_new_admin_email', 10, 2 );
function send_confirmation_on_profile_email() {
global $errors, $wpdb, $current_user;
if ( ! is_object($errors) )
$errors = new WP_Error();
if ( $current_user->id != $_POST[ 'user_id' ] )
if ( $current_user->id != $_POST['user_id'] )
return false;
if ( $current_user->user_email != $_POST[ 'email' ] ) {
if ( !is_email( $_POST[ 'email' ] ) ) {
if ( $current_user->user_email != $_POST['email'] ) {
if ( !is_email( $_POST['email'] ) ) {
$errors->add( 'user_email', __( "<strong>ERROR</strong>: The e-mail address isn't correct." ), array( 'form-field' => 'email' ) );
return;
}
if ( $wpdb->get_var( $wpdb->prepare( "SELECT user_email FROM {$wpdb->users} WHERE user_email=%s", $_POST[ 'email' ] ) ) ) {
if ( $wpdb->get_var( $wpdb->prepare( "SELECT user_email FROM {$wpdb->users} WHERE user_email=%s", $_POST['email'] ) ) ) {
$errors->add( 'user_email', __( "<strong>ERROR</strong>: The e-mail address is already used." ), array( 'form-field' => 'email' ) );
delete_option( $current_user->ID . '_new_email' );
return;
}
$hash = md5( $_POST[ 'email' ] . time() . mt_rand() );
$hash = md5( $_POST['email'] . time() . mt_rand() );
$new_user_email = array(
"hash" => $hash,
"newemail" => $_POST[ 'email' ]
'hash' => $hash,
'newemail' => $_POST['email']
);
update_option( $current_user->ID . '_new_email', $new_user_email );
$content = apply_filters( 'new_user_email_content', __("Dear user,
$content = apply_filters( 'new_user_email_content', __( "Dear user,
You recently requested to have the email address on your account changed.
If this is correct, please click on the following link to change it:
@ -324,23 +338,23 @@ This email has been sent to ###EMAIL###
Regards,
All at ###SITENAME###
###SITEURL###"), $new_user_email );
###SITEURL###" ), $new_user_email );
$content = str_replace('###ADMIN_URL###', esc_url(admin_url('profile.php?newuseremail='.$hash)), $content);
$content = str_replace('###EMAIL###', $_POST[ 'email' ], $content);
$content = str_replace('###SITENAME###', get_site_option( 'site_name' ), $content);
$content = str_replace('###SITEURL###', network_home_url(), $content);
$content = str_replace( '###ADMIN_URL###', esc_url( admin_url( 'profile.php?newuseremail='.$hash ) ), $content );
$content = str_replace( '###EMAIL###', $_POST['email'], $content);
$content = str_replace( '###SITENAME###', get_site_option( 'site_name' ), $content );
$content = str_replace( '###SITEURL###', network_home_url(), $content );
wp_mail( $_POST[ 'email' ], sprintf(__('[%s] New Email Address'), get_option('blogname')), $content );
$_POST[ 'email' ] = $current_user->user_email;
wp_mail( $_POST['email'], sprintf( __( '[%s] New Email Address' ), get_option( 'blogname' ) ), $content );
$_POST['email'] = $current_user->user_email;
}
}
add_action( 'personal_options_update', 'send_confirmation_on_profile_email' );
function new_user_email_admin_notice() {
global $current_user;
if ( strpos( $_SERVER['PHP_SELF'], 'profile.php' ) && isset( $_GET[ 'updated' ] ) && $email = get_option( $current_user->ID . '_new_email' ) )
echo "<div id='update-nag'>" . sprintf( __( "Your email address has not been updated yet. Please check your inbox at %s for a confirmation email." ), $email[ 'newemail' ] ) . "</div>";
if ( strpos( $_SERVER['PHP_SELF'], 'profile.php' ) && isset( $_GET['updated'] ) && $email = get_option( $current_user->ID . '_new_email' ) )
echo "<div id='update-nag'>" . sprintf( __( "Your email address has not been updated yet. Please check your inbox at %s for a confirmation email." ), $email['newemail'] ) . "</div>";
}
add_action( 'admin_notices', 'new_user_email_admin_notice' );
@ -348,12 +362,12 @@ function get_site_allowed_themes() {
$themes = get_themes();
$allowed_themes = get_site_option( 'allowedthemes' );
if ( !is_array( $allowed_themes ) || empty( $allowed_themes ) ) {
$allowed_themes = get_site_option( "allowed_themes" ); // convert old allowed_themes format
$allowed_themes = get_site_option( 'allowed_themes' ); // convert old allowed_themes format
if ( !is_array( $allowed_themes ) ) {
$allowed_themes = array();
} else {
foreach( (array) $themes as $key => $theme ) {
$theme_key = esc_html( $theme[ 'Stylesheet' ] );
$theme_key = esc_html( $theme['Stylesheet'] );
if ( isset( $allowed_themes[ $key ] ) == true ) {
$allowedthemes[ $theme_key ] = 1;
}
@ -376,25 +390,25 @@ function is_upload_space_available() {
$space_allowed = get_space_allowed();
$dir_name = trailingslashit( BLOGUPLOADDIR );
if ( !(is_dir($dir_name) && is_readable($dir_name)) )
if ( !( is_dir( $dir_name) && is_readable( $dir_name ) ) )
return true;
$dir = dir($dir_name);
$dir = dir( $dir_name );
$size = 0;
while ( $file = $dir->read() ) {
if ( $file != '.' && $file != '..' ) {
if ( is_dir( $dir_name . $file) ) {
$size += get_dirsize($dir_name . $file);
$size += get_dirsize( $dir_name . $file );
} else {
$size += filesize($dir_name . $file);
$size += filesize( $dir_name . $file );
}
}
}
$dir->close();
$size = $size / 1024 / 1024;
if ( ($space_allowed - $size) <= 0 )
if ( ( $space_allowed - $size ) <= 0 )
return false;
return true;
@ -406,10 +420,10 @@ function is_upload_space_available() {
* @return int Quota
*/
function get_space_allowed() {
$space_allowed = get_option('blog_upload_space');
$space_allowed = get_option( 'blog_upload_space' );
if ( $space_allowed == false )
$space_allowed = get_site_option('blog_upload_space');
if ( empty($space_allowed) || !is_numeric($space_allowed) )
$space_allowed = get_site_option( 'blog_upload_space' );
if ( empty( $space_allowed ) || !is_numeric( $space_allowed ) )
$space_allowed = 50;
return $space_allowed;
@ -417,7 +431,7 @@ function get_space_allowed() {
function display_space_usage() {
$space = get_space_allowed();
$used = get_dirsize( BLOGUPLOADDIR )/1024/1024;
$used = get_dirsize( BLOGUPLOADDIR ) / 1024 / 1024;
if ( $used > $space )
$percentused = '100';
@ -426,12 +440,12 @@ function display_space_usage() {
if ( $space > 1000 ) {
$space = number_format( $space / 1024 );
$space .= __('GB');
$space .= __( 'GB' );
} else {
$space .= __('MB');
$space .= __( 'MB' );
}
?>
<strong><?php printf(__('Used: %1s%% of %2s'), number_format($percentused), $space );?></strong>
<strong><?php printf( __( 'Used: %1s%% of %2s' ), number_format( $percentused ), $space );?></strong>
<?php
}
@ -441,47 +455,54 @@ function dashboard_quota() {
return true;
$quota = get_space_allowed();
$used = get_dirsize( BLOGUPLOADDIR )/1024/1024;
$used = get_dirsize( BLOGUPLOADDIR ) / 1024 / 1024;
if ( $used > $quota )
$percentused = '100';
else
$percentused = ( $used / $quota ) * 100;
$used_color = ( $percentused < 70 ) ? ( ( $percentused >= 40 ) ? 'waiting' : 'approved') : 'spam';
$used_color = ( $percentused < 70 ) ? ( ( $percentused >= 40 ) ? 'waiting' : 'approved' ) : 'spam';
$used = round( $used, 2 );
$percentused = number_format( $percentused );
?>
<p class="sub musub"><?php _e('Storage Space'); ?></p>
<div class="table">
<p class="sub musub"><?php _e( 'Storage Space' ); ?></p>
<div class="table table_content musubtable">
<table>
<tr class="first">
<td class="first b b-posts"><?php printf( __( '<a href="upload.php" title="Manage Uploads" class="musublink">%sMB</a>' ), $quota ); ?></td>
<td class="t posts"><?php _e('Space Allowed'); ?></td>
<td class="b b-comments"><?php printf( __( '<a href="upload.php" title="Manage Uploads" class="musublink">%1sMB (%2$s%%)</a>' ), $used, $percentused ); ?></td>
<td class="last t comments <?php echo $used_color;?>"><?php _e('Space Used');?></td>
<td class="first b b-posts"><?php printf( __( '<a href="' . esc_url( admin_url( 'upload.php' ) ) . '" title="Manage Uploads" class="musublink">%sMB</a>' ), $quota ); ?></td>
<td class="t posts"><?php _e( 'Space Allowed' ); ?></td>
</tr>
</table>
</div>
<div class="table table_discussion musubtable">
<table>
<tr class="first">
<td class="b b-comments"><?php printf( __( '<a href="' . esc_url( admin_url( 'upload.php' ) ) . '" title="Manage Uploads" class="musublink">%1sMB (%2$s%%)</a>' ), $used, $percentused ); ?></td>
<td class="last t comments <?php echo $used_color;?>"><?php _e( 'Space Used' );?></td>
</tr>
</table>
</div>
<br class="clear" />
<?php
}
if ( current_user_can('edit_posts') )
add_action('activity_box_end', 'dashboard_quota');
if ( current_user_can( 'edit_posts' ) )
add_action( 'activity_box_end', 'dashboard_quota' );
// Edit blog upload space setting on Edit Blog page
function upload_space_setting( $id ) {
$quota = get_blog_option($id, "blog_upload_space");
$quota = get_blog_option( $id, 'blog_upload_space' );
if ( !$quota )
$quota = '';
?>
<tr>
<th><?php _e('Site Upload Space Quota'); ?></th>
<td><input type="text" size="3" name="option[blog_upload_space]" value="<?php echo $quota; ?>" /><?php _e('MB (Leave blank for network default)'); ?></td>
<th><?php _e( 'Site Upload Space Quota '); ?></th>
<td><input type="text" size="3" name="option[blog_upload_space]" value="<?php echo $quota; ?>" /> <?php _e( 'MB (Leave blank for network default)' ); ?></td>
</tr>
<?php
}
add_action('wpmueditblogaction', 'upload_space_setting');
add_action( 'wpmueditblogaction', 'upload_space_setting' );
function update_user_status( $id, $pref, $value, $refresh = 1 ) {
global $wpdb;
@ -489,34 +510,44 @@ function update_user_status( $id, $pref, $value, $refresh = 1 ) {
$wpdb->update( $wpdb->users, array( $pref => $value ), array( 'ID' => $id ) );
if ( $refresh == 1 )
refresh_user_details($id);
refresh_user_details( $id );
if ( $pref == 'spam' ) {
if ( $value == 1 )
do_action( "make_spam_user", $id );
do_action( 'make_spam_user', $id );
else
do_action( "make_ham_user", $id );
do_action( 'make_ham_user', $id );
}
return $value;
}
function refresh_user_details($id) {
function refresh_user_details( $id ) {
$id = (int) $id;
if ( !$user = get_userdata( $id ) )
return false;
clean_user_cache($id);
clean_user_cache( $id );
return $id;
}
function format_code_lang( $code = '' ) {
$code = strtolower(substr($code, 0, 2));
$lang_codes = array('aa' => 'Afar', 'ab' => 'Abkhazian', 'af' => 'Afrikaans', 'ak' => 'Akan', 'sq' => 'Albanian', 'am' => 'Amharic', 'ar' => 'Arabic', 'an' => 'Aragonese', 'hy' => 'Armenian', 'as' => 'Assamese', 'av' => 'Avaric', 'ae' => 'Avestan', 'ay' => 'Aymara', 'az' => 'Azerbaijani', 'ba' => 'Bashkir', 'bm' => 'Bambara', 'eu' => 'Basque', 'be' => 'Belarusian', 'bn' => 'Bengali', 'bh' => 'Bihari', 'bi' => 'Bislama', 'bs' => 'Bosnian', 'br' => 'Breton', 'bg' => 'Bulgarian', 'my' => 'Burmese', 'ca' => 'Catalan; Valencian', 'ch' => 'Chamorro', 'ce' => 'Chechen', 'zh' => 'Chinese', 'cu' => 'Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic', 'cv' => 'Chuvash', 'kw' => 'Cornish', 'co' => 'Corsican', 'cr' => 'Cree', 'cs' => 'Czech', 'da' => 'Danish', 'dv' => 'Divehi; Dhivehi; Maldivian', 'nl' => 'Dutch; Flemish', 'dz' => 'Dzongkha', 'en' => 'English', 'eo' => 'Esperanto', 'et' => 'Estonian', 'ee' => 'Ewe', 'fo' => 'Faroese', 'fj' => 'Fijian', 'fi' => 'Finnish', 'fr' => 'French', 'fy' => 'Western Frisian', 'ff' => 'Fulah', 'ka' => 'Georgian', 'de' => 'German', 'gd' => 'Gaelic; Scottish Gaelic', 'ga' => 'Irish', 'gl' => 'Galician', 'gv' => 'Manx', 'el' => 'Greek, Modern', 'gn' => 'Guarani', 'gu' => 'Gujarati', 'ht' => 'Haitian; Haitian Creole', 'ha' => 'Hausa', 'he' => 'Hebrew', 'hz' => 'Herero', 'hi' => 'Hindi', 'ho' => 'Hiri Motu', 'hu' => 'Hungarian', 'ig' => 'Igbo', 'is' => 'Icelandic', 'io' => 'Ido', 'ii' => 'Sichuan Yi', 'iu' => 'Inuktitut', 'ie' => 'Interlingue', 'ia' => 'Interlingua (International Auxiliary Language Association)', 'id' => 'Indonesian', 'ik' => 'Inupiaq', 'it' => 'Italian', 'jv' => 'Javanese', 'ja' => 'Japanese', 'kl' => 'Kalaallisut; Greenlandic', 'kn' => 'Kannada', 'ks' => 'Kashmiri', 'kr' => 'Kanuri', 'kk' => 'Kazakh', 'km' => 'Central Khmer', 'ki' => 'Kikuyu; Gikuyu', 'rw' => 'Kinyarwanda', 'ky' => 'Kirghiz; Kyrgyz', 'kv' => 'Komi', 'kg' => 'Kongo', 'ko' => 'Korean', 'kj' => 'Kuanyama; Kwanyama', 'ku' => 'Kurdish', 'lo' => 'Lao', 'la' => 'Latin', 'lv' => 'Latvian', 'li' => 'Limburgan; Limburger; Limburgish', 'ln' => 'Lingala', 'lt' => 'Lithuanian', 'lb' => 'Luxembourgish; Letzeburgesch', 'lu' => 'Luba-Katanga', 'lg' => 'Ganda', 'mk' => 'Macedonian', 'mh' => 'Marshallese', 'ml' => 'Malayalam', 'mi' => 'Maori', 'mr' => 'Marathi', 'ms' => 'Malay', 'mg' => 'Malagasy', 'mt' => 'Maltese', 'mo' => 'Moldavian', 'mn' => 'Mongolian', 'na' => 'Nauru', 'nv' => 'Navajo; Navaho', 'nr' => 'Ndebele, South; South Ndebele', 'nd' => 'Ndebele, North; North Ndebele', 'ng' => 'Ndonga', 'ne' => 'Nepali', 'nn' => 'Norwegian Nynorsk; Nynorsk, Norwegian', 'nb' => 'Bokmål, Norwegian, Norwegian Bokmål', 'no' => 'Norwegian', 'ny' => 'Chichewa; Chewa; Nyanja', 'oc' => 'Occitan, Provençal', 'oj' => 'Ojibwa', 'or' => 'Oriya', 'om' => 'Oromo', 'os' => 'Ossetian; Ossetic', 'pa' => 'Panjabi; Punjabi', 'fa' => 'Persian', 'pi' => 'Pali', 'pl' => 'Polish', 'pt' => 'Portuguese', 'ps' => 'Pushto', 'qu' => 'Quechua', 'rm' => 'Romansh', 'ro' => 'Romanian', 'rn' => 'Rundi', 'ru' => 'Russian', 'sg' => 'Sango', 'sa' => 'Sanskrit', 'sr' => 'Serbian', 'hr' => 'Croatian', 'si' => 'Sinhala; Sinhalese', 'sk' => 'Slovak', 'sl' => 'Slovenian', 'se' => 'Northern Sami', 'sm' => 'Samoan', 'sn' => 'Shona', 'sd' => 'Sindhi', 'so' => 'Somali', 'st' => 'Sotho, Southern', 'es' => 'Spanish; Castilian', 'sc' => 'Sardinian', 'ss' => 'Swati', 'su' => 'Sundanese', 'sw' => 'Swahili', 'sv' => 'Swedish', 'ty' => 'Tahitian', 'ta' => 'Tamil', 'tt' => 'Tatar', 'te' => 'Telugu', 'tg' => 'Tajik', 'tl' => 'Tagalog', 'th' => 'Thai', 'bo' => 'Tibetan', 'ti' => 'Tigrinya', 'to' => 'Tonga (Tonga Islands)', 'tn' => 'Tswana', 'ts' => 'Tsonga', 'tk' => 'Turkmen', 'tr' => 'Turkish', 'tw' => 'Twi', 'ug' => 'Uighur; Uyghur', 'uk' => 'Ukrainian', 'ur' => 'Urdu', 'uz' => 'Uzbek', 've' => 'Venda', 'vi' => 'Vietnamese', 'vo' => 'Volapük', 'cy' => 'Welsh', 'wa' => 'Walloon'
, 'wo' => 'Wolof', 'xh' => 'Xhosa', 'yi' => 'Yiddish', 'yo' => 'Yoruba', 'za' => 'Zhuang; Chuang', 'zu' => 'Zulu');
$lang_codes = apply_filters('lang_codes', $lang_codes, $code);
$code = strtolower( substr( $code, 0, 2 ) );
$lang_codes = array(
'aa' => 'Afar', 'ab' => 'Abkhazian', 'af' => 'Afrikaans', 'ak' => 'Akan', 'sq' => 'Albanian', 'am' => 'Amharic', 'ar' => 'Arabic', 'an' => 'Aragonese', 'hy' => 'Armenian', 'as' => 'Assamese', 'av' => 'Avaric', 'ae' => 'Avestan', 'ay' => 'Aymara', 'az' => 'Azerbaijani', 'ba' => 'Bashkir', 'bm' => 'Bambara', 'eu' => 'Basque', 'be' => 'Belarusian', 'bn' => 'Bengali',
'bh' => 'Bihari', 'bi' => 'Bislama', 'bs' => 'Bosnian', 'br' => 'Breton', 'bg' => 'Bulgarian', 'my' => 'Burmese', 'ca' => 'Catalan; Valencian', 'ch' => 'Chamorro', 'ce' => 'Chechen', 'zh' => 'Chinese', 'cu' => 'Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic', 'cv' => 'Chuvash', 'kw' => 'Cornish', 'co' => 'Corsican', 'cr' => 'Cree',
'cs' => 'Czech', 'da' => 'Danish', 'dv' => 'Divehi; Dhivehi; Maldivian', 'nl' => 'Dutch; Flemish', 'dz' => 'Dzongkha', 'en' => 'English', 'eo' => 'Esperanto', 'et' => 'Estonian', 'ee' => 'Ewe', 'fo' => 'Faroese', 'fj' => 'Fijjian', 'fi' => 'Finnish', 'fr' => 'French', 'fy' => 'Western Frisian', 'ff' => 'Fulah', 'ka' => 'Georgian', 'de' => 'German', 'gd' => 'Gaelic; Scottish Gaelic',
'ga' => 'Irish', 'gl' => 'Galician', 'gv' => 'Manx', 'el' => 'Greek, Modern', 'gn' => 'Guarani', 'gu' => 'Gujarati', 'ht' => 'Haitian; Haitian Creole', 'ha' => 'Hausa', 'he' => 'Hebrew', 'hz' => 'Herero', 'hi' => 'Hindi', 'ho' => 'Hiri Motu', 'hu' => 'Hungarian', 'ig' => 'Igbo', 'is' => 'Icelandic', 'io' => 'Ido', 'ii' => 'Sichuan Yi', 'iu' => 'Inuktitut', 'ie' => 'Interlingue',
'ia' => 'Interlingua (International Auxiliary Language Association)', 'id' => 'Indonesian', 'ik' => 'Inupiaq', 'it' => 'Italian', 'jv' => 'Javanese', 'ja' => 'Japanese', 'kl' => 'Kalaallisut; Greenlandic', 'kn' => 'Kannada', 'ks' => 'Kashmiri', 'kr' => 'Kanuri', 'kk' => 'Kazakh', 'km' => 'Central Khmer', 'ki' => 'Kikuyu; Gikuyu', 'rw' => 'Kinyarwanda', 'ky' => 'Kirghiz; Kyrgyz',
'kv' => 'Komi', 'kg' => 'Kongo', 'ko' => 'Korean', 'kj' => 'Kuanyama; Kwanyama', 'ku' => 'Kurdish', 'lo' => 'Lao', 'la' => 'Latin', 'lv' => 'Latvian', 'li' => 'Limburgan; Limburger; Limburgish', 'ln' => 'Lingala', 'lt' => 'Lithuanian', 'lb' => 'Luxembourgish; Letzeburgesch', 'lu' => 'Luba-Katanga', 'lg' => 'Ganda', 'mk' => 'Macedonian', 'mh' => 'Marshallese', 'ml' => 'Malayalam',
'mi' => 'Maori', 'mr' => 'Marathi', 'ms' => 'Malay', 'mg' => 'Malagasy', 'mt' => 'Maltese', 'mo' => 'Moldavian', 'mn' => 'Mongolian', 'na' => 'Nauru', 'nv' => 'Navajo; Navaho', 'nr' => 'Ndebele, South; South Ndebele', 'nd' => 'Ndebele, North; North Ndebele', 'ng' => 'Ndonga', 'ne' => 'Nepali', 'nn' => 'Norwegian Nynorsk; Nynorsk, Norwegian', 'nb' => 'Bokmål, Norwegian, Norwegian Bokmål',
'no' => 'Norwegian', 'ny' => 'Chichewa; Chewa; Nyanja', 'oc' => 'Occitan, Provençal', 'oj' => 'Ojibwa', 'or' => 'Oriya', 'om' => 'Oromo', 'os' => 'Ossetian; Ossetic', 'pa' => 'Panjabi; Punjabi', 'fa' => 'Persian', 'pi' => 'Pali', 'pl' => 'Polish', 'pt' => 'Portuguese', 'ps' => 'Pushto', 'qu' => 'Quechua', 'rm' => 'Romansh', 'ro' => 'Romanian', 'rn' => 'Rundi', 'ru' => 'Russian',
'sg' => 'Sango', 'sa' => 'Sanskrit', 'sr' => 'Serbian', 'hr' => 'Croatian', 'si' => 'Sinhala; Sinhalese', 'sk' => 'Slovak', 'sl' => 'Slovenian', 'se' => 'Northern Sami', 'sm' => 'Samoan', 'sn' => 'Shona', 'sd' => 'Sindhi', 'so' => 'Somali', 'st' => 'Sotho, Southern', 'es' => 'Spanish; Castilian', 'sc' => 'Sardinian', 'ss' => 'Swati', 'su' => 'Sundanese', 'sw' => 'Swahili',
'sv' => 'Swedish', 'ty' => 'Tahitian', 'ta' => 'Tamil', 'tt' => 'Tatar', 'te' => 'Telugu', 'tg' => 'Tajik', 'tl' => 'Tagalog', 'th' => 'Thai', 'bo' => 'Tibetan', 'ti' => 'Tigrinya', 'to' => 'Tonga (Tonga Islands)', 'tn' => 'Tswana', 'ts' => 'Tsonga', 'tk' => 'Turkmen', 'tr' => 'Turkish', 'tw' => 'Twi', 'ug' => 'Uighur; Uyghur', 'uk' => 'Ukrainian', 'ur' => 'Urdu', 'uz' => 'Uzbek',
've' => 'Venda', 'vi' => 'Vietnamese', 'vo' => 'Volapük', 'cy' => 'Welsh','wa' => 'Walloon','wo' => 'Wolof', 'xh' => 'Xhosa', 'yi' => 'Yiddish', 'yo' => 'Yoruba', 'za' => 'Zhuang; Chuang', 'zu' => 'Zulu' );
$lang_codes = apply_filters( 'lang_codes', $lang_codes, $code );
return strtr( $code, $lang_codes );
}
@ -525,7 +556,7 @@ function sync_category_tag_slugs( $term, $taxonomy ) {
if ( is_object( $term ) ) {
$term->slug = sanitize_title( $term->name );
} else {
$term[ 'slug' ] = sanitize_title( $term[ 'name' ] );
$term['slug'] = sanitize_title( $term['name'] );
}
}
return $term;
@ -535,8 +566,8 @@ add_filter( 'get_term', 'sync_category_tag_slugs', 10, 2 );
function redirect_user_to_blog() {
global $current_user;
$c = 0;
if ( isset( $_GET[ 'c' ] ) )
$c = (int)$_GET[ 'c' ];
if ( isset( $_GET['c'] ) )
$c = (int) $_GET['c'];
if ( $c >= 5 ) {
wp_die( __( "You don&#8217;t have permission to view this site. Please contact the system administrator." ) );
@ -546,7 +577,7 @@ function redirect_user_to_blog() {
$blog = get_active_blog_for_user( $current_user->ID );
$dashboard_blog = get_dashboard_blog();
if ( is_object( $blog ) ) {
wp_redirect( get_admin_url($blog->blog_id, '?c=' . $c) ); // redirect and count to 5, "just in case"
wp_redirect( get_admin_url( $blog->blog_id, '?c=' . $c ) ); // redirect and count to 5, "just in case"
exit;
}
@ -564,8 +595,7 @@ function redirect_user_to_blog() {
}
}
$blog = get_blog_details( get_user_meta( $current_user->ID, 'primary_blog', true ) );
$protocol = ( is_ssl() ? 'https://' : 'http://' );
wp_redirect( $protocol . $blog->domain . $blog->path . 'wp-admin/?c=' . $c ); // redirect and count to 5, "just in case"
wp_redirect( get_admin_url( $blog->blog_id, '?c=' . $c ) );
exit;
}
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
@ -589,28 +619,27 @@ function mu_dropdown_languages( $lang_files = array(), $current = '' ) {
if ( $code_lang == 'en_US' ) { // American English
$flag = true;
$ae = __('American English');
$output[$ae] = '<option value="'.$code_lang.'"'.(($current == $code_lang) ? ' selected="selected"' : '').'> '.$ae.'</option>';
$ae = __( 'American English' );
$output[$ae] = '<option value="' . esc_attr( $code_lang ) . '"' . selected( $current, $code_lang ) . '> ' . $ae . '</option>';
} elseif ( $code_lang == 'en_GB' ) { // British English
$flag = true;
$be = __('British English');
$output[$be] = '<option value="'.$code_lang.'"'.(($current == $code_lang) ? ' selected="selected"' : '').'> '.$be.'</option>';
$be = __( 'British English' );
$output[$be] = '<option value="' . esc_attr( $code_lang ) . '"' . selected( $current, $code_lang ) . '> ' . $be . '</option>';
} else {
$translated = format_code_lang($code_lang);
$output[$translated] = '<option value="'.$code_lang.'"'.(($current == $code_lang) ? ' selected="selected"' : '').'> '.$translated.'</option>';
$translated = format_code_lang( $code_lang );
$output[$translated] = '<option value="' . esc_attr( $code_lang ) . '"' . selected( $current, $code_lang ) . '> ' . esc_html ( $translated ) . '</option>';
}
}
if ( $flag === false ) { // WordPress english
$output[] = '<option value=""'.((empty($current)) ? ' selected="selected"' : '').'>'.__('English')."</option>";
}
if ( $flag === false ) // WordPress english
$output[] = '<option value=""' . selected( $current, '' ) . '>' . __( 'English' ) . "</option>";
// Order by name
uksort($output, 'strnatcasecmp');
uksort( $output, 'strnatcasecmp' );
$output = apply_filters('mu_dropdown_languages', $output, $lang_files, $current);
echo implode("\n\t", $output);
$output = apply_filters( 'mu_dropdown_languages', $output, $lang_files, $current );
echo implode( "\n\t", $output );
}
/* Warn the admin if SECRET SALT information is missing from wp-config.php */
@ -637,8 +666,8 @@ function admin_notice_feed() {
if ( $current_screen->id != 'dashboard' )
return;
if ( !empty( $_GET[ 'feed_dismiss' ] ) )
update_user_option( $current_user->id, 'admin_feed_dismiss', $_GET[ 'feed_dismiss' ], true );
if ( !empty( $_GET['feed_dismiss'] ) )
update_user_option( $current_user->id, 'admin_feed_dismiss', $_GET['feed_dismiss'], true );
$url = get_site_option( 'admin_notice_feed' );
if ( empty( $url ) )
@ -666,28 +695,28 @@ function site_admin_notice() {
if ( !is_super_admin() )
return false;
if ( get_site_option( 'wpmu_upgrade_site' ) != $wp_db_version )
echo "<div id='update-nag'>" . __( 'Thank you for Updating! Please visit the <a href="ms-upgrade-network.php">Update Network</a> page to update all your sites.' ) . "</div>";
echo "<div id='update-nag'>" . sprintf( __( 'Thank you for Updating! Please visit the <a href="%s">Update Network</a> page to update all your sites.' ), esc_url( admin_url( 'ms-upgrade-network.php' ) ) ) . "</div>";
}
add_action( 'admin_notices', 'site_admin_notice' );
function avoid_blog_page_permalink_collision( $data, $postarr ) {
if ( is_subdomain_install() )
return $data;
if ( $data[ 'post_type' ] != 'page' )
if ( $data['post_type'] != 'page' )
return $data;
if ( !isset( $data[ 'post_name' ] ) || $data[ 'post_name' ] == '' )
if ( !isset( $data['post_name'] ) || $data['post_name'] == '' )
return $data;
if ( !is_main_site() )
return $data;
$post_name = $data[ 'post_name' ];
$post_name = $data['post_name'];
$c = 0;
while( $c < 10 && get_id_from_blogname( $post_name ) ) {
$post_name .= mt_rand( 1, 10 );
$c ++;
}
if ( $post_name != $data[ 'post_name' ] ) {
$data[ 'post_name' ] = $post_name;
if ( $post_name != $data['post_name'] ) {
$data['post_name'] = $post_name;
}
return $data;
}
@ -699,11 +728,11 @@ function choose_primary_blog() {
<table class="form-table">
<tr>
<?php /* translators: My sites label */ ?>
<th scope="row"><?php _e('Primary Site'); ?></th>
<th scope="row"><?php _e( 'Primary Site' ); ?></th>
<td>
<?php
$all_blogs = get_blogs_of_user( $current_user->ID );
$primary_blog = get_user_meta($current_user->ID, 'primary_blog', true);
$primary_blog = get_user_meta( $current_user->ID, 'primary_blog', true );
if ( count( $all_blogs ) > 1 ) {
$found = false;
?>
@ -711,7 +740,7 @@ function choose_primary_blog() {
<?php foreach( (array) $all_blogs as $blog ) {
if ( $primary_blog == $blog->userblog_id )
$found = true;
?><option value='<?php echo $blog->userblog_id ?>'<?php if ( $primary_blog == $blog->userblog_id ) echo ' selected="selected"' ?>><?php echo get_home_url($blog->userblog_id) ?></option><?php
?><option value="<?php echo $blog->userblog_id ?>"<?php selected( $primary_blog, $blog->userblog_id ); ?>><?php echo esc_url( get_home_url( $blog->userblog_id ) ) ?></option><?php
} ?>
</select>
<?php
@ -738,8 +767,8 @@ function show_post_thumbnail_warning() {
if ( ! is_super_admin() )
return;
$mu_media_buttons = get_site_option( 'mu_media_buttons', array() );
if ( empty($mu_media_buttons[ 'image' ]) && current_theme_supports( 'post-thumbnails' ) ) {
echo "<div id='update-nag'>" . sprintf( __( "Warning! The current theme supports post thumbnails. You must enable image uploads on <a href='%s'>the options page</a> for it to work." ), admin_url( 'ms-options.php' ) ) . "</div>";
if ( empty($mu_media_buttons['image']) && current_theme_supports( 'post-thumbnails' ) ) {
echo "<div id='update-nag'>" . sprintf( __( "Warning! The current theme supports post thumbnails. You must enable image uploads on <a href='%s'>the options page</a> for it to work." ), esc_url( admin_url( 'ms-options.php' ) ) ) . "</div>";
}
}
add_action( 'admin_notices', 'show_post_thumbnail_warning' );
@ -760,7 +789,7 @@ add_action( 'admin_notices', 'ms_deprecated_blogs_file' );
* @return none
*/
function _admin_notice_multisite_activate_plugins_page() {
$message = sprintf( __( 'The plugins page is not visible to normal users. It must be activated first. %s' ), '<a href="ms-options.php#menu">' . __( 'Activate' ) . '</a>' );
$message = sprintf( __( 'The plugins page is not visible to normal users. It must be activated first. %s' ), '<a href="' . esc_url( admin_url( 'ms-options.php#menu' ) ) . '">' . __( 'Activate' ) . '</a>' );
echo "<div class='error'><p>$message</p></div>";
}

View File

@ -1,67 +1,74 @@
<?php
require_once('admin.php');
require_once( './admin.php' );
if ( !is_multisite() )
wp_die( __('Multisite support is not enabled.') );
wp_die( __( 'Multisite support is not enabled.' ) );
// @todo Create a delete blog cap.
if ( ! current_user_can('manage_options') )
wp_die(__('You do not have sufficient permissions to delete this blog.'));
if ( ! current_user_can( 'manage_options' ) )
wp_die(__( 'You do not have sufficient permissions to delete this site.'));
if ( isset( $_GET['h'] ) && $_GET['h'] != '' && get_option( 'delete_blog_hash' ) != false ) {
if ( get_option( 'delete_blog_hash' ) == $_GET['h'] ) {
wpmu_delete_blog( $wpdb->blogid );
wp_die( sprintf( __( 'Thank you for using %s, your site has been deleted. Happy trails to you until we meet again.' ), $current_site->site_name ) );
} else {
wp_die( __( "I'm sorry, the link you clicked is stale. Please select another option." ) );
}
}
$action = isset($_POST['action']) ? $_POST['action'] : 'splash';
$action = isset( $_POST['action'] ) ? $_POST['action'] : 'splash';
$title = __('Delete Blog');
$title = __( 'Delete Site' );
$parent_file = 'tools.php';
require_once('admin-header.php');
require_once( './admin-header.php' );
echo '<div class="wrap">';
screen_icon();
echo '<h2>'. esc_html($title) .'</h2>';
echo '<h2>' . esc_html( $title ) . '</h2>';
if ( isset($_POST['action']) && $_POST['action'] == "deleteblog" && isset($_POST['confirmdelete']) && $_POST['confirmdelete'] == '1' ) {
$hash = wp_generate_password(20, false);
update_option( "delete_blog_hash", $hash );
$url_delete = admin_url('ms-delete-site.php?h=' . $hash);
$msg = __("Dear User,
You recently clicked the 'Delete Blog' link on your blog and filled in a
if ( isset( $_POST['action'] ) && $_POST['action'] == 'deleteblog' && isset( $_POST['confirmdelete'] ) && $_POST['confirmdelete'] == '1' ) {
$hash = wp_generate_password( 20, false );
update_option( 'delete_blog_hash', $hash );
$url_delete = esc_url( admin_url( 'ms-delete-site.php?h=' . $hash ) );
$content = apply_filters( 'delete_site_email_content', __( "Dear User,
You recently clicked the 'Delete Site' link on your site and filled in a
form on that page.
If you really want to delete your blog, click the link below. You will not
If you really want to delete your site, click the link below. You will not
be asked to confirm again so only click this link if you are absolutely certain:
URL_DELETE
###URL_DELETE###
If you delete your blog, please consider opening a new blog here
some time in the future! (But remember your current blog and username
If you delete your site, please consider opening a new site here
some time in the future! (But remember your current site and username
are gone forever.)
Thanks for using the site,
Webmaster
SITE_NAME
");
$msg = str_replace( "URL_DELETE", $url_delete, $msg );
$msg = str_replace( "SITE_NAME", $current_site->site_name, $msg );
wp_mail( get_option( "admin_email" ), "[ " . get_option( "blogname" ) . " ] ".__("Delete My Blog"), $msg );
###SITE_NAME###" ) );
$content = str_replace( '###URL_DELETE###', $url_delete, $content );
$content = str_replace( '###SITE_NAME###', $current_site->site_name, $content );
wp_mail( get_option( 'admin_email' ), "[ " . get_option( 'blogname' ) . " ] ".__( 'Delete My Site' ), $content );
?>
<p><?php _e('Thank you. Please check your email for a link to confirm your action. Your blog will not be deleted until this link is clicked.') ?></p>
<p><?php _e( 'Thank you. Please check your email for a link to confirm your action. Your site will not be deleted until this link is clicked. ') ?></p>
<?php } else {
?>
<p><?php printf( __( 'If you do not want to use your %s site any more, you can delete it using the form below. When you click <strong>Delete My Site Permanently</strong> you will be sent an email with a link in it. Click on this link to delete your site.'), $current_site->site_name); ?></p>
<p><?php _e( 'Remember, once deleted your site cannot be restored.' ) ?></p>
<form method="post" name="deletedirect">
<input type="hidden" name="action" value="deleteblog" />
<p><input id="confirmdelete" type="checkbox" name="confirmdelete" value="1" /> <label for="confirmdelete"><strong><?php printf( __( "I'm sure I want to permanently disable my site, and I am aware I can never get it back or use %s again." ), is_subdomain_install() ? $current_blog->domain : $current_site->domain . $current_site->path ); ?></strong></label></p>
<p class="submit"><input type="submit" value="<?php esc_attr_e( 'Delete My Site Permanently' ) ?>" /></p>
</form>
<?php
} elseif ( isset( $_GET['h'] ) && $_GET['h'] != '' && get_option('delete_blog_hash') != false ) {
if ( get_option('delete_blog_hash') == $_GET['h'] ) {
wpmu_delete_blog( $wpdb->blogid );
echo "<p>" . sprintf(__('Thank you for using %s, your blog has been deleted. Happy trails to you until we meet again.'), $current_site->site_name) . "</p>";
} else {
echo "<p>" . __("I'm sorry, the link you clicked is stale. Please select another option.") . "</p>";
}
} else {
?>
<p><?php printf(__('If you do not want to use your %s blog any more, you can delete it using the form below. When you click <strong>Delete My Blog</strong> you will be sent an email with a link in it. Click on this link to delete your blog.'), $current_site->site_name); ?></p>
<p><?php _e('Remember, once deleted your blog cannot be restored.') ?></p>
<form method='post' name='deletedirect'>
<input type='hidden' name='action' value='deleteblog' />
<p><input id='confirmdelete' type='checkbox' name='confirmdelete' value='1' /> <label for='confirmdelete'><strong><?php printf( __("I'm sure I want to permanently disable my blog, and I am aware I can never get it back or use %s again."), $current_blog->domain); ?></strong></label></p>
<p class="submit"><input type='submit' value='<?php esc_attr_e('Delete My Blog Permanently') ?>' /></p>
</form>
<?php
}
echo '</div>';
include('admin-footer.php');
?>
include( './admin-footer.php' );
?>

View File

@ -1,33 +1,30 @@
<?php
require_once('admin.php');
require_once( './admin.php' );
if ( !is_multisite() )
wp_die( __('Multisite support is not enabled.') );
wp_die( __( 'Multisite support is not enabled.' ) );
do_action('wpmuadminedit', '');
do_action( 'wpmuadminedit' , '');
if ( isset($_GET[ 'id' ]) )
$id = intval( $_GET[ 'id' ] );
elseif ( isset($_POST[ 'id' ]) )
$id = intval( $_POST[ 'id' ] );
if ( isset( $_POST['ref'] ) == false && !empty($_SERVER['HTTP_REFERER']) )
$_POST['ref'] = $_SERVER['HTTP_REFERER'];
if ( isset( $_GET['id' ]) )
$id = intval( $_GET['id'] );
elseif ( isset( $_POST['id'] ) )
$id = intval( $_POST['id'] );
switch ( $_GET['action'] ) {
case "siteoptions":
check_admin_referer('siteoptions');
case 'siteoptions':
check_admin_referer( 'siteoptions' );
if ( ! current_user_can( 'manage_network_options' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
if ( empty( $_POST ) )
wp_die( __("You probably need to go back to the <a href='ms-options.php'>options page</a>") );
wp_die( sprintf( __( 'You probably need to go back to the <a href="%s">options page</a>.', esc_url( admin_url( 'ms-options.php' ) ) ) ) );
if ( isset($_POST['WPLANG']) && ( '' === $_POST['WPLANG'] || in_array($_POST['WPLANG'], get_available_languages()) ) )
update_site_option( "WPLANG", $_POST['WPLANG'] );
if ( isset($_POST['WPLANG']) && ( '' === $_POST['WPLANG'] || in_array( $_POST['WPLANG'], get_available_languages() ) ) )
update_site_option( 'WPLANG', $_POST['WPLANG'] );
if ( is_email( $_POST['admin_email'] ) )
update_site_option( "admin_email", $_POST['admin_email'] );
update_site_option( 'admin_email', $_POST['admin_email'] );
$illegal_names = split( ' ', $_POST['illegal_names'] );
foreach ( (array) $illegal_names as $name ) {
@ -35,10 +32,10 @@ switch ( $_GET['action'] ) {
if ( $name != '' )
$names[] = trim( $name );
}
update_site_option( "illegal_names", $names );
update_site_option( 'illegal_names', $names );
if ( $_POST['limited_email_domains'] != '' ) {
$limited_email_domains = str_replace( ' ', "\n", $_POST[ 'limited_email_domains' ] );
$limited_email_domains = str_replace( ' ', "\n", $_POST['limited_email_domains'] );
$limited_email_domains = split( "\n", stripslashes( $limited_email_domains ) );
$limited_email = array();
foreach ( (array) $limited_email_domains as $domain ) {
@ -46,31 +43,31 @@ switch ( $_GET['action'] ) {
if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) )
$limited_email[] = trim( $domain );
}
update_site_option( "limited_email_domains", $limited_email );
update_site_option( 'limited_email_domains', $limited_email );
} else {
update_site_option( "limited_email_domains", '' );
update_site_option( 'limited_email_domains', '' );
}
if ( $_POST['banned_email_domains'] != '' ) {
$banned_email_domains = split( "\n", stripslashes( $_POST[ 'banned_email_domains' ] ) );
$banned_email_domains = split( "\n", stripslashes( $_POST['banned_email_domains'] ) );
$banned = array();
foreach ( (array) $banned_email_domains as $domain ) {
$domain = trim( $domain );
if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) )
$banned[] = trim( $domain );
}
update_site_option( "banned_email_domains", $banned );
update_site_option( 'banned_email_domains', $banned );
} else {
update_site_option( "banned_email_domains", '' );
update_site_option( 'banned_email_domains', '' );
}
update_site_option( 'default_user_role', $_POST[ 'default_user_role' ] );
if ( trim( $_POST[ 'dashboard_blog_orig' ] ) == '' )
$_POST[ 'dashboard_blog_orig' ] = $current_site->blog_id;
if ( trim( $_POST[ 'dashboard_blog' ] ) == '' ) {
$_POST[ 'dashboard_blog' ] = $current_site->blog_id;
update_site_option( 'default_user_role', $_POST['default_user_role'] );
if ( trim( $_POST['dashboard_blog_orig'] ) == '' )
$_POST['dashboard_blog_orig'] = $current_site->blog_id;
if ( trim( $_POST['dashboard_blog'] ) == '' ) {
$_POST['dashboard_blog'] = $current_site->blog_id;
$dashboard_blog_id = $current_site->blog_id;
} else {
$dashboard_blog = untrailingslashit( sanitize_user( str_replace( '.', '', str_replace( $current_site->domain . $current_site->path, '', $_POST[ 'dashboard_blog' ] ) ) ) );
$dashboard_blog = untrailingslashit( sanitize_user( str_replace( '.', '', str_replace( $current_site->domain . $current_site->path, '', $_POST['dashboard_blog'] ) ) ) );
$blog_details = get_blog_details( $dashboard_blog );
if ( false === $blog_details ) {
if ( is_numeric( $dashboard_blog ) )
@ -83,7 +80,7 @@ switch ( $_GET['action'] ) {
$path = trailingslashit( $current_site->path . $dashboard_blog );
}
$wpdb->hide_errors();
$dashboard_blog_id = wpmu_create_blog( $domain, $path, __( 'My Dashboard' ), $current_user->id , array( "public" => 0 ), $current_site->id );
$dashboard_blog_id = wpmu_create_blog( $domain, $path, __( 'My Dashboard' ), $current_user->id , array( 'public' => 0 ), $current_site->id );
$wpdb->show_errors();
} else {
$dashboard_blog_id = $blog_details->blog_id;
@ -91,7 +88,7 @@ switch ( $_GET['action'] ) {
}
if ( is_wp_error( $dashboard_blog_id ) )
wp_die( __( 'Problem creating dashboard blog: ' ) . $dashboard_blog_id->get_error_message() );
if ( $_POST[ 'dashboard_blog_orig' ] != $_POST[ 'dashboard_blog' ] ) {
if ( $_POST['dashboard_blog_orig'] != $_POST['dashboard_blog'] ) {
$users = get_users_of_blog( get_site_option( 'dashboard_blog' ) );
$move_users = array();
foreach ( (array)$users as $user ) {
@ -106,60 +103,60 @@ switch ( $_GET['action'] ) {
}
}
}
update_site_option( "dashboard_blog", $dashboard_blog_id );
update_site_option( 'dashboard_blog', $dashboard_blog_id );
// global terms
if ( !global_terms_enabled() && ! empty( $_POST[ 'global_terms_enabled' ] ) ) {
if ( !global_terms_enabled() && ! empty( $_POST['global_terms_enabled'] ) ) {
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
// create global terms table
install_global_terms();
}
$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' );
$checked_options = array('mu_media_buttons' => array(), 'menu_items' => array(), 'registrationnotification' => 'no', 'upload_space_check_disabled' => 1 );
$checked_options = array( 'mu_media_buttons' => array(), 'menu_items' => array(), 'registrationnotification' => 'no', 'upload_space_check_disabled' => 1 );
foreach ( $checked_options as $option_name => $option_unchecked_value ) {
if ( ! isset($_POST[ $option_name ]) )
$_POST[ $option_name ] = $option_unchecked_value;
if ( ! isset( $_POST[$option_name] ) )
$_POST[$option_name] = $option_unchecked_value;
}
foreach ( $options as $option_name ) {
if ( ! isset($_POST[ $option_name ]) )
if ( ! isset($_POST[$option_name]) )
continue;
$value = stripslashes_deep( $_POST[ $option_name ] );
$value = stripslashes_deep( $_POST[$option_name] );
update_site_option( $option_name, $value );
}
// Update more options here
do_action( 'update_wpmu_options' );
wp_redirect( add_query_arg( "updated", "true", 'ms-options.php' ) );
wp_redirect( add_query_arg( 'updated', 'true', admin_url( 'ms-options.php' ) ) );
exit();
break;
case "addblog":
check_admin_referer('add-blog');
case 'addblog':
check_admin_referer( 'add-blog' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
if ( is_array( $_POST[ 'blog' ] ) == false )
wp_die( "Can't create an empty site." );
if ( is_array( $_POST['blog'] ) == false )
wp_die( __( "Can't create an empty site." ) );
$blog = $_POST['blog'];
$domain = '';
if ( ! preg_match( '/(--)/', $blog[ 'domain' ] ) && preg_match( '|^([a-zA-Z0-9-])+$|', $blog[ 'domain' ] ) )
$domain = strtolower( $blog[ 'domain' ] );
$email = sanitize_email( $blog[ 'email' ] );
$title = $blog[ 'title' ];
if ( ! preg_match( '/(--)/', $blog['domain'] ) && preg_match( '|^([a-zA-Z0-9-])+$|', $blog['domain'] ) )
$domain = strtolower( $blog['domain'] );
$email = sanitize_email( $blog['email'] );
$title = $blog['title'];
if ( empty( $domain ) )
wp_die( __( 'Missing or invalid site address.' ) );
if ( empty( $email ) )
wp_die( __( 'Missing email address.' ) );
if ( !is_email( $email ) )
wp_die( __( 'Invalid email address' ) );
wp_die( __( 'Invalid email address.' ) );
if ( is_subdomain_install() ) {
$newdomain = $domain.".".$current_site->domain;
$newdomain = $domain . '.' . $current_site->domain;
$path = $base;
} else {
$newdomain = $current_site->domain;
$path = $base.$domain.'/';
$path = $base . $domain . '/';
}
$password = 'N/A';
@ -168,46 +165,52 @@ switch ( $_GET['action'] ) {
$password = wp_generate_password();
$user_id = wpmu_create_user( $domain, $password, $email );
if ( false == $user_id )
wp_die( __('There was an error creating the user') );
wp_die( __( 'There was an error creating the user.' ) );
else
wp_new_user_notification($user_id, $password);
wp_new_user_notification( $user_id, $password );
}
$wpdb->hide_errors();
$id = wpmu_create_blog($newdomain, $path, $title, $user_id , array( "public" => 1 ), $current_site->id);
$id = wpmu_create_blog( $newdomain, $path, $title, $user_id , array( 'public' => 1 ), $current_site->id );
$wpdb->show_errors();
if ( !is_wp_error($id) ) {
if ( !is_wp_error( $id ) ) {
$dashboard_blog = get_dashboard_blog();
if ( get_user_option( 'primary_blog', $user_id ) == $dashboard_blog->blog_id )
update_user_option( $user_id, 'primary_blog', $id, true );
$content_mail = sprintf( __( "New site created by %1s\n\nAddress: http://%2s\nName: %3s"), $current_user->user_login , $newdomain.$path, stripslashes( $title ) );
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' ) . '>' );
wpmu_welcome_notification( $id, $user_id, $password, $title, array( "public" => 1 ) );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'add-blog'), $_SERVER['HTTP_REFERER'] ) );
$content_mail = sprintf( __( "New site created by %1s\n\nAddress: http://%2s\nName: %3s"), $current_user->user_login , $newdomain . $path, stripslashes( $title ) );
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' ) . '>' );
wpmu_welcome_notification( $id, $user_id, $password, $title, array( 'public' => 1 ) );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'add-blog' ), wp_get_referer() ) );
exit();
} else {
wp_die( $id->get_error_message() );
}
break;
case "updateblog":
check_admin_referer('editblog');
case 'updateblog':
check_admin_referer( 'editblog' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
if ( empty( $_POST ) )
wp_die( __('You probably need to go back to the <a href="ms-sites.php">sites page</a>') );
// themes
if ( isset($_POST[ 'theme' ]) && is_array( $_POST[ 'theme' ] ) )
$_POST[ 'option' ][ 'allowedthemes' ] = $_POST[ 'theme' ];
else
$_POST[ 'option' ][ 'allowedthemes' ] = '';
wp_die( sprintf( __( 'You probably need to go back to the <a href="%s">sites page</a>', esc_url( admin_url( 'ms-sites.php' ) ) ) ) );
switch_to_blog( $id );
if ( is_array( $_POST[ 'option' ] ) ) {
// themes
$allowedthemes = array();
if ( isset($_POST['theme']) && is_array( $_POST['theme'] ) ) {
foreach ( $_POST['theme'] as $theme => $val ) {
if ( 'on' == $val )
$allowedthemes[$theme] = true;
}
}
update_option( 'allowedthemes', $allowedthemes );
// options
if ( is_array( $_POST['option'] ) ) {
$c = 1;
$count = count( $_POST[ 'option' ] );
$count = count( $_POST['option'] );
foreach ( (array) $_POST['option'] as $key => $val ) {
if ( $key === 0 || is_array( $val ) )
continue; // Avoids "0 is a protected WP option and may not be modified" error when edit blog options
@ -219,10 +222,11 @@ switch ( $_GET['action'] ) {
}
}
// home and siteurl
if ( isset( $_POST['update_home_url'] ) && $_POST['update_home_url'] == 'update' ) {
$blog_address = get_blogaddress_by_domain($_POST['blog']['domain'], $_POST['blog']['path']);
$blog_address = get_blogaddress_by_domain( $_POST['blog']['domain'], $_POST['blog']['path'] );
if ( get_option( 'siteurl' ) != $blog_address )
update_option( 'siteurl', $blog_address);
update_option( 'siteurl', $blog_address );
if ( get_option( 'home' ) != $blog_address )
update_option( 'home', $blog_address );
@ -231,210 +235,216 @@ switch ( $_GET['action'] ) {
// rewrite rules can't be flushed during switch to blog
delete_option( 'rewrite_rules' );
// update blogs count
delete_site_transient( "blog_count" );
// update blogs table
$blog_data = stripslashes_deep($_POST[ 'blog' ]);
update_blog_details($id, $blog_data);
$blog_data = stripslashes_deep( $_POST['blog'] );
update_blog_details( $id, $blog_data );
// get blog prefix
$blog_prefix = $wpdb->get_blog_prefix( $id );
// user roles
if ( isset( $_POST[ 'role' ] ) && is_array( $_POST[ 'role' ] ) == true ) {
$newroles = $_POST[ 'role' ];
if ( isset( $_POST['role'] ) && is_array( $_POST['role'] ) == true ) {
$newroles = $_POST['role'];
reset( $newroles );
foreach ( (array) $newroles as $userid => $role ) {
$user = new WP_User($userid);
$user = new WP_User( $userid );
if ( ! $user )
continue;
$user->for_blog($id);
$user->set_role($role);
$user->for_blog( $id );
$user->set_role( $role );
}
}
// remove user
if ( isset( $_POST[ 'blogusers' ] ) && is_array( $_POST[ 'blogusers' ] ) ) {
reset( $_POST[ 'blogusers' ] );
foreach ( (array) $_POST[ 'blogusers' ] as $key => $val )
if ( isset( $_POST['blogusers'] ) && is_array( $_POST['blogusers'] ) ) {
reset( $_POST['blogusers'] );
foreach ( (array) $_POST['blogusers'] as $key => $val )
remove_user_from_blog( $key, $id );
}
// change password
if ( isset( $_POST[ 'user_password' ] ) && is_array( $_POST[ 'user_password' ] ) ) {
reset( $_POST[ 'user_password' ] );
$newroles = $_POST[ 'role' ];
foreach ( (array) $_POST[ 'user_password' ] as $userid => $pass ) {
unset( $_POST[ 'role' ] );
$_POST[ 'role' ] = $newroles[ $userid ];
if ( isset( $_POST['user_password'] ) && is_array( $_POST['user_password'] ) ) {
reset( $_POST['user_password'] );
$newroles = $_POST['role'];
foreach ( (array) $_POST['user_password'] as $userid => $pass ) {
unset( $_POST['role'] );
$_POST['role'] = $newroles[ $userid ];
if ( $pass != '' ) {
$cap = $wpdb->get_var( "SELECT meta_value FROM {$wpdb->usermeta} WHERE user_id = '{$userid}' AND meta_key = '{$blog_prefix}capabilities' AND meta_value = 'a:0:{}'" );
$userdata = get_userdata($userid);
$_POST[ 'pass1' ] = $_POST[ 'pass2' ] = $pass;
$_POST[ 'email' ] = $userdata->user_email;
$_POST[ 'rich_editing' ] = $userdata->rich_editing;
$_POST['pass1'] = $_POST['pass2'] = $pass;
$_POST['email'] = $userdata->user_email;
$_POST['rich_editing'] = $userdata->rich_editing;
edit_user( $userid );
if ( $cap == null )
$wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE user_id = '{$userid}' AND meta_key = '{$blog_prefix}capabilities' AND meta_value = 'a:0:{}'" );
}
}
unset( $_POST[ 'role' ] );
$_POST[ 'role' ] = $newroles;
unset( $_POST['role'] );
$_POST['role'] = $newroles;
}
// add user?
if ( isset( $_POST[ 'user_password' ] ) && !empty( $_POST[ 'newuser' ] ) ) {
$newuser = $_POST[ 'newuser' ];
// add user
if ( !empty( $_POST['newuser'] ) ) {
$newuser = $_POST['newuser'];
$userid = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) );
if ( $userid ) {
$user = $wpdb->get_var( "SELECT user_id FROM " . $wpdb->usermeta . " WHERE user_id='$userid' AND meta_key='wp_" . $id . "_capabilities'" );
$user = $wpdb->get_var( "SELECT user_id FROM " . $wpdb->usermeta . " WHERE user_id='$userid' AND meta_key='{$blog_prefix}capabilities'" );
if ( $user == false )
add_user_to_blog($id, $userid, $_POST[ 'new_role' ]);
add_user_to_blog( $id, $userid, $_POST['new_role'] );
}
}
do_action( 'wpmu_update_blog_options' );
restore_current_blog();
wpmu_admin_do_redirect( "ms-sites.php?action=editblog&updated=true&id=".$id );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'editblog', 'id' => $id ), wp_get_referer() ) );
break;
case "deleteblog":
case 'deleteblog':
check_admin_referer('deleteblog');
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
if ( $id != '0' && $id != $current_site->blog_id )
wpmu_delete_blog( $id, true );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'delete'), $_POST[ 'ref' ] ) );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'delete' ), wp_get_referer() ) );
exit();
break;
case "allblogs":
if ( isset($_POST['doaction']) || isset($_POST['doaction2']) ) {
check_admin_referer('bulk-sites');
case 'allblogs':
if ( isset( $_POST['doaction']) || isset($_POST['doaction2'] ) ) {
check_admin_referer( 'bulk-ms-sites' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __('You do not have permission to access this page.') );
if ( $_GET['action'] != -1 || $_POST['action2'] != -1 )
$doaction = $doaction = ($_POST['action'] != -1) ? $_POST['action'] : $_POST['action2'];
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __( 'You do not have permission to access this page.' ) );
if ( $_GET['action'] != -1 || $_POST['action2'] != -1 )
$doaction = $_POST['action'] != -1 ? $_POST['action'] : $_POST['action2'];
foreach ( (array) $_POST[ 'allblogs' ] as $key => $val ) {
if ( $val != '0' && $val != $current_site->blog_id ) {
switch ( $doaction ) {
case 'delete':
$blogfunction = 'all_delete';
wpmu_delete_blog( $val, true );
foreach ( (array) $_POST['allblogs'] as $key => $val ) {
if ( $val != '0' && $val != $current_site->blog_id ) {
switch ( $doaction ) {
case 'delete':
$blogfunction = 'all_delete';
wpmu_delete_blog( $val, true );
break;
case 'spam':
$blogfunction = 'all_spam';
update_blog_status( $val, "spam", '1', 0 );
set_time_limit(60);
case 'spam':
$blogfunction = 'all_spam';
update_blog_status( $val, 'spam', '1', 0 );
set_time_limit( 60 );
break;
case 'notspam':
$blogfunction = 'all_notspam';
update_blog_status( $val, "spam", '0', 0 );
set_time_limit(60);
case 'notspam':
$blogfunction = 'all_notspam';
update_blog_status( $val, 'spam', '0', 0 );
set_time_limit( 60 );
break;
}
} else {
wp_die( __( 'You are not allowed to change the current site.' ) );
}
} else {
wp_die( __('You are not allowed to change one of these sites.') );
exit();
};
};
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => $blogfunction), $_SERVER['HTTP_REFERER'] ) );
exit();
}
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $blogfunction ), wp_get_referer() ) );
exit();
} else {
wp_redirect( admin_url("ms-sites.php") );
wp_redirect( admin_url( 'ms-sites.php' ) );
}
break;
case "archiveblog":
check_admin_referer('archiveblog');
case 'archiveblog':
check_admin_referer( 'archiveblog' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
update_blog_status( $id, "archived", '1' );
do_action( "archive_blog", $id );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'archive'), $_POST['ref'] ) );
update_blog_status( $id, 'archived', '1' );
do_action( 'archive_blog', $id );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'archive' ), wp_get_referer() ) );
exit();
break;
case "unarchiveblog":
check_admin_referer('unarchiveblog');
case 'unarchiveblog':
check_admin_referer( 'unarchiveblog' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
do_action( "unarchive_blog", $id );
update_blog_status( $id, "archived", '0' );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'unarchive'), $_POST['ref'] ) );
do_action( 'unarchive_blog', $id );
update_blog_status( $id, 'archived', '0' );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unarchive' ), wp_get_referer() ) );
exit();
break;
case "activateblog":
check_admin_referer('activateblog');
case 'activateblog':
check_admin_referer( 'activateblog' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
update_blog_status( $id, "deleted", '0' );
do_action( "activate_blog", $id );
wp_redirect( add_query_arg( "updated", array('updated' => 'true', 'action' => 'activate'), $_POST['ref'] ) );
update_blog_status( $id, 'deleted', '0' );
do_action( 'activate_blog', $id );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'activate' ), wp_get_referer() ) );
exit();
break;
case "deactivateblog":
check_admin_referer('deactivateblog');
case 'deactivateblog':
check_admin_referer( 'deactivateblog' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
do_action( "deactivate_blog", $id );
update_blog_status( $id, "deleted", '1' );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'deactivate'), $_POST['ref'] ) );
do_action( 'deactivate_blog', $id );
update_blog_status( $id, 'deleted', '1' );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'deactivate' ), wp_get_referer() ) );
exit();
break;
case "unspamblog":
check_admin_referer('unspamblog');
case 'unspamblog':
check_admin_referer( 'unspamblog' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
update_blog_status( $id, "spam", '0' );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'unspam'), $_POST['ref'] ) );
update_blog_status( $id, 'spam', '0' );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unspam' ), wp_get_referer() ) );
exit();
break;
case "spamblog":
check_admin_referer('spamblog');
case 'spamblog':
check_admin_referer( 'spamblog' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
update_blog_status( $id, "spam", '1' );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'spam'), $_POST['ref'] ) );
update_blog_status( $id, 'spam', '1' );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'spam' ), wp_get_referer() ) );
exit();
break;
case "mature":
case 'matureblog':
check_admin_referer( 'matureblog' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __( 'You do not have permission to access this page.' ) );
update_blog_status( $id, 'mature', '1' );
do_action( 'mature_blog', $id );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'mature'), $_POST['ref'] ) );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'mature' ), wp_get_referer() ) );
exit();
break;
case "unmature":
case 'unmatureblog':
check_admin_referer( 'unmatureblog' );
if ( ! current_user_can( 'manage_sites' ) )
wp_die( __( 'You do not have permission to access this page.' ) );
update_blog_status( $id, 'mature', '0' );
do_action( 'unmature_blog', $id );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'umature'), $_POST['ref'] ) );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unmature' ), wp_get_referer() ) );
exit();
break;
// Themes
case "updatethemes":
case 'updatethemes':
if ( ! current_user_can( 'manage_network_themes' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
if ( is_array( $_POST['theme'] ) ) {
$themes = get_themes();
@ -445,174 +455,217 @@ switch ( $_GET['action'] ) {
}
update_site_option( 'allowedthemes', $allowed_themes );
}
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'themes'), $_SERVER['HTTP_REFERER'] ) );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'themes' ), wp_get_referer() ) );
exit();
break;
// Common
case "confirm":
$referrer = ( isset($_GET['ref']) ) ? stripslashes($_GET['ref']) : $_SERVER['HTTP_REFERER'];
$referrer = esc_url($referrer);
case 'confirm':
if ( !headers_sent() ) {
nocache_headers();
header( 'Content-Type: text/html; charset=utf-8' );
}
if ( $current_site->blog_id == $id )
wp_die( __( 'You are not allowed to change the current site.' ) );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <?php if ( function_exists('language_attributes') ) language_attributes(); ?>>
<html xmlns="http://www.w3.org/1999/xhtml" <?php if ( function_exists( 'language_attributes' ) ) language_attributes(); ?>>
<head>
<title><?php _e("WordPress &rsaquo; Confirm your action"); ?></title>
<title><?php _e( 'WordPress &rsaquo; Confirm your action' ); ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php wp_admin_css( 'install', true ); ?>
</head>
<body id="error-page">
<h1 id="logo"><img alt="WordPress" src="<?php echo esc_url( admin_url( 'images/wordpress-logo.png' ) ); ?>" /></h1>
<form action='ms-edit.php?action=<?php echo esc_attr( $_GET[ 'action2' ] ) ?>' method='post'>
<input type='hidden' name='action' value='<?php echo esc_attr( $_GET['action2'] ) ?>' />
<input type='hidden' name='id' value='<?php echo esc_attr( $id ); ?>' />
<input type='hidden' name='ref' value='<?php echo $referrer; ?>' />
<?php wp_nonce_field( $_GET['action2'] ) ?>
<p><?php echo esc_html( stripslashes($_GET['msg']) ); ?></p>
<p class="submit"><input class="button" type='submit' value='<?php _e("Confirm"); ?>' /></p>
<h1 id="logo"><img alt="WordPress" src="<?php echo esc_attr( admin_url( 'images/wordpress-logo.png' ) ); ?>" /></h1>
<form action="ms-edit.php?action=<?php echo esc_attr( $_GET['action2'] ) ?>" method="post">
<input type="hidden" name="action" value="<?php echo esc_attr( $_GET['action2'] ) ?>" />
<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
<input type="hidden" name="_wp_http_referer" value="<?php echo esc_attr( wp_get_referer() ); ?>" />
<?php wp_nonce_field( $_GET['action2'], '_wpnonce', false ); ?>
<p><?php esc_html_e( stripslashes( $_GET['msg'] ) ); ?></p>
<p class="submit"><input class="button" type="submit" value="<?php _e( 'Confirm' ); ?>" /></p>
</form>
</body>
</html>
<?php
break;
// Users (not used any more)
case "deleteuser":
check_admin_referer('deleteuser');
if ( $id != '0' && $id != '1' )
wpmu_delete_user($id);
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'delete'), $_POST['ref'] ) );
exit();
break;
case "allusers":
check_admin_referer('allusers');
// Users
case 'deleteuser':
if ( ! current_user_can( 'manage_network_users' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
if ( isset($_POST['alluser_delete']) ) {
require_once('admin-header.php');
echo '<div class="wrap" style="position:relative;">';
check_admin_referer( 'deleteuser' );
if ( $id != '0' && $id != '1' ) {
$_POST['allusers'] = array( $id ); // confirm_delete_users() can only handle with arrays
$title = __( 'Users' );
$parent_file = 'ms-admin.php';
require_once( 'admin-header.php' );
echo '<div class="wrap">';
confirm_delete_users( $_POST['allusers'] );
echo '</div>';
require_once('admin-footer.php');
} elseif ( isset( $_POST[ 'alluser_transfer_delete' ] ) ) {
if ( is_array( $_POST[ 'blog' ] ) && !empty( $_POST[ 'blog' ] ) ) {
foreach ( $_POST[ 'blog' ] as $id => $users ) {
foreach ( $users as $blogid => $user_id ) {
remove_user_from_blog( $id, $blogid, $user_id );
}
}
}
if ( is_array( $_POST[ 'user' ] ) && !empty( $_POST[ 'user' ] ) )
foreach( $_POST[ 'user' ] as $id )
wpmu_delete_user( $id );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'all_delete'), 'ms-users.php' ) );
} elseif ( isset( $_POST[ 'add_superadmin' ] ) ) {
$super_admins = get_site_option( 'site_admins', array( 'admin' ) );
$mainblog_id = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogs} WHERE domain='{$current_site->domain}' AND path='{$current_site->path}'" );
foreach ( (array) $_POST['allusers'] as $key => $val ) {
if ( $val == '' || $val == '0' )
continue;
$user = new WP_User( $val );
if ( in_array( $user->user_login, $super_admins ) )
continue;
if ( $mainblog_id )
add_user_to_blog( $mainblog_id, $user->ID, 'administrator' );
$super_admins[] = $user->user_login;
}
update_site_option( 'site_admins' , $super_admins );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'add_superadmin' ), $_SERVER['HTTP_REFERER'] ) );
} elseif ( isset( $_POST[ 'remove_superadmin' ] ) ) {
$super_admins = get_site_option( 'site_admins', array( 'admin' ) );
$admin_email = get_site_option( 'admin_email' );
foreach ( (array) $_POST['allusers'] as $key => $val ) {
if ( $val == '' || $val == '0' )
continue;
$user = new WP_User( $val );
if ( $user->ID == $current_user->ID || $user->user_email == $admin_email )
continue;
foreach ( $super_admins as $key => $username ) {
if ( $username == $user->user_login ) {
unset( $super_admins[ $key ] );
break;
}
}
}
update_site_option( 'site_admins' , $super_admins );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'remove_superadmin' ), $_SERVER['HTTP_REFERER'] ) );
require_once( 'admin-footer.php' );
exit();
} else {
foreach ( (array) $_POST['allusers'] as $key => $val ) {
if ( $val == '' || $val == '0' )
continue;
$user = new WP_User( $val );
if ( in_array( $user->user_login, get_site_option( 'site_admins', array( 'admin' ) ) ) )
wp_die( sprintf( __( 'Warning! User cannot be modified. The user %s is a network admnistrator.' ), $user->user_login ) );
if ( isset($_POST['alluser_spam']) ) {
$userfunction = 'all_spam';
$blogs = get_blogs_of_user( $val, true );
foreach ( (array) $blogs as $key => $details ) {
if ( $details->userblog_id == $current_site->blog_id ) { continue; } // main blog not a spam !
update_blog_status( $details->userblog_id, "spam", '1' );
}
update_user_status( $val, "spam", '1', 1 );
} elseif ( isset($_POST['alluser_notspam']) ) {
$userfunction = 'all_notspam';
$blogs = get_blogs_of_user( $val, true );
foreach ( (array) $blogs as $key => $details ) {
update_blog_status( $details->userblog_id, "spam", '0' );
}
update_user_status( $val, "spam", '0', 1 );
}
}
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => $userfunction), $_SERVER['HTTP_REFERER'] ) );
wp_redirect( admin_url( 'ms-users.php' ) );
}
exit();
break;
case "adduser":
check_admin_referer('add-user');
case 'allusers':
if ( ! current_user_can( 'manage_network_users' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
if ( is_array( $_POST[ 'user' ] ) == false )
wp_die( __( "Cannot create an empty user." ) );
if ( isset( $_POST['doaction']) || isset($_POST['doaction2'] ) ) {
check_admin_referer( 'bulk-ms-users' );
if ( $_GET['action'] != -1 || $_POST['action2'] != -1 )
$doaction = $_POST['action'] != -1 ? $_POST['action'] : $_POST['action2'];
foreach ( (array) $_POST['allusers'] as $key => $val ) {
if ( $val != '' || $val != '0' ) {
switch ( $doaction ) {
case 'delete':
$title = __( 'Users' );
$parent_file = 'ms-admin.php';
require_once( 'admin-header.php' );
echo '<div class="wrap">';
confirm_delete_users( $_POST['allusers'] );
echo '</div>';
require_once( 'admin-footer.php' );
exit();
break;
case 'superadmin':
$userfunction = 'add_superadmin';
$super_admins = get_site_option( 'site_admins', array( 'admin' ) );
$user = new WP_User( $val );
if ( ! in_array( $user->user_login, $super_admins ) ) {
if ( $current_site->blog_id )
add_user_to_blog( $current_site->blog_id, $user->ID, 'administrator' );
$super_admins[] = $user->user_login;
update_site_option( 'site_admins' , $super_admins );
}
break;
case 'notsuperadmin':
$userfunction = 'remove_superadmin';
$super_admins = get_site_option( 'site_admins', array( 'admin' ) );
$admin_email = get_site_option( 'admin_email' );
$user = new WP_User( $val );
if ( $user->ID != $current_user->ID || $user->user_email != $admin_email ) {
foreach ( $super_admins as $key => $username ) {
if ( $username == $user->user_login ) {
unset( $super_admins[$key] );
break;
}
}
}
update_site_option( 'site_admins' , $super_admins );
break;
case 'spam':
$user = new WP_User( $val );
if ( in_array( $user->user_login, get_site_option( 'site_admins', array( 'admin' ) ) ) )
wp_die( sprintf( __( 'Warning! User cannot be modified. The user %s is a network admnistrator.' ), esc_html( $user->user_login ) ) );
$userfunction = 'all_spam';
$blogs = get_blogs_of_user( $val, true );
foreach ( (array) $blogs as $key => $details ) {
if ( $details->userblog_id != $current_site->blog_id ) // main blog not a spam !
update_blog_status( $details->userblog_id, 'spam', '1' );
}
update_user_status( $val, 'spam', '1', 1 );
break;
case 'notspam':
$userfunction = 'all_notspam';
$blogs = get_blogs_of_user( $val, true );
foreach ( (array) $blogs as $key => $details )
update_blog_status( $details->userblog_id, 'spam', '0' );
update_user_status( $val, 'spam', '0', 1 );
break;
}
}
}
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $userfunction ), wp_get_referer() ) );
exit();
} else {
wp_redirect( admin_url( 'ms-users.php' ) );
}
break;
case 'dodelete':
check_admin_referer( 'ms-users-delete' );
if ( ! current_user_can( 'manage_network_users' ) )
wp_die( __( 'You do not have permission to access this page.' ) );
if ( is_array( $_POST['blog'] ) && ! empty( $_POST['blog'] ) ) {
foreach ( $_POST['blog'] as $id => $users ) {
foreach ( $users as $blogid => $user_id ) {
if ( ! empty( $_POST['delete'] ) && 'reassign' == $_POST['delete'][$blogid][$id] )
remove_user_from_blog( $id, $blogid, $user_id );
else
remove_user_from_blog( $id, $blogid );
}
}
}
$i = 0;
if ( is_array( $_POST['user'] ) && ! empty( $_POST['user'] ) )
foreach( $_POST['user'] as $id ) {
wpmu_delete_user( $id );
$i++;
}
if ( $i == 1 )
$deletefunction = 'delete';
else
$deletefunction = 'all_delete';
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $deletefunction ), admin_url( 'ms-users.php' ) ) );
break;
case 'adduser':
check_admin_referer( 'add-user' );
if ( ! current_user_can( 'manage_network_users' ) )
wp_die( __( 'You do not have permission to access this page.' ) );
if ( is_array( $_POST['user'] ) == false )
wp_die( __( 'Cannot create an empty user.' ) );
$user = $_POST['user'];
if ( empty($user['username']) && empty($user['email']) )
wp_die( __('Missing username and email.') );
wp_die( __( 'Missing username and email.' ) );
elseif ( empty($user['username']) )
wp_die( __('Missing username.') );
wp_die( __( 'Missing username.' ) );
elseif ( empty($user['email']) )
wp_die( __('Missing email.') );
wp_die( __( 'Missing email.' ) );
$password = wp_generate_password();
$user_id = wpmu_create_user(esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) );
$user_id = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) );
if ( false == $user_id )
wp_die( __('Duplicated username or email address.') );
wp_die( __( 'Duplicated username or email address.' ) );
else
wp_new_user_notification($user_id, $password);
wp_new_user_notification( $user_id, $password );
if ( get_site_option( 'dashboard_blog' ) == false )
add_user_to_blog( $current_site->blog_id, $user_id, get_site_option( 'default_user_role', 'subscriber' ) );
else
add_user_to_blog( get_site_option( 'dashboard_blog' ), $user_id, get_site_option( 'default_user_role', 'subscriber' ) );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'add'), $_SERVER['HTTP_REFERER'] ) );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'add' ), wp_get_referer() ) );
exit();
break;
default:
wpmu_admin_do_redirect( "ms-admin.php" );
wp_redirect( admin_url( 'ms-admin.php' ) );
break;
}
?>

View File

@ -1,42 +1,42 @@
<?php
require_once('admin.php');
require_once( './admin.php' );
if ( !is_multisite() )
wp_die( __('Multisite support is not enabled.') );
wp_die( __( 'Multisite support is not enabled.' ) );
$title = __('Network Options');
$title = __( 'Network Options' );
$parent_file = 'ms-admin.php';
include('admin-header.php');
include( './admin-header.php' );
if ( ! current_user_can( 'manage_network_options' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
if (isset($_GET['updated'])) {
?>
<div id="message" class="updated fade"><p><?php _e('Options saved.') ?></p></div>
<div id="message" class="updated fade"><p><?php _e( 'Options saved.' ) ?></p></div>
<?php
}
?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php _e('Network Options') ?></h2>
<h2><?php _e( 'Network Options' ) ?></h2>
<form method="post" action="ms-edit.php?action=siteoptions">
<?php wp_nonce_field( "siteoptions" ); ?>
<h3><?php _e('Operational Settings'); ?></h3>
<?php wp_nonce_field( 'siteoptions' ); ?>
<h3><?php _e( 'Operational Settings' ); ?></h3>
<table class="form-table">
<tr valign="top">
<th scope="row"><label for="site_name"><?php _e('Network Name') ?></label></th>
<th scope="row"><label for="site_name"><?php _e( 'Network Name' ) ?></label></th>
<td>
<input name="site_name" type="text" id="site_name" class="regular-text" value="<?php echo esc_attr($current_site->site_name) ?>" />
<input name="site_name" type="text" id="site_name" class="regular-text" value="<?php echo esc_attr( $current_site->site_name ) ?>" />
<br />
<?php _e('What you would like to call this website.') ?>
<?php _e( 'What you would like to call this website.' ) ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="admin_email"><?php _e('Network Admin Email') ?></label></th>
<th scope="row"><label for="admin_email"><?php _e( 'Network Admin Email' ) ?></label></th>
<td>
<input name="admin_email" type="text" id="admin_email" class="regular-text" value="<?php echo esc_attr( get_site_option('admin_email') ) ?>" />
<br />
@ -45,16 +45,16 @@ if (isset($_GET['updated'])) {
</tr>
<tr valign="top">
<th scope="row"><?php _e('Global Terms') ?></th>
<th scope="row"><?php _e( 'Global Terms' ) ?></th>
<td>
<label><input type='radio' id="global_terms_enabled" name="global_terms_enabled" value='1'<?php checked( get_site_option( 'global_terms_enabled' ), 1 ) ?>/> <?php _e( 'Maintain a global list of terms from all sites across the network.' ); ?></label><br />
<label><input type='radio' id="global_terms_enabled" name="global_terms_enabled" value='0'<?php checked( get_site_option( 'global_terms_enabled' ), 0 ) ?>/> <?php _e( 'Disabled' ); ?></label></td>
<label><input type="radio" id="global_terms_enabled" name="global_terms_enabled" value="1"<?php checked( get_site_option( 'global_terms_enabled' ), 1 ) ?>/> <?php _e( 'Maintain a global list of terms from all sites across the network.' ); ?></label><br />
<label><input type="radio" id="global_terms_enabled" name="global_terms_enabled" value="0"<?php checked( get_site_option( 'global_terms_enabled' ), 0 ) ?>/> <?php _e( 'Disabled' ); ?></label></td>
</tr>
</table>
<h3><?php _e('Dashboard Settings'); ?></h3>
<h3><?php _e( 'Dashboard Settings' ); ?></h3>
<table class="form-table">
<tr valign="top">
<th scope="row"><label for="dashboard_blog"><?php _e('Dashboard Site') ?></label></th>
<th scope="row"><label for="dashboard_blog"><?php _e( 'Dashboard Site' ) ?></label></th>
<td>
<?php
if ( $dashboard_blog = get_site_option( 'dashboard_blog' ) ) {
@ -63,14 +63,14 @@ if (isset($_GET['updated'])) {
} else {
$blogname = '';
}?>
<input name="dashboard_blog_orig" type="hidden" id="dashboard_blog_orig" value="<?php echo esc_attr($blogname); ?>" />
<input name="dashboard_blog" type="text" id="dashboard_blog" value="<?php echo esc_attr($blogname); ?>" class="regular-text" />
<input name="dashboard_blog_orig" type="hidden" id="dashboard_blog_orig" value="<?php echo esc_attr( $blogname ); ?>" />
<input name="dashboard_blog" type="text" id="dashboard_blog" value="<?php echo esc_attr( $blogname ); ?>" class="regular-text" />
<br />
<?php _e( "Site path ('dashboard', 'control', 'manager', etc) or blog id.<br />New users are added to this site as the user role defined below if they don't have a site. Leave blank for the main site. Users with the subscriber role on old site will be moved to the new site if changed. The new site will be created if it does not exist." ); ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="default_user_role"><?php _e('Dashboard User Default Role') ?></label></th>
<th scope="row"><label for="default_user_role"><?php _e( 'Dashboard User Default Role' ) ?></label></th>
<td>
<select name="default_user_role" id="default_user_role"><?php
wp_dropdown_roles( get_site_option( 'default_user_role', 'subscriber' ) );
@ -81,75 +81,77 @@ if (isset($_GET['updated'])) {
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="admin_notice_feed"><?php _e('Admin Notice Feed') ?></label></th>
<th scope="row"><label for="admin_notice_feed"><?php _e( 'Admin Notice Feed' ) ?></label></th>
<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 />
<?php _e( 'Display the latest post from this RSS or Atom feed on all site dashboards. Leave blank to disable.' ); ?><br />
<?php if ( get_site_option( 'admin_notice_feed' ) != network_home_url('feed/', 'http') )
echo __( "A good one to use would be the feed from your main site: " ) . network_home_url('feed/'); ?></td>
<?php if ( get_site_option( 'admin_notice_feed' ) != get_home_url( $current_site->id, 'feed/' ) )
echo __( 'A good one to use would be the feed from your main site: ' ) . esc_url( get_home_url( $current_site->id, 'feed/' ) ) ?></td>
</tr>
</table>
<h3><?php _e('Registration Settings'); ?></h3>
<h3><?php _e( 'Registration Settings' ); ?></h3>
<table class="form-table">
<tr valign="top">
<th scope="row"><?php _e('Allow new registrations') ?></th>
<th scope="row"><?php _e( 'Allow new registrations' ) ?></th>
<?php
if ( !get_site_option('registration') )
if ( !get_site_option( 'registration' ) )
update_site_option( 'registration', 'none' );
$reg = get_site_option( 'registration' );
?>
<td>
<label><input name="registration" type="radio" id="registration1" value='none'<?php checked( get_site_option('registration'), 'none') ?> /> <?php _e('Registration is disabled.'); ?></label><br />
<label><input name="registration" type="radio" id="registration2" value='user'<?php checked( get_site_option('registration'), 'user') ?> /> <?php _e('User accounts may be registered.'); ?></label><br />
<label><input name="registration" type="radio" id="registration3" value='blog'<?php checked( get_site_option('registration'), 'blog') ?> /> <?php _e('Logged in users may register new sites.'); ?></label><br />
<label><input name="registration" type="radio" id="registration4" value='all'<?php checked( get_site_option('registration'), 'all') ?> /> <?php _e('Both sites and user accounts can be registered.'); ?></label><br />
<p><?php _e('Disable or enable registration and who or what can be registered. (Default is disabled.)'); ?></p>
<label><input name="registration" type="radio" id="registration1" value="none"<?php checked( $reg, 'none') ?> /> <?php _e( 'Registration is disabled.' ); ?></label><br />
<label><input name="registration" type="radio" id="registration2" value="user"<?php checked( $reg, 'user') ?> /> <?php _e( 'User accounts may be registered.' ); ?></label><br />
<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 />
<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 />
<p><?php _e( 'Disable or enable registration and who or what can be registered. (Default is disabled.)' ); ?></p>
<?php if ( is_subdomain_install() ) {
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>';
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>';
} ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Registration notification') ?></th>
<th scope="row"><?php _e( 'Registration notification' ) ?></th>
<?php
if ( !get_site_option('registrationnotification') )
if ( !get_site_option( 'registrationnotification' ) )
update_site_option( 'registrationnotification', 'yes' );
?>
<td>
<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>
<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>
</td>
</tr>
<tr valign="top" id="addnewusers">
<th scope="row"><?php _e('Add New Users') ?></th>
<th scope="row"><?php _e( 'Add New Users' ) ?></th>
<td>
<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>
<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>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="illegal_names"><?php _e('Banned Names') ?></label></th>
<th scope="row"><label for="illegal_names"><?php _e( 'Banned Names' ) ?></label></th>
<td>
<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" />
<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" />
<br />
<?php _e('Users are not allowed to register these sites. Separate names by spaces.') ?>
<?php _e( 'Users are not allowed to register these sites. Separate names by spaces.' ) ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="limited_email_domains"><?php _e('Limited Email Registrations') ?></label></th>
<th scope="row"><label for="limited_email_domains"><?php _e( 'Limited Email Registrations' ) ?></label></th>
<td>
<?php $limited_email_domains = get_site_option('limited_email_domains');
<?php $limited_email_domains = get_site_option( 'limited_email_domains' );
$limited_email_domains = str_replace( ' ', "\n", $limited_email_domains ); ?>
<textarea name="limited_email_domains" id="limited_email_domains" cols='45' rows='5'><?php echo wp_htmledit_pre( $limited_email_domains == '' ? '' : implode( "\n", (array) $limited_email_domains ) ); ?></textarea>
<textarea name="limited_email_domains" id="limited_email_domains" cols="45" rows="5"><?php echo wp_htmledit_pre( $limited_email_domains == '' ? '' : implode( "\n", (array) $limited_email_domains ) ); ?></textarea>
<br />
<?php _e('If you want to limit site registrations to certain domains. Enter one domain per line.') ?>
<?php _e( 'If you want to limit site registrations to certain domains. Enter one domain per line.' ) ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="banned_email_domains"><?php _e('Banned Email Domains') ?></label></th>
<td>
<textarea name="banned_email_domains" id="banned_email_domains" cols='45' rows='5'><?php echo wp_htmledit_pre( get_site_option('banned_email_domains') == '' ? '' : implode( "\n", (array) get_site_option('banned_email_domains') ) ); ?></textarea>
<textarea name="banned_email_domains" id="banned_email_domains" cols="45" rows="5"><?php echo wp_htmledit_pre( get_site_option( 'banned_email_domains' ) == '' ? '' : implode( "\n", (array) get_site_option( 'banned_email_domains' ) ) ); ?></textarea>
<br />
<?php _e('If you want to ban domains from site registrations. Enter one domain per line.') ?>
</td>
@ -160,105 +162,105 @@ if (isset($_GET['updated'])) {
<table class="form-table">
<tr valign="top">
<th scope="row"><label for="welcome_email"><?php _e('Welcome Email') ?></label></th>
<th scope="row"><label for="welcome_email"><?php _e( 'Welcome Email' ) ?></label></th>
<td>
<textarea name="welcome_email" id="welcome_email" rows='5' cols='45' class="large-text"><?php echo stripslashes( get_site_option('welcome_email') ) ?></textarea>
<textarea name="welcome_email" id="welcome_email" rows="5" cols="45" class="large-text"><?php echo stripslashes( get_site_option( 'welcome_email' ) ) ?></textarea>
<br />
<?php _e('The welcome email sent to new site owners.') ?>
<?php _e( 'The welcome email sent to new site owners.' ) ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="welcome_user_email"><?php _e('Welcome User Email') ?></label></th>
<th scope="row"><label for="welcome_user_email"><?php _e( 'Welcome User Email' ) ?></label></th>
<td>
<textarea name="welcome_user_email" id="welcome_user_email" rows='5' cols='45' class="large-text"><?php echo stripslashes( get_site_option('welcome_user_email') ) ?></textarea>
<textarea name="welcome_user_email" id="welcome_user_email" rows="5" cols="45" class="large-text"><?php echo stripslashes( get_site_option( 'welcome_user_email' ) ) ?></textarea>
<br />
<?php _e('The welcome email sent to new users.') ?>
<?php _e( 'The welcome email sent to new users.' ) ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="first_post"><?php _e('First Post') ?></label></th>
<th scope="row"><label for="first_post"><?php _e( 'First Post' ) ?></label></th>
<td>
<textarea name="first_post" id="first_post" rows='5' cols='45' class="large-text"><?php echo stripslashes( get_site_option('first_post') ) ?></textarea>
<textarea name="first_post" id="first_post" rows="5" cols="45" class="large-text"><?php echo stripslashes( get_site_option( 'first_post' ) ) ?></textarea>
<br />
<?php _e('The first post on a new site.') ?>
<?php _e( 'The first post on a new site.' ) ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="first_page"><?php _e('First Page') ?></label></th>
<th scope="row"><label for="first_page"><?php _e( 'First Page' ) ?></label></th>
<td>
<textarea name="first_page" id="first_page" rows='5' cols='45' class="large-text"><?php echo stripslashes( get_site_option('first_page') ) ?></textarea>
<textarea name="first_page" id="first_page" rows="5" cols="45" class="large-text"><?php echo stripslashes( get_site_option('first_page') ) ?></textarea>
<br />
<?php _e('The first page on a new site.') ?>
<?php _e( 'The first page on a new site.' ) ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="first_comment"><?php _e('First Comment') ?></label></th>
<th scope="row"><label for="first_comment"><?php _e( 'First Comment' ) ?></label></th>
<td>
<textarea name="first_comment" id="first_comment" rows='5' cols='45' class="large-text"><?php echo stripslashes( get_site_option('first_comment') ) ?></textarea>
<textarea name="first_comment" id="first_comment" rows="5" cols="45" class="large-text"><?php echo stripslashes( get_site_option('first_comment') ) ?></textarea>
<br />
<?php _e('The first comment on a new site.') ?>
<?php _e( 'The first comment on a new site.' ) ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="first_comment_author"><?php _e('First Comment Author') ?></label></th>
<th scope="row"><label for="first_comment_author"><?php _e( 'First Comment Author' ) ?></label></th>
<td>
<input type="text" size='40' name="first_comment_author" id="first_comment_author" value="<?php echo get_site_option('first_comment_author') ?>" />
<input type="text" size="40" name="first_comment_author" id="first_comment_author" value="<?php echo get_site_option('first_comment_author') ?>" />
<br />
<?php _e('The author of the first comment on a new site.') ?>
<?php _e( 'The author of the first comment on a new site.' ) ?>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="first_comment_url"><?php _e('First Comment URL') ?></label></th>
<th scope="row"><label for="first_comment_url"><?php _e( 'First Comment URL' ) ?></label></th>
<td>
<input type="text" size='40' name="first_comment_url" id="first_comment_url" value="<?php echo esc_attr(get_site_option('first_comment_url')) ?>" />
<input type="text" size="40" name="first_comment_url" id="first_comment_url" value="<?php echo esc_attr( get_site_option( 'first_comment_url' ) ) ?>" />
<br />
<?php _e('The URL for the first comment on a new site.') ?>
<?php _e( 'The URL for the first comment on a new site.' ) ?>
</td>
</tr>
</table>
<h3><?php _e('Upload Settings'); ?></h3>
<h3><?php _e( 'Upload Settings' ); ?></h3>
<table class="form-table">
<tr valign="top">
<th scope="row"><?php _e('Media upload buttons') ?></th>
<th scope="row"><?php _e( 'Media upload buttons' ) ?></th>
<?php $mu_media_buttons = get_site_option( 'mu_media_buttons', array() ); ?>
<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 />
<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 />
<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 />
<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 />
<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 />
<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 />
<?php _e( 'The media upload buttons to display on the "Write Post" page. Make sure you update the allowed upload file types below as well.' ); ?></td>
</tr>
<tr valign="top">
<th scope="row"><?php _e('Site upload space') ?></th>
<th scope="row"><?php _e( 'Site upload space' ) ?></th>
<td>
<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' ), '<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 />
<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' ), '<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 />
</tr>
<tr valign="top">
<th scope="row"><label for="upload_filetypes"><?php _e('Upload file types') ?></label></th>
<th scope="row"><label for="upload_filetypes"><?php _e( 'Upload file types' ) ?></label></th>
<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>
</tr>
<tr valign="top">
<th scope="row"><label for="fileupload_maxk"><?php _e('Max upload file size') ?></label></th>
<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>
<th scope="row"><label for="fileupload_maxk"><?php _e( 'Max upload file size' ) ?></label></th>
<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>
</tr>
</table>
<?php
$languages = get_available_languages();
if ( ! empty( $languages ) ) {
$lang = get_site_option('WPLANG');
$lang = get_site_option( 'WPLANG' );
?>
<h3><?php _e('Network Wide Settings'); ?></h3>
<h3><?php _e( 'Network Wide Settings' ); ?></h3>
<div class="updated inline"><p><strong><?php _e( 'Notice:' ); ?></strong> <?php _e( 'These settings may be overridden by site owners.' ); ?></p></div>
<table class="form-table">
<?php
?>
<tr valign="top">
<th><label for="WPLANG"><?php _e('Default Language') ?></label></th>
<th><label for="WPLANG"><?php _e( 'Default Language' ) ?></label></th>
<td>
<select name="WPLANG" id="WPLANG">
<?php mu_dropdown_languages( $languages, get_site_option('WPLANG') ); ?>
<?php mu_dropdown_languages( $languages, get_site_option( 'WPLANG' ) ); ?>
</select>
</td>
</tr>
@ -267,7 +269,7 @@ if (isset($_GET['updated'])) {
} // languages
?>
<h3><?php _e('Menu Settings'); ?></h3>
<h3><?php _e( 'Menu Settings' ); ?></h3>
<table id="menu" class="form-table">
<tr valign="top">
<th scope="row"><?php _e( 'Enable administration menus' ); ?></th>
@ -276,7 +278,7 @@ if (isset($_GET['updated'])) {
$menu_perms = get_site_option( 'menu_items' );
$menu_items = apply_filters( 'mu_menu_items', array( 'plugins' => __( 'Plugins' ) ) );
foreach ( (array) $menu_items as $key => $val ) {
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/>";
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/>";
}
?>
</td>
@ -285,8 +287,8 @@ if (isset($_GET['updated'])) {
<?php do_action( 'wpmu_options' ); // Add more options here ?>
<p class="submit"><input type="submit" class="button-primary" name="Submit" value="<?php esc_attr_e('Save Changes') ?>" /></p>
<p class="submit"><input type="submit" class="button-primary" name="Submit" value="<?php esc_attr_e( 'Save Changes' ) ?>" /></p>
</form>
</div>
<?php include('./admin-footer.php'); ?>
<?php include( './admin-footer.php' ); ?>

File diff suppressed because it is too large Load Diff

View File

@ -1,16 +1,16 @@
<?php
require_once('admin.php');
require_once( './admin.php' );
$title = __('Network Themes');
$title = __( 'Network Themes' );
$parent_file = 'ms-admin.php';
require_once('admin-header.php');
require_once( './admin-header.php' );
if ( ! current_user_can( 'manage_network_themes' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
if ( isset($_GET['updated']) ) {
if ( isset( $_GET['updated'] ) ) {
?>
<div id="message" class="updated fade"><p><?php _e('Site themes saved.') ?></p></div>
<div id="message" class="updated fade"><p><?php _e( 'Site themes saved.' ) ?></p></div>
<?php
}
@ -18,17 +18,17 @@ $themes = get_themes();
$allowed_themes = get_site_allowed_themes();
?>
<div class="wrap">
<form action='ms-edit.php?action=updatethemes' method='post'>
<form action="<?php echo esc_url( admin_url( 'ms-edit.php?action=updatethemes' ) ); ?>" method="post">
<?php screen_icon(); ?>
<h2><?php _e('Network Themes') ?></h2>
<p><?php _e('Disable themes network-wide. You can enable themes on a site by site basis.') ?></p>
<h2><?php _e( 'Network Themes' ) ?></h2>
<p><?php _e( 'Disable themes network-wide. You can enable themes on a site by site basis.' ) ?></p>
<table class="widefat">
<thead>
<tr>
<th style="width:15%;text-align:center;"><?php _e('Active') ?></th>
<th style="width:25%;"><?php _e('Theme') ?></th>
<th style="width:10%;"><?php _e('Version') ?></th>
<th style="width:60%;"><?php _e('Description') ?></th>
<th style="width:15%;text-align:center;"><?php _e( 'Active' ) ?></th>
<th style="width:25%;"><?php _e( 'Theme' ) ?></th>
<th style="width:10%;"><?php _e( 'Version' ) ?></th>
<th style="width:60%;"><?php _e( 'Description' ) ?></th>
</tr>
</thead>
<tbody id="plugins">
@ -37,23 +37,24 @@ $allowed_themes = get_site_allowed_themes();
$class = '';
foreach ( (array) $themes as $key => $theme ) {
$total_theme_count++;
$theme_key = esc_html($theme['Stylesheet']);
$class = ('alt' == $class) ? '' : 'alt';
$theme_key = esc_html( $theme['Stylesheet'] );
$class = ( 'alt' == $class ) ? '' : 'alt';
$class1 = $enabled = $disabled = '';
$enabled = $disabled = false;
if ( isset( $allowed_themes[ $theme_key ] ) == true ) {
$enabled = 'checked="checked" ';
if ( isset( $allowed_themes[$theme_key] ) == true ) {
$enabled = true;
$activated_themes_count++;
$class1 = ' active';
$class1 = 'active';
} else {
$disabled = 'checked="checked" ';
$disabled = true;
}
?>
<tr valign="top" class="<?php echo $class.$class1; ?>">
<tr valign="top" class="<?php echo $class, $class1; ?>">
<td style="text-align:center;">
<label><input name="theme[<?php echo $theme_key ?>]" type="radio" id="enabled_<?php echo $theme_key ?>" value="enabled" <?php echo $enabled ?> /> <?php _e('Yes') ?></label>
<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>
&nbsp;&nbsp;&nbsp;
<label><input name="theme[<?php echo $theme_key ?>]" type="radio" id="disabled_<?php echo $theme_key ?>" value="disabled" <?php echo $disabled ?> /> <?php _e('No') ?></label>
<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>
</td>
<th scope="row" style="text-align:left;"><?php echo $key ?></th>
<td><?php echo $theme['Version'] ?></td>
@ -64,15 +65,15 @@ $allowed_themes = get_site_allowed_themes();
</table>
<p class="submit">
<input type='submit' value='<?php _e('Update Themes') ?>' /></p>
<input type="submit" value="<?php _e( 'Update Themes' ) ?>" /></p>
</form>
<h3><?php _e('Total')?></h3>
<h3><?php _e( 'Total' )?></h3>
<p>
<?php printf(__('Themes Installed: %d'), $total_theme_count); ?>
<?php printf( __( 'Themes Installed: %d' ), $total_theme_count); ?>
<br />
<?php printf(__('Themes Activated: %d'), $activated_themes_count); ?>
<?php printf( __( 'Themes Activated: %d' ), $activated_themes_count); ?>
</p>
</div>
<?php include('admin-footer.php'); ?>
<?php include( './admin-footer.php' ); ?>

View File

@ -1,67 +1,71 @@
<?php
require_once('admin.php');
require_once( './admin.php' );
if ( !is_multisite() )
wp_die( __('Multisite support is not enabled.') );
wp_die( __( 'Multisite support is not enabled.' ) );
$title = __('Users');
$title = __( 'Users' );
$parent_file = 'ms-admin.php';
wp_enqueue_script( 'admin-forms' );
require_once('admin-header.php');
require_once( './admin-header.php' );
if ( ! current_user_can( 'manage_network_users' ) )
wp_die( __('You do not have permission to access this page.') );
wp_die( __( 'You do not have permission to access this page.' ) );
if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
if ( isset( $_GET['updated'] ) && $_GET['updated'] == 'true' && ! empty( $_GET['action'] ) ) {
?>
<div id="message" class="updated fade"><p>
<?php
switch ($_GET['action']) {
switch ( $_GET['action'] ) {
case 'delete':
_e('User deleted !');
_e( 'User deleted.' );
break;
case 'all_spam':
_e('Users marked as spam !');
_e( 'Users marked as spam.' );
break;
case 'all_notspam':
_e('Users marked as not spam !');
_e( 'Users marked as not spam.' );
break;
case 'all_delete':
_e('Users deleted !');
_e( 'Users deleted.' );
break;
case 'add':
_e('User added !');
_e( 'User added.' );
break;
case 'add_superadmin':
_e('Network admin added !');
_e( 'Network admin added.' );
break;
case 'remove_superadmin':
_e('Network admin removed !');
_e( 'Network admin removed.' );
break;
}
?>
</p></div>
<?php
}
?>
<div class="wrap" style="position:relative;">
<?php
$apage = isset( $_GET['apage'] ) ? intval( $_GET['apage'] ) : 1;
$num = isset( $_GET['num'] ) ? intval( $_GET['num'] ) : 15;
$s = isset($_GET[ 's' ]) ? esc_attr( trim( $_GET[ 's' ] ) ) : '';
$pagenum = isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 0;
if ( empty( $pagenum ) )
$pagenum = 1;
$per_page = (int) get_user_option( 'ms_users_per_page' );
if ( empty( $per_page ) || $per_page < 1 )
$per_page = 15;
$per_page = apply_filters( 'ms_users_per_page', $per_page );
$s = isset( $_GET['s'] ) ? stripslashes( trim( $_GET[ 's' ] ) ) : '';
$like_s = esc_sql( like_escape( $s ) );
$query = "SELECT * FROM {$wpdb->users}";
if ( !empty( $s ) ) {
$search = '%' . trim( $s ) . '%';
$query .= " WHERE user_login LIKE '$search' OR user_email LIKE '$search'";
if ( !empty( $like_s ) ) {
$query .= " WHERE user_login LIKE '%$like_s%' OR user_email LIKE '%$like_s%'";
}
$order_by = isset( $_GET['sortby'] ) ? $_GET['sortby'] : 'id';
if ( $order_by == 'email' ) {
$query .= ' ORDER BY user_email ';
} elseif ( $order_by == 'login' ) {
@ -75,101 +79,131 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
$query .= ' ORDER BY ID ';
}
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC';
$order = ( 'DESC' == $order ) ? 'DESC' : 'ASC';
$order = ( isset( $_GET['order'] ) && 'DESC' == $_GET['order'] ) ? 'DESC' : 'ASC';
$query .= $order;
if ( !empty( $s ) )
$total = $wpdb->get_var( str_replace('SELECT *', 'SELECT COUNT(ID)', $query) );
else
$total = $wpdb->get_var( "SELECT COUNT(ID) FROM {$wpdb->users}");
$total = $wpdb->get_var( str_replace( 'SELECT *', 'SELECT COUNT(ID)', $query ) );
$query .= " LIMIT " . intval( ( $apage - 1 ) * $num) . ", " . intval( $num );
$query .= " LIMIT " . intval( ( $pagenum - 1 ) * $per_page) . ", " . intval( $per_page );
$user_list = $wpdb->get_results( $query, ARRAY_A );
// Pagination
$user_navigation = paginate_links( array(
'total' => ceil($total / $num),
'current' => $apage,
'base' => add_query_arg( 'apage', '%#%' ),
'format' => ''
$num_pages = ceil( $total / $per_page );
$page_links = paginate_links( array(
'base' => add_query_arg( 'paged', '%#%' ),
'format' => '',
'prev_text' => __( '&laquo;' ),
'next_text' => __( '&raquo;' ),
'total' => $num_pages,
'current' => $pagenum
));
if ( $user_navigation ) {
$user_navigation = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>%s',
number_format_i18n( ( $apage - 1 ) * $num + 1 ),
number_format_i18n( min( $apage * $num, $total ) ),
number_format_i18n( $total ),
$user_navigation
);
}
if ( empty( $_GET['mode'] ) )
$mode = 'list';
else
$mode = esc_attr( $_GET['mode'] );
?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php esc_html_e("Users"); ?></h2>
<h2><?php esc_html_e( 'Users' ); ?>
<a href="#form-add-user" class="button add-new-h2"><?php echo esc_html_x( 'Add New' , 'users'); ?></a>
<?php
if ( isset( $_GET['s'] ) && $_GET['s'] )
printf( '<span class="subtitle">' . __( 'Search results for &#8220;%s&#8221;' ) . '</span>', esc_html( $s ) );
?>
</h2>
<form action="ms-users.php" method="get" class="search-form">
<p class="search-box">
<input type="text" name="s" value="<?php if ( isset($_GET['s']) ) esc_attr( stripslashes( $s ) ); ?>" class="search-input" id="user-search-input" />
<input type="submit" id="post-query-submit" value="<?php esc_attr_e('Search Users') ?>" class="button" />
<input type="text" name="s" value="<?php echo esc_attr( $s ); ?>" class="search-input" id="user-search-input" />
<input type="submit" id="post-query-submit" value="<?php esc_attr_e( 'Search Users' ) ?>" class="button" />
</p>
</form>
</div>
<form id="form-user-list" action='ms-edit.php?action=allusers' method='post'>
<input type="hidden" name="mode" value="<?php echo esc_attr( $mode ); ?>" />
<div class="tablenav">
<?php if ( $user_navigation ) echo "<div class='tablenav-pages'>$user_navigation</div>"; ?>
<div class="alignleft actions">
<input type="submit" value="<?php esc_attr_e('Delete') ?>" name="alluser_delete" class="button-secondary delete" />
<input type="submit" value="<?php esc_attr_e('Mark as Spammers') ?>" name="alluser_spam" class="button-secondary" />
<input type="submit" value="<?php esc_attr_e('Not Spam') ?>" name="alluser_notspam" class="button-secondary" />
<input type="submit" value="<?php esc_attr_e('Add Network Admins') ?>" name="add_superadmin" class="button-secondary" />
<input type="submit" value="<?php esc_attr_e('Remove Network Admins') ?>" name="remove_superadmin" class="button-secondary" />
<?php wp_nonce_field( 'allusers' ); ?>
<br class="clear" />
<select name="action">
<option value="-1" selected="selected"><?php _e( 'Bulk Actions' ); ?></option>
<option value="delete"><?php _e( 'Delete' ); ?></option>
<option value="spam"><?php _e( 'Mark as Spammers' ); ?></option>
<option value="notspam"><?php _e( 'Not Spam' ); ?></option>
<option value="superadmin"><?php _e( 'Add Super Admins' ); ?></option>
<option value="notsuperadmin"><?php _e( 'Remove Super Admins' ); ?></option>
</select>
<input type="submit" value="<?php esc_attr_e( 'Apply' ); ?>" name="doaction" id="doaction" class="button-secondary action" />
<?php wp_nonce_field( 'bulk-ms-users' ); ?>
</div>
<?php if ( $page_links ) { ?>
<div class="tablenav-pages">
<?php $page_links_text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>%s',
number_format_i18n( ( $pagenum - 1 ) * $per_page + 1 ),
number_format_i18n( min( $pagenum * $per_page, $num_pages ) ),
number_format_i18n( $num_pages ),
$page_links
); echo $page_links_text; ?>
</div>
<?php } ?>
<div class="view-switch">
<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>
<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>
</div>
</div>
<?php if ( isset($_GET['s']) && $_GET['s'] != '' ) : ?>
<p><a href="ms-sites.php?action=blogs&amp;s=<?php echo urlencode( stripslashes( $s ) ); ?>&blog_name=Search+blogs+by+name"><?php _e('Search Sites for') ?> <strong><?php echo stripslashes( $s ) ?></strong></a></p>
<?php endif; ?>
<div class="clear"></div>
<?php
// define the columns to display, the syntax is 'internal name' => 'display name'
$posts_columns = array(
'checkbox' => '',
'login' => __('Username'),
'name' => __('Name'),
'email' => __('E-mail'),
'registered' => __('Registered'),
'blogs' => ''
$users_columns = array(
'id' => __( 'ID' ),
'login' => __( 'Username' ),
'name' => __( 'Name' ),
'email' => __( 'E-mail' ),
'registered' => __( 'Registered' ),
'blogs' => __( 'Sites' )
);
$posts_columns = apply_filters('wpmu_users_columns', $posts_columns);
$users_columns = apply_filters( 'wpmu_users_columns', $users_columns );
?>
<table class="widefat" cellspacing="0">
<table class="widefat">
<thead>
<tr>
<?php foreach( (array) $posts_columns as $column_id => $column_display_name) {
if ( $column_id == 'blogs' ) {
echo '<th scope="col">'.__('Sites').'</th>';
} elseif ( $column_id == 'checkbox') {
echo '<th scope="col" class="check-column"><input type="checkbox" /></th>';
} else { ?>
<th scope="col"><a href="ms-users.php?sortby=<?php echo $column_id ?>&amp;<?php if ( $order_by == $column_id ) { if ( $order == 'DESC' ) { echo "order=ASC&amp;" ; } else { echo "order=DESC&amp;"; } } ?>apage=<?php echo $apage ?>"><?php echo $column_display_name; ?></a></th>
<?php } ?>
<?php } ?>
<th class="manage-column column-cb check-column" id="cb" scope="col">
<input type="checkbox" />
</th>
<?php
$col_url = '';
foreach($users_columns as $column_id => $column_display_name) {
$column_link = "<a href='";
$order2 = '';
if ( $order_by == $column_id )
$order2 = ( $order == 'DESC' ) ? 'ASC' : 'DESC';
$column_link .= esc_url( add_query_arg( array( 'order' => $order2, 'paged' => $pagenum, 'sortby' => $column_id ), remove_query_arg( array( 'action', 'updated' ), $_SERVER['REQUEST_URI'] ) ) );
$column_link .= "'>{$column_display_name}</a>";
$col_url .= '<th scope="col">' . ( $column_id == 'blogs' ? $column_display_name : $column_link ) . '</th>';
}
echo $col_url; ?>
</tr>
</thead>
<tbody id="users" class="list:user user-list">
<?php if ($user_list) {
<tfoot>
<tr>
<th class="manage-column column-cb check-column" id="cb" scope="col">
<input type="checkbox" />
</th>
<?php echo $col_url; ?>
</tr>
</tfoot>
<tbody id="the-user-list" class="list:user">
<?php if ( $user_list ) {
$class = '';
$super_admins = get_site_option( 'site_admins' );
foreach ( (array) $user_list as $user) {
$class = ('alternate' == $class) ? '' : 'alternate';
foreach ( (array) $user_list as $user ) {
$class = ( 'alternate' == $class ) ? '' : 'alternate';
$status_list = array( "spam" => "site-spammed", "deleted" => "site-deleted" );
$status_list = array( 'spam' => 'site-spammed', 'deleted' => 'site-deleted' );
foreach ( $status_list as $status => $col ) {
if ( $user[$status] )
@ -177,31 +211,34 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
}
?>
<tr class="<?php echo $class; ?>">
<?php
foreach( (array) $posts_columns as $column_name=>$column_display_name) :
switch($column_name) {
case 'checkbox': ?>
<th scope="row" class="check-column"><input type='checkbox' id='user_<?php echo $user['ID'] ?>' name='allusers[]' value='<?php echo esc_attr($user['ID']) ?>' /></th>
foreach( (array) $users_columns as $column_name=>$column_display_name ) :
switch( $column_name ) {
case 'id': ?>
<th scope="row" class="check-column">
<input type="checkbox" id="blog_<?php echo $user['ID'] ?>" name="allusers[]" value="<?php echo esc_attr( $user['ID'] ) ?>" />
</th>
<th valign="top" scope="row">
<?php echo $user['ID'] ?>
</th>
<?php
break;
case 'login':
$avatar = get_avatar( $user['user_email'], 32 );
$edit = esc_url( add_query_arg( 'wp_http_referer', urlencode( esc_url( stripslashes( $_SERVER['REQUEST_URI'] ) ) ), "user-edit.php?user_id=".$user['ID'] ) );
// @todo Make delete link work like delete button with transfering users (in ms-edit.php)
//$delete = esc_url( add_query_arg( 'wp_http_referer', urlencode( esc_url( stripslashes( $_SERVER['REQUEST_URI'] ) ) ), wp_nonce_url( 'ms-edit.php', 'deleteuser' ) . '&amp;action=deleteuser&amp;id=' . $user['ID'] ) );
?>
<td class="username column-username">
<?php echo $avatar; ?><strong><a href="<?php echo $edit; ?>" class="edit"><?php echo stripslashes($user['user_login']); ?></a><?php
if ( in_array( $user[ 'user_login' ], $super_admins ) )
echo ' - ' . __( 'Super admin' );
?></strong>
<?php echo $avatar; ?><strong><a href="<?php echo esc_url( admin_url( 'user-edit.php?user_id=' . $user['ID'] ) ); ?>" class="edit"><?php echo stripslashes( $user['user_login'] ); ?></a><?php
if ( in_array( $user['user_login'], $super_admins ) )
echo ' - ' . __( 'Super admin' );
?></strong>
<br/>
<div class="row-actions">
<span class="edit"><a href="<?php echo $edit; ?>">Edit</a></span>
<?php /*<span class="delete"><a href="<?php echo $delete; ?>" class="delete">Delete</a></span> */ ?>
<span class="edit"><a href="<?php echo esc_url( admin_url( 'user-edit.php?user_id=' . $user['ID'] ) ); ?>"><?php _e( 'Edit'); ?></a></span>
<?php if ( ! in_array( $user['user_login'], $super_admins ) ) { ?>
| <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>
<?php } ?>
</div>
</td>
<?php
@ -217,8 +254,13 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
<?php
break;
case 'registered': ?>
<td><?php echo mysql2date(__('Y-m-d \<\b\r \/\> g:i a'), $user['user_registered']); ?></td>
case 'registered':
if ( 'list' == $mode )
$date = 'Y/m/d';
else
$date = 'Y/m/d \<\b\r \/\> g:i:s a';
?>
<td><?php echo mysql2date( __( $date ), $user['user_registered'] ); ?></td>
<?php
break;
@ -229,19 +271,19 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
<?php
if ( is_array( $blogs ) ) {
foreach ( (array) $blogs as $key => $val ) {
$path = ($val->path == '/') ? '' : $val->path;
echo '<a href="ms-sites.php?action=editblog&amp;id=' . $val->userblog_id . '">' . str_replace( '.' . $current_site->domain, '', $val->domain . $path ) . '</a>';
$path = ( $val->path == '/' ) ? '' : $val->path;
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>';
echo ' <small class="row-actions">';
// Edit
echo '<a href="ms-sites.php?action=editblog&amp;id=' . $val->userblog_id . '">' . __('Edit') . '</a> | ';
echo '<a href="'. esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $val->userblog_id ) ) .'">' . __( 'Edit' ) . '</a> | ';
// View
echo '<a ';
if ( get_blog_status( $val->userblog_id, 'spam' ) == 1 )
echo 'style="background-color: #f66" ';
echo 'target="_new" href="http://'.$val->domain . $val->path.'">' . __('View') . '</a>';
echo 'style="background-color: #faa" ';
echo 'href="' . esc_url( get_home_url( $val->userblog_id ) ) . '">' . __( 'View' ) . '</a>';
echo '</small><br />';
}
}
@ -251,7 +293,7 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
break;
default: ?>
<td><?php do_action('manage_users_custom_column', $column_name, $user['ID']); ?></td>
<td><?php do_action( 'manage_users_custom_column', $column_name, $user['ID'] ); ?></td>
<?php
break;
}
@ -262,8 +304,8 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
}
} else {
?>
<tr style='background-color: <?php echo $bgcolor; ?>'>
<td colspan="<?php echo (int) count($posts_columns); ?>"><?php _e('No users found.') ?></td>
<tr>
<td colspan="<?php echo (int) count($users_columns); ?>"><?php _e( 'No users found.' ) ?></td>
</tr>
<?php
} // end if ($users)
@ -272,45 +314,52 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
</table>
<div class="tablenav">
<?php if ( $user_navigation ) echo "<div class='tablenav-pages'>$user_navigation</div>"; ?>
<?php
if ( $page_links )
echo "<div class='tablenav-pages'>$page_links_text</div>";
?>
<div class="alignleft">
<input type="submit" value="<?php esc_attr_e('Delete') ?>" name="alluser_delete" class="button-secondary delete" />
<input type="submit" value="<?php esc_attr_e('Mark as Spammers') ?>" name="alluser_spam" class="button-secondary" />
<input type="submit" value="<?php esc_attr_e('Not Spam') ?>" name="alluser_notspam" class="button-secondary" />
<input type="submit" value="<?php esc_attr_e('Add Network Admins') ?>" name="add_superadmin" class="button-secondary" />
<input type="submit" value="<?php esc_attr_e('Remove Network Admins') ?>" name="remove_superadmin" class="button-secondary" />
<?php wp_nonce_field( 'allusers' ); ?>
<br class="clear" />
<div class="alignleft actions">
<select name="action2">
<option value="-1" selected="selected"><?php _e( 'Bulk Actions' ); ?></option>
<option value="delete"><?php _e( 'Delete' ); ?></option>
<option value="spam"><?php _e( 'Mark as Spammers' ); ?></option>
<option value="notspam"><?php _e( 'Not Spam' ); ?></option>
<option value="superadmin"><?php _e( 'Add Super Admins' ); ?></option>
<option value="notsuperadmin"><?php _e( 'Remove Super Admins' ); ?></option>
</select>
<input type="submit" value="<?php esc_attr_e( 'Apply' ); ?>" name="doaction2" id="doaction2" class="button-secondary action" />
</div>
<br class="clear" />
</div>
</form>
</div>
</form>
</div>
<?php
if ( apply_filters('show_adduser_fields', true) ) :
if ( apply_filters( 'show_adduser_fields', true ) ) :
?>
<div class="wrap">
<h2><?php _e('Add user') ?></h2>
<form action="ms-edit.php?action=adduser" method="post">
<h2><?php _e( 'Add user' ) ?></h2>
<form action="ms-edit.php?action=adduser" method="post" id="form-add-user">
<table class="form-table">
<tr class="form-field form-required">
<th scope='row'><?php _e('Username') ?></th>
<td><input type="text" name="user[username]" /></td>
<th scope="row"><?php _e( 'Username' ) ?></th>
<td><input type="text" class="regular-text" name="user[username]" /></td>
</tr>
<tr class="form-field form-required">
<th scope='row'><?php _e('Email') ?></th>
<td><input type="text" name="user[email]" /></td>
<th scope="row"><?php _e( 'Email' ) ?></th>
<td><input type="text" class="regular-text" name="user[email]" /></td>
</tr>
<tr class="form-field">
<td colspan='2'><?php _e('Username and password will be mailed to the above email address.') ?></td>
<td colspan="2"><?php _e( 'Username and password will be mailed to the above email address.' ) ?></td>
</tr>
</table>
<p class="submit">
<?php wp_nonce_field('add-user') ?>
<input class="button" type="submit" name="Add user" value="<?php esc_attr_e('Add user') ?>" /></p>
<?php wp_nonce_field( 'add-user' ) ?>
<input class="button" type="submit" value="<?php esc_attr_e( 'Add user' ) ?>" /></p>
</form>
</div>
<?php endif; ?>
<?php include('admin-footer.php'); ?>
<?php include( './admin-footer.php' ); ?>

View File

@ -1,14 +1,13 @@
<?php
require_once('admin.php');
require_once( './admin.php' );
if ( !is_multisite() )
wp_die( __('Multisite support is not enabled.') );
wp_die( __( 'Multisite support is not enabled.' ) );
if ( ! current_user_can('read') )
wp_die(__('You do not have sufficient permissions to view this page.'));
wp_die( __( 'You do not have sufficient permissions to view this page.' ) );
$action = isset($_POST['action']) ? $_POST['action'] : 'splash';
$action = isset( $_POST['action'] ) ? $_POST['action'] : 'splash';
$blogs = get_blogs_of_user( $current_user->id );
@ -17,28 +16,36 @@ if ( empty( $blogs ) )
$updated = false;
if ( 'updateblogsettings' == $action && isset( $_POST['primary_blog'] ) ) {
check_admin_referer('update-my-sites');
// @todo Validate primary blog.
update_user_option( $current_user->id, 'primary_blog', (int) $_POST['primary_blog'], true );
$updated = true;
check_admin_referer( 'update-my-sites' );
$blog = get_blog_details( (int) $_POST['primary_blog'] );
if ( $blog && isset( $blog->domain ) ) {
update_user_option( $current_user->id, 'primary_blog', (int) $_POST['primary_blog'], true );
$updated = true;
} else {
wp_die( __( "The primary site, which you have choosen, doesn't exists." ) );
}
}
$title = __('My Sites');
$title = __( 'My Sites' );
$parent_file = 'index.php';
require_once('admin-header.php');
require_once( './admin-header.php' );
if ( $updated ) { ?>
<div id="message" class="updated fade"><p><strong><?php _e( 'Your site preferences have been updated.' ); ?></strong></p></div>
<div id="message" class="updated fade"><p><strong><?php _e( 'Settings saved.' ); ?></strong></p></div>
<?php } ?>
<div class="wrap">
<?php screen_icon(); ?>
<h2><?php echo esc_html($title); ?></h2>
<h2><?php esc_html_e( $title ); ?></h2>
<form id="myblogs" action="" method="post">
<?php
choose_primary_blog();
do_action( 'myblogs_allblogs_options' );
?><table class='widefat'> <?php
?>
<br clear="all" />
<table class="widefat fixed">
<?php
$settings_html = apply_filters( 'myblogs_options', '', 'global' );
if ( $settings_html != '' ) {
echo "<tr><td valign='top'><h3>" . __( 'Global Settings' ) . "</h3></td><td>";
@ -52,7 +59,7 @@ if ( $updated ) { ?>
$cols = 4;
elseif ( $num >= 10 )
$cols = 2;
$num_rows = ceil($num/$cols);
$num_rows = ceil( $num / $cols );
$split = 0;
for ( $i = 1; $i <= $num_rows; $i++ ) {
$rows[] = array_slice( $blogs, $split, $cols );
@ -61,28 +68,28 @@ if ( $updated ) { ?>
$c = '';
foreach ( $rows as $row ) {
$c = $c == "alternate" ? '' : 'alternate';
$c = $c == 'alternate' ? '' : 'alternate';
echo "<tr class='$c'>";
$t = '';
$i = 0;
foreach ( $row as $user_blog ) {
$t = $t == 'border-right: 1px solid #ccc;' ? '' : 'border-right: 1px solid #ccc;';
echo "<td valign='top' style='$t; width:50%'>";
$s = $i == 3 ? '' : 'border-right: 1px solid #ccc;';
echo "<td valign='top' style='$s'>";
echo "<h3>{$user_blog->blogname}</h3>";
echo "<p>" . apply_filters( "myblogs_blog_actions", "<a href='" . get_home_url($user_blog->userblog_id) . "'>" . __( 'Visit' ) . "</a> | <a href='" . get_admin_url($user_blog->userblog_id) . "'>" . __( 'Dashboard' ) . "</a>", $user_blog ) . "</p>";
echo "<p>" . apply_filters( 'myblogs_blog_actions', "<a href='" . esc_url( get_home_url( $user_blog->userblog_id ) ). "'>" . __( 'Visit' ) . "</a> | <a href='" . esc_url( get_admin_url( $user_blog->userblog_id ) ) . "'>" . __( 'Dashboard' ) . "</a>", $user_blog ) . "</p>";
echo apply_filters( 'myblogs_options', '', $user_blog );
echo "</td>";
$i++;
}
echo "</tr>";
}?>
</table>
<input type="hidden" name="action" value="updateblogsettings" />
<?php wp_nonce_field('update-my-sites'); ?>
<?php wp_nonce_field( 'update-my-sites' ); ?>
<p>
<input type="submit" class="button-primary" value="<?php _e('Update Options') ?>" name="submit" />
<input type="submit" class="button-primary" value="<?php _e( 'Save Changes' ) ?>" />
</p>
</form>
</div>
<?php
include('admin-footer.php');
?>
include( './admin-footer.php' );
?>