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 */ /* Site Admin Menu */
#adminmenu .menu-icon-site div.wp-menu-image { #adminmenu .menu-icon-site div.wp-menu-image {
background: transparent url('../images/site-admin.png') no-repeat scroll 0px -33px; 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; 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 { #dashboard_right_now p.musub {
margin-top: 12px; margin-top: 12px;
border-top: 1px solid #ececec; border-top: 1px solid #ececec;
@ -59,12 +17,32 @@ form#wpmu-search {
#dashboard_right_now td.b a.musublink { #dashboard_right_now td.b a.musublink {
font-size: 16px; 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 { tr.site-deleted {
background:#f55; background: #ff8573;
} }
tr.site-spammed { tr.site-spammed {
background: #faa; background: #faa;
} }
tr.site-archived { tr.site-archived {
background:#fee; background:#ffebe8;
}
tr.site-mature {
background: #fecac2;
} }

View File

@ -48,12 +48,14 @@ add_filter( 'wp_handle_upload_prefilter', 'check_upload_size' );
function wpmu_delete_blog( $blog_id, $drop = false ) { function wpmu_delete_blog( $blog_id, $drop = false ) {
global $wpdb; global $wpdb;
$switched = false; $switch = false;
if ( $blog_id != $wpdb->blogid ) { if ( $blog_id != $wpdb->blogid ) {
$switch = true; $switch = true;
switch_to_blog( $blog_id ); switch_to_blog( $blog_id );
} }
$blog_prefix = $wpdb->get_blog_prefix( $blog_id );
do_action( 'delete_blog', $blog_id, $drop ); do_action( 'delete_blog', $blog_id, $drop );
$users = get_users_of_blog( $blog_id ); $users = get_users_of_blog( $blog_id );
@ -68,7 +70,7 @@ function wpmu_delete_blog($blog_id, $drop = false) {
update_blog_status( $blog_id, 'deleted', 1 ); update_blog_status( $blog_id, 'deleted', 1 );
if ( $drop ) { 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 ); $drop_tables = apply_filters( 'wpmu_drop_tables', $drop_tables );
reset( $drop_tables ); reset( $drop_tables );
@ -89,7 +91,7 @@ function wpmu_delete_blog($blog_id, $drop = false) {
$dh = @opendir( $dir ); $dh = @opendir( $dir );
if ( $dh ) { if ( $dh ) {
while ( ( $file = @readdir( $dh ) ) !== false ) { while ( ( $file = @readdir( $dh ) ) !== false ) {
if ($file == '.' or $file == '..') if ( $file == '.' || $file == '..' )
continue; continue;
if ( @is_dir( $dir . DIRECTORY_SEPARATOR . $file ) ) if ( @is_dir( $dir . DIRECTORY_SEPARATOR . $file ) )
@ -107,8 +109,9 @@ function wpmu_delete_blog($blog_id, $drop = false) {
@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 ) ) { if ( is_array( $blogs ) ) {
foreach ( $blogs as $n => $blog ) { foreach ( $blogs as $n => $blog ) {
if ( $blog['blog_id'] == $blog_id ) if ( $blog['blog_id'] == $blog_id )
@ -169,14 +172,14 @@ function confirm_delete_users( $users ) {
if ( !is_array( $users ) ) if ( !is_array( $users ) )
return false; return false;
screen_icon('tools'); screen_icon();
?> ?>
<h2><?php esc_html_e( 'Users' ); ?></h2> <h2><?php esc_html_e( 'Users' ); ?></h2>
<p><?php _e( 'Transfer posts before deleting users:' ); ?></p> <p><?php _e( 'Transfer or delete posts and links before deleting users.' ); ?></p>
<form action="ms-edit.php?action=allusers" method="post"> <form action="ms-edit.php?action=dodelete" method="post">
<input type="hidden" name="alluser_transfer_delete" /> <input type="hidden" name="dodelete" />
<?php <?php
wp_nonce_field( 'allusers' ); wp_nonce_field( 'ms-users-delete' );
$site_admins = get_site_option( 'site_admins', array( 'admin' ) ); $site_admins = get_site_option( 'site_admins', array( 'admin' ) );
$admin_out = "<option value='$current_user->ID'>$current_user->user_login</option>"; $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 ); $blogs = get_blogs_of_user( $val, true );
if ( !empty( $blogs ) ) { 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 ) { foreach ( (array) $blogs as $key => $details ) {
$blog_users = get_users_of_blog( $details->userblog_id ); $blog_users = get_users_of_blog( $details->userblog_id );
if ( is_array( $blog_users ) && !empty( $blog_users ) ) { if ( is_array( $blog_users ) && !empty( $blog_users ) ) {
echo "<p><a href='http://{$details->domain}{$details->path}'>{$details->blogname}</a> "; $user_site = "<a href='" . esc_url( get_home_url( $details->userblog_id ) ) . "'>{$details->blogname}</a>";
echo "<select name='blog[$val][{$key}]'>"; $user_dropdown = "<select name='blog[$val][{$key}]'>";
$out = ''; $user_list = '';
foreach ( $blog_users as $user ) { foreach ( $blog_users as $user ) {
if ( $user->user_id != $val && !in_array( $user->user_id, $allusers ) ) 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 == '' ) if ( '' == $user_list )
$out = $admin_out; $user_list = $admin_out;
echo $out; $user_dropdown .= $user_list;
echo "</select>\n"; $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" /> <p class="submit"><input type="submit" class="button-secondary delete" value="<?php esc_attr_e( 'Confirm Deletion' ); ?>" /></p>
<input type="submit" class="button-secondary delete" value="<?php _e( 'Delete user and transfer posts' ); ?> " />
</form> </form>
<?php <?php
return true; return true;
@ -225,9 +239,9 @@ function wpmu_get_blog_allowedthemes( $blog_id = 0 ) {
if ( $blog_id != 0 ) if ( $blog_id != 0 )
switch_to_blog( $blog_id ); 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 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 ) ) { if ( is_array( $blog_allowed_themes ) ) {
foreach( (array) $themes as $key => $theme ) { foreach( (array) $themes as $key => $theme ) {
@ -237,8 +251,8 @@ function wpmu_get_blog_allowedthemes( $blog_id = 0 ) {
} }
} }
$blog_allowed_themes = $blog_allowedthemes; $blog_allowed_themes = $blog_allowedthemes;
add_option( "allowedthemes", $blog_allowed_themes ); add_option( 'allowedthemes', $blog_allowed_themes );
delete_option( "allowed_themes" ); delete_option( 'allowed_themes' );
} }
} }
@ -254,8 +268,8 @@ function update_option_new_admin_email($old_value, $value) {
$hash = md5( $value. time() .mt_rand() ); $hash = md5( $value. time() .mt_rand() );
$new_admin_email = array( $new_admin_email = array(
"hash" => $hash, 'hash' => $hash,
"newemail" => $value 'newemail' => $value
); );
update_option( 'adminhash', $new_admin_email ); update_option( 'adminhash', $new_admin_email );
@ -306,8 +320,8 @@ function send_confirmation_on_profile_email() {
$hash = md5( $_POST['email'] . time() . mt_rand() ); $hash = md5( $_POST['email'] . time() . mt_rand() );
$new_user_email = array( $new_user_email = array(
"hash" => $hash, 'hash' => $hash,
"newemail" => $_POST[ 'email' ] 'newemail' => $_POST['email']
); );
update_option( $current_user->ID . '_new_email', $new_user_email ); update_option( $current_user->ID . '_new_email', $new_user_email );
@ -348,7 +362,7 @@ function get_site_allowed_themes() {
$themes = get_themes(); $themes = get_themes();
$allowed_themes = get_site_option( 'allowedthemes' ); $allowed_themes = get_site_option( 'allowedthemes' );
if ( !is_array( $allowed_themes ) || empty( $allowed_themes ) ) { 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 ) ) { if ( !is_array( $allowed_themes ) ) {
$allowed_themes = array(); $allowed_themes = array();
} else { } else {
@ -453,16 +467,23 @@ function dashboard_quota() {
?> ?>
<p class="sub musub"><?php _e( 'Storage Space' ); ?></p> <p class="sub musub"><?php _e( 'Storage Space' ); ?></p>
<div class="table"> <div class="table table_content musubtable">
<table> <table>
<tr class="first"> <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="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> <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> </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> <td class="last t comments <?php echo $used_color;?>"><?php _e( 'Space Used' );?></td>
</tr> </tr>
</table> </table>
</div> </div>
<br class="clear" />
<?php <?php
} }
if ( current_user_can( 'edit_posts' ) ) if ( current_user_can( 'edit_posts' ) )
@ -470,7 +491,7 @@ if ( current_user_can('edit_posts') )
// Edit blog upload space setting on Edit Blog page // Edit blog upload space setting on Edit Blog page
function upload_space_setting( $id ) { function upload_space_setting( $id ) {
$quota = get_blog_option($id, "blog_upload_space"); $quota = get_blog_option( $id, 'blog_upload_space' );
if ( !$quota ) if ( !$quota )
$quota = ''; $quota = '';
@ -493,9 +514,9 @@ function update_user_status( $id, $pref, $value, $refresh = 1 ) {
if ( $pref == 'spam' ) { if ( $pref == 'spam' ) {
if ( $value == 1 ) if ( $value == 1 )
do_action( "make_spam_user", $id ); do_action( 'make_spam_user', $id );
else else
do_action( "make_ham_user", $id ); do_action( 'make_ham_user', $id );
} }
return $value; return $value;
@ -514,8 +535,18 @@ function refresh_user_details($id) {
function format_code_lang( $code = '' ) { function format_code_lang( $code = '' ) {
$code = strtolower( substr( $code, 0, 2 ) ); $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' $lang_codes = array(
, 'wo' => 'Wolof', 'xh' => 'Xhosa', 'yi' => 'Yiddish', 'yo' => 'Yoruba', 'za' => 'Zhuang; Chuang', 'zu' => 'Zulu'); '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 ); $lang_codes = apply_filters( 'lang_codes', $lang_codes, $code );
return strtr( $code, $lang_codes ); return strtr( $code, $lang_codes );
} }
@ -564,8 +595,7 @@ function redirect_user_to_blog() {
} }
} }
$blog = get_blog_details( get_user_meta( $current_user->ID, 'primary_blog', true ) ); $blog = get_blog_details( get_user_meta( $current_user->ID, 'primary_blog', true ) );
$protocol = ( is_ssl() ? 'https://' : 'http://' ); wp_redirect( get_admin_url( $blog->blog_id, '?c=' . $c ) );
wp_redirect( $protocol . $blog->domain . $blog->path . 'wp-admin/?c=' . $c ); // redirect and count to 5, "just in case"
exit; exit;
} }
wp_die( __( 'You do not have sufficient permissions to access this page.' ) ); wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
@ -590,21 +620,20 @@ function mu_dropdown_languages( $lang_files = array(), $current = '' ) {
if ( $code_lang == 'en_US' ) { // American English if ( $code_lang == 'en_US' ) { // American English
$flag = true; $flag = true;
$ae = __( 'American English' ); $ae = __( 'American English' );
$output[$ae] = '<option value="'.$code_lang.'"'.(($current == $code_lang) ? ' selected="selected"' : '').'> '.$ae.'</option>'; $output[$ae] = '<option value="' . esc_attr( $code_lang ) . '"' . selected( $current, $code_lang ) . '> ' . $ae . '</option>';
} elseif ( $code_lang == 'en_GB' ) { // British English } elseif ( $code_lang == 'en_GB' ) { // British English
$flag = true; $flag = true;
$be = __( 'British English' ); $be = __( 'British English' );
$output[$be] = '<option value="'.$code_lang.'"'.(($current == $code_lang) ? ' selected="selected"' : '').'> '.$be.'</option>'; $output[$be] = '<option value="' . esc_attr( $code_lang ) . '"' . selected( $current, $code_lang ) . '> ' . $be . '</option>';
} else { } else {
$translated = format_code_lang( $code_lang ); $translated = format_code_lang( $code_lang );
$output[$translated] = '<option value="'.$code_lang.'"'.(($current == $code_lang) ? ' selected="selected"' : '').'> '.$translated.'</option>'; $output[$translated] = '<option value="' . esc_attr( $code_lang ) . '"' . selected( $current, $code_lang ) . '> ' . esc_html ( $translated ) . '</option>';
} }
} }
if ( $flag === false ) { // WordPress english if ( $flag === false ) // WordPress english
$output[] = '<option value=""'.((empty($current)) ? ' selected="selected"' : '').'>'.__('English')."</option>"; $output[] = '<option value=""' . selected( $current, '' ) . '>' . __( 'English' ) . "</option>";
}
// Order by name // Order by name
uksort( $output, 'strnatcasecmp' ); uksort( $output, 'strnatcasecmp' );
@ -666,7 +695,7 @@ function site_admin_notice() {
if ( !is_super_admin() ) if ( !is_super_admin() )
return false; return false;
if ( get_site_option( 'wpmu_upgrade_site' ) != $wp_db_version ) 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' ); add_action( 'admin_notices', 'site_admin_notice' );
@ -711,7 +740,7 @@ function choose_primary_blog() {
<?php foreach( (array) $all_blogs as $blog ) { <?php foreach( (array) $all_blogs as $blog ) {
if ( $primary_blog == $blog->userblog_id ) if ( $primary_blog == $blog->userblog_id )
$found = true; $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> </select>
<?php <?php
@ -739,7 +768,7 @@ function show_post_thumbnail_warning() {
return; return;
$mu_media_buttons = get_site_option( 'mu_media_buttons', array() ); $mu_media_buttons = get_site_option( 'mu_media_buttons', array() );
if ( empty($mu_media_buttons['image']) && current_theme_supports( 'post-thumbnails' ) ) { 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>"; 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' ); add_action( 'admin_notices', 'show_post_thumbnail_warning' );
@ -760,7 +789,7 @@ add_action( 'admin_notices', 'ms_deprecated_blogs_file' );
* @return none * @return none
*/ */
function _admin_notice_multisite_activate_plugins_page() { 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>"; echo "<div class='error'><p>$message</p></div>";
} }

View File

@ -1,67 +1,74 @@
<?php <?php
require_once('admin.php'); require_once( './admin.php' );
if ( !is_multisite() ) if ( !is_multisite() )
wp_die( __( 'Multisite support is not enabled.' ) ); wp_die( __( 'Multisite support is not enabled.' ) );
// @todo Create a delete blog cap. // @todo Create a delete blog cap.
if ( ! current_user_can( 'manage_options' ) ) if ( ! current_user_can( 'manage_options' ) )
wp_die(__('You do not have sufficient permissions to delete this blog.')); 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'; $parent_file = 'tools.php';
require_once('admin-header.php'); require_once( './admin-header.php' );
echo '<div class="wrap">'; echo '<div class="wrap">';
screen_icon(); 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' ) { if ( isset( $_POST['action'] ) && $_POST['action'] == 'deleteblog' && isset( $_POST['confirmdelete'] ) && $_POST['confirmdelete'] == '1' ) {
$hash = wp_generate_password( 20, false ); $hash = wp_generate_password( 20, false );
update_option( "delete_blog_hash", $hash ); 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
form on that page.
If you really want to delete your blog, click the link below. You will not
be asked to confirm again so only click this link if you are absolutely certain:
URL_DELETE
If you delete your blog, please consider opening a new blog here $url_delete = esc_url( admin_url( 'ms-delete-site.php?h=' . $hash ) );
some time in the future! (But remember your current blog and username
$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 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###
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.) are gone forever.)
Thanks for using the site, Thanks for using the site,
Webmaster Webmaster
SITE_NAME ###SITE_NAME###" ) );
");
$msg = str_replace( "URL_DELETE", $url_delete, $msg ); $content = str_replace( '###URL_DELETE###', $url_delete, $content );
$msg = str_replace( "SITE_NAME", $current_site->site_name, $msg ); $content = str_replace( '###SITE_NAME###', $current_site->site_name, $content );
wp_mail( get_option( "admin_email" ), "[ " . get_option( "blogname" ) . " ] ".__("Delete My Blog"), $msg );
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>
<?php <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>
} elseif ( isset( $_GET['h'] ) && $_GET['h'] != '' && get_option('delete_blog_hash') != false ) {
if ( get_option('delete_blog_hash') == $_GET['h'] ) { <?php } else {
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 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 blog cannot be restored.') ?></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' /> <form method="post" name="deletedirect">
<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> <input type="hidden" name="action" value="deleteblog" />
<p class="submit"><input type='submit' value='<?php esc_attr_e('Delete My Blog Permanently') ?>' /></p> <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> </form>
<?php <?php
} }
echo '</div>'; echo '</div>';
include('admin-footer.php'); include( './admin-footer.php' );
?> ?>

View File

@ -1,5 +1,5 @@
<?php <?php
require_once('admin.php'); require_once( './admin.php' );
if ( !is_multisite() ) if ( !is_multisite() )
wp_die( __( 'Multisite support is not enabled.' ) ); wp_die( __( 'Multisite support is not enabled.' ) );
@ -11,23 +11,20 @@ if ( isset($_GET[ 'id' ]) )
elseif ( isset( $_POST['id'] ) ) elseif ( isset( $_POST['id'] ) )
$id = intval( $_POST['id'] ); $id = intval( $_POST['id'] );
if ( isset( $_POST['ref'] ) == false && !empty($_SERVER['HTTP_REFERER']) )
$_POST['ref'] = $_SERVER['HTTP_REFERER'];
switch ( $_GET['action'] ) { switch ( $_GET['action'] ) {
case "siteoptions": case 'siteoptions':
check_admin_referer( 'siteoptions' ); check_admin_referer( 'siteoptions' );
if ( ! current_user_can( 'manage_network_options' ) ) 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 ) ) 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() ) ) ) if ( isset($_POST['WPLANG']) && ( '' === $_POST['WPLANG'] || in_array( $_POST['WPLANG'], get_available_languages() ) ) )
update_site_option( "WPLANG", $_POST['WPLANG'] ); update_site_option( 'WPLANG', $_POST['WPLANG'] );
if ( is_email( $_POST['admin_email'] ) ) 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'] ); $illegal_names = split( ' ', $_POST['illegal_names'] );
foreach ( (array) $illegal_names as $name ) { foreach ( (array) $illegal_names as $name ) {
@ -35,7 +32,7 @@ switch ( $_GET['action'] ) {
if ( $name != '' ) if ( $name != '' )
$names[] = trim( $name ); $names[] = trim( $name );
} }
update_site_option( "illegal_names", $names ); update_site_option( 'illegal_names', $names );
if ( $_POST['limited_email_domains'] != '' ) { 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'] );
@ -46,9 +43,9 @@ switch ( $_GET['action'] ) {
if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) ) if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) )
$limited_email[] = trim( $domain ); $limited_email[] = trim( $domain );
} }
update_site_option( "limited_email_domains", $limited_email ); update_site_option( 'limited_email_domains', $limited_email );
} else { } else {
update_site_option( "limited_email_domains", '' ); update_site_option( 'limited_email_domains', '' );
} }
if ( $_POST['banned_email_domains'] != '' ) { if ( $_POST['banned_email_domains'] != '' ) {
@ -59,9 +56,9 @@ switch ( $_GET['action'] ) {
if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) ) if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) )
$banned[] = trim( $domain ); $banned[] = trim( $domain );
} }
update_site_option( "banned_email_domains", $banned ); update_site_option( 'banned_email_domains', $banned );
} else { } else {
update_site_option( "banned_email_domains", '' ); update_site_option( 'banned_email_domains', '' );
} }
update_site_option( 'default_user_role', $_POST['default_user_role'] ); update_site_option( 'default_user_role', $_POST['default_user_role'] );
if ( trim( $_POST['dashboard_blog_orig'] ) == '' ) if ( trim( $_POST['dashboard_blog_orig'] ) == '' )
@ -83,7 +80,7 @@ switch ( $_GET['action'] ) {
$path = trailingslashit( $current_site->path . $dashboard_blog ); $path = trailingslashit( $current_site->path . $dashboard_blog );
} }
$wpdb->hide_errors(); $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(); $wpdb->show_errors();
} else { } else {
$dashboard_blog_id = $blog_details->blog_id; $dashboard_blog_id = $blog_details->blog_id;
@ -106,7 +103,7 @@ switch ( $_GET['action'] ) {
} }
} }
} }
update_site_option( "dashboard_blog", $dashboard_blog_id ); update_site_option( 'dashboard_blog', $dashboard_blog_id );
// global terms // 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' ); require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
@ -129,17 +126,17 @@ switch ( $_GET['action'] ) {
// Update more options here // Update more options here
do_action( 'update_wpmu_options' ); 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(); exit();
break; break;
case "addblog": case 'addblog':
check_admin_referer( 'add-blog' ); check_admin_referer( 'add-blog' );
if ( ! current_user_can( 'manage_sites' ) ) 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 ) if ( is_array( $_POST['blog'] ) == false )
wp_die( "Can't create an empty site." ); wp_die( __( "Can't create an empty site." ) );
$blog = $_POST['blog']; $blog = $_POST['blog'];
$domain = ''; $domain = '';
if ( ! preg_match( '/(--)/', $blog['domain'] ) && preg_match( '|^([a-zA-Z0-9-])+$|', $blog['domain'] ) ) if ( ! preg_match( '/(--)/', $blog['domain'] ) && preg_match( '|^([a-zA-Z0-9-])+$|', $blog['domain'] ) )
@ -152,10 +149,10 @@ switch ( $_GET['action'] ) {
if ( empty( $email ) ) if ( empty( $email ) )
wp_die( __( 'Missing email address.' ) ); wp_die( __( 'Missing email address.' ) );
if ( !is_email( $email ) ) if ( !is_email( $email ) )
wp_die( __( 'Invalid email address' ) ); wp_die( __( 'Invalid email address.' ) );
if ( is_subdomain_install() ) { if ( is_subdomain_install() ) {
$newdomain = $domain.".".$current_site->domain; $newdomain = $domain . '.' . $current_site->domain;
$path = $base; $path = $base;
} else { } else {
$newdomain = $current_site->domain; $newdomain = $current_site->domain;
@ -168,13 +165,13 @@ switch ( $_GET['action'] ) {
$password = wp_generate_password(); $password = wp_generate_password();
$user_id = wpmu_create_user( $domain, $password, $email ); $user_id = wpmu_create_user( $domain, $password, $email );
if ( false == $user_id ) if ( false == $user_id )
wp_die( __('There was an error creating the user') ); wp_die( __( 'There was an error creating the user.' ) );
else else
wp_new_user_notification( $user_id, $password ); wp_new_user_notification( $user_id, $password );
} }
$wpdb->hide_errors(); $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(); $wpdb->show_errors();
if ( !is_wp_error( $id ) ) { if ( !is_wp_error( $id ) ) {
$dashboard_blog = get_dashboard_blog(); $dashboard_blog = get_dashboard_blog();
@ -182,29 +179,35 @@ switch ( $_GET['action'] ) {
update_user_option( $user_id, 'primary_blog', $id, true ); 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 ) ); $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' ) . '>' ); 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 ) ); 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'] ) ); wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'add-blog' ), wp_get_referer() ) );
exit(); exit();
} else { } else {
wp_die( $id->get_error_message() ); wp_die( $id->get_error_message() );
} }
break; break;
case "updateblog": case 'updateblog':
check_admin_referer( 'editblog' ); check_admin_referer( 'editblog' );
if ( ! current_user_can( 'manage_sites' ) ) 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 ) ) if ( empty( $_POST ) )
wp_die( __('You probably need to go back to the <a href="ms-sites.php">sites page</a>') ); wp_die( sprintf( __( 'You probably need to go back to the <a href="%s">sites page</a>', esc_url( admin_url( 'ms-sites.php' ) ) ) ) );
// themes
if ( isset($_POST[ 'theme' ]) && is_array( $_POST[ 'theme' ] ) )
$_POST[ 'option' ][ 'allowedthemes' ] = $_POST[ 'theme' ];
else
$_POST[ 'option' ][ 'allowedthemes' ] = '';
switch_to_blog( $id ); switch_to_blog( $id );
// 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'] ) ) { if ( is_array( $_POST['option'] ) ) {
$c = 1; $c = 1;
$count = count( $_POST['option'] ); $count = count( $_POST['option'] );
@ -219,6 +222,7 @@ switch ( $_GET['action'] ) {
} }
} }
// home and siteurl
if ( isset( $_POST['update_home_url'] ) && $_POST['update_home_url'] == 'update' ) { 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 ) if ( get_option( 'siteurl' ) != $blog_address )
@ -231,9 +235,6 @@ switch ( $_GET['action'] ) {
// rewrite rules can't be flushed during switch to blog // rewrite rules can't be flushed during switch to blog
delete_option( 'rewrite_rules' ); delete_option( 'rewrite_rules' );
// update blogs count
delete_site_transient( "blog_count" );
// update blogs table // update blogs table
$blog_data = stripslashes_deep( $_POST['blog'] ); $blog_data = stripslashes_deep( $_POST['blog'] );
update_blog_details( $id, $blog_data ); update_blog_details( $id, $blog_data );
@ -244,6 +245,7 @@ switch ( $_GET['action'] ) {
// user roles // user roles
if ( isset( $_POST['role'] ) && is_array( $_POST['role'] ) == true ) { if ( isset( $_POST['role'] ) && is_array( $_POST['role'] ) == true ) {
$newroles = $_POST['role']; $newroles = $_POST['role'];
reset( $newroles ); reset( $newroles );
foreach ( (array) $newroles as $userid => $role ) { foreach ( (array) $newroles as $userid => $role ) {
$user = new WP_User( $userid ); $user = new WP_User( $userid );
@ -283,22 +285,22 @@ switch ( $_GET['action'] ) {
$_POST['role'] = $newroles; $_POST['role'] = $newroles;
} }
// add user? // add user
if ( isset( $_POST[ 'user_password' ] ) && !empty( $_POST[ 'newuser' ] ) ) { if ( !empty( $_POST['newuser'] ) ) {
$newuser = $_POST['newuser']; $newuser = $_POST['newuser'];
$userid = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) ); $userid = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) );
if ( $userid ) { 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 ) 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' ); do_action( 'wpmu_update_blog_options' );
restore_current_blog(); 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; break;
case "deleteblog": case 'deleteblog':
check_admin_referer('deleteblog'); check_admin_referer('deleteblog');
if ( ! current_user_can( 'manage_sites' ) ) 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.' ) );
@ -306,19 +308,19 @@ switch ( $_GET['action'] ) {
if ( $id != '0' && $id != $current_site->blog_id ) if ( $id != '0' && $id != $current_site->blog_id )
wpmu_delete_blog( $id, true ); 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(); exit();
break; break;
case "allblogs": case 'allblogs':
if ( isset( $_POST['doaction']) || isset($_POST['doaction2'] ) ) { if ( isset( $_POST['doaction']) || isset($_POST['doaction2'] ) ) {
check_admin_referer('bulk-sites'); check_admin_referer( 'bulk-ms-sites' );
if ( ! current_user_can( 'manage_sites' ) ) 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 ( $_GET['action'] != -1 || $_POST['action2'] != -1 ) if ( $_GET['action'] != -1 || $_POST['action2'] != -1 )
$doaction = $doaction = ($_POST['action'] != -1) ? $_POST['action'] : $_POST['action2']; $doaction = $_POST['action'] != -1 ? $_POST['action'] : $_POST['action2'];
foreach ( (array) $_POST['allblogs'] as $key => $val ) { foreach ( (array) $_POST['allblogs'] as $key => $val ) {
@ -328,111 +330,119 @@ switch ( $_GET['action'] ) {
$blogfunction = 'all_delete'; $blogfunction = 'all_delete';
wpmu_delete_blog( $val, true ); wpmu_delete_blog( $val, true );
break; break;
case 'spam': case 'spam':
$blogfunction = 'all_spam'; $blogfunction = 'all_spam';
update_blog_status( $val, "spam", '1', 0 ); update_blog_status( $val, 'spam', '1', 0 );
set_time_limit( 60 ); set_time_limit( 60 );
break; break;
case 'notspam': case 'notspam':
$blogfunction = 'all_notspam'; $blogfunction = 'all_notspam';
update_blog_status( $val, "spam", '0', 0 ); update_blog_status( $val, 'spam', '0', 0 );
set_time_limit( 60 ); set_time_limit( 60 );
break; break;
} }
} else { } else {
wp_die( __('You are not allowed to change one of these sites.') ); wp_die( __( 'You are not allowed to change the current site.' ) );
exit(); }
}; }
};
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => $blogfunction), $_SERVER['HTTP_REFERER'] ) ); wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $blogfunction ), wp_get_referer() ) );
exit(); exit();
} else { } else {
wp_redirect( admin_url("ms-sites.php") ); wp_redirect( admin_url( 'ms-sites.php' ) );
} }
break; break;
case "archiveblog": case 'archiveblog':
check_admin_referer( 'archiveblog' ); check_admin_referer( 'archiveblog' );
if ( ! current_user_can( 'manage_sites' ) ) 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' ); update_blog_status( $id, 'archived', '1' );
do_action( "archive_blog", $id ); do_action( 'archive_blog', $id );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'archive'), $_POST['ref'] ) ); wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'archive' ), wp_get_referer() ) );
exit(); exit();
break; break;
case "unarchiveblog": case 'unarchiveblog':
check_admin_referer( 'unarchiveblog' ); check_admin_referer( 'unarchiveblog' );
if ( ! current_user_can( 'manage_sites' ) ) 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 ); do_action( 'unarchive_blog', $id );
update_blog_status( $id, "archived", '0' ); update_blog_status( $id, 'archived', '0' );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'unarchive'), $_POST['ref'] ) ); wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unarchive' ), wp_get_referer() ) );
exit(); exit();
break; break;
case "activateblog": case 'activateblog':
check_admin_referer( 'activateblog' ); check_admin_referer( 'activateblog' );
if ( ! current_user_can( 'manage_sites' ) ) 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' ); update_blog_status( $id, 'deleted', '0' );
do_action( "activate_blog", $id ); do_action( 'activate_blog', $id );
wp_redirect( add_query_arg( "updated", array('updated' => 'true', 'action' => 'activate'), $_POST['ref'] ) ); wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'activate' ), wp_get_referer() ) );
exit(); exit();
break; break;
case "deactivateblog": case 'deactivateblog':
check_admin_referer( 'deactivateblog' ); check_admin_referer( 'deactivateblog' );
if ( ! current_user_can( 'manage_sites' ) ) 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 ); do_action( 'deactivate_blog', $id );
update_blog_status( $id, "deleted", '1' ); update_blog_status( $id, 'deleted', '1' );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'deactivate'), $_POST['ref'] ) ); wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'deactivate' ), wp_get_referer() ) );
exit(); exit();
break; break;
case "unspamblog": case 'unspamblog':
check_admin_referer( 'unspamblog' ); check_admin_referer( 'unspamblog' );
if ( ! current_user_can( 'manage_sites' ) ) 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' ); update_blog_status( $id, 'spam', '0' );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'unspam'), $_POST['ref'] ) ); wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unspam' ), wp_get_referer() ) );
exit(); exit();
break; break;
case "spamblog": case 'spamblog':
check_admin_referer( 'spamblog' ); check_admin_referer( 'spamblog' );
if ( ! current_user_can( 'manage_sites' ) ) 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' ); update_blog_status( $id, 'spam', '1' );
wp_redirect( add_query_arg( array('updated' => 'true', 'action' => 'spam'), $_POST['ref'] ) ); wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'spam' ), wp_get_referer() ) );
exit(); exit();
break; 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' ); update_blog_status( $id, 'mature', '1' );
do_action( 'mature_blog', $id ); 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(); exit();
break; 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' ); update_blog_status( $id, 'mature', '0' );
do_action( 'unmature_blog', $id ); 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(); exit();
break; break;
// Themes // Themes
case "updatethemes": case 'updatethemes':
if ( ! current_user_can( 'manage_network_themes' ) ) 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.' ) );
@ -445,101 +455,109 @@ switch ( $_GET['action'] ) {
} }
update_site_option( 'allowedthemes', $allowed_themes ); 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(); exit();
break; break;
// Common // Common
case "confirm": case 'confirm':
$referrer = ( isset($_GET['ref']) ) ? stripslashes($_GET['ref']) : $_SERVER['HTTP_REFERER'];
$referrer = esc_url($referrer);
if ( !headers_sent() ) { if ( !headers_sent() ) {
nocache_headers(); nocache_headers();
header( 'Content-Type: text/html; charset=utf-8' ); 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"> <!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> <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" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php wp_admin_css( 'install', true ); ?> <?php wp_admin_css( 'install', true ); ?>
</head> </head>
<body id="error-page"> <body id="error-page">
<h1 id="logo"><img alt="WordPress" src="<?php echo esc_url( admin_url( 'images/wordpress-logo.png' ) ); ?>" /></h1> <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'> <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="action" value="<?php echo esc_attr( $_GET['action2'] ) ?>" />
<input type='hidden' name='id' value='<?php echo esc_attr( $id ); ?>' /> <input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
<input type='hidden' name='ref' value='<?php echo $referrer; ?>' /> <input type="hidden" name="_wp_http_referer" value="<?php echo esc_attr( wp_get_referer() ); ?>" />
<?php wp_nonce_field( $_GET['action2'] ) ?> <?php wp_nonce_field( $_GET['action2'], '_wpnonce', false ); ?>
<p><?php echo esc_html( stripslashes($_GET['msg']) ); ?></p> <p><?php esc_html_e( stripslashes( $_GET['msg'] ) ); ?></p>
<p class="submit"><input class="button" type='submit' value='<?php _e("Confirm"); ?>' /></p> <p class="submit"><input class="button" type="submit" value="<?php _e( 'Confirm' ); ?>" /></p>
</form> </form>
</body> </body>
</html> </html>
<?php <?php
break; break;
// Users (not used any more) // Users
case "deleteuser": 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');
if ( ! current_user_can( 'manage_network_users' ) ) 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']) ) { 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' ); require_once( 'admin-header.php' );
echo '<div class="wrap" style="position:relative;">'; echo '<div class="wrap">';
confirm_delete_users( $_POST['allusers'] ); confirm_delete_users( $_POST['allusers'] );
echo '</div>'; echo '</div>';
require_once( 'admin-footer.php' ); require_once( 'admin-footer.php' );
} elseif ( isset( $_POST[ 'alluser_transfer_delete' ] ) ) { exit();
if ( is_array( $_POST[ 'blog' ] ) && !empty( $_POST[ 'blog' ] ) ) { } else {
foreach ( $_POST[ 'blog' ] as $id => $users ) { wp_redirect( admin_url( 'ms-users.php' ) );
foreach ( $users as $blogid => $user_id ) {
remove_user_from_blog( $id, $blogid, $user_id );
} }
} break;
}
if ( is_array( $_POST[ 'user' ] ) && !empty( $_POST[ 'user' ] ) ) case 'allusers':
foreach( $_POST[ 'user' ] as $id ) if ( ! current_user_can( 'manage_network_users' ) )
wpmu_delete_user( $id ); wp_die( __( 'You do not have permission to access this page.' ) );
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'];
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 ) { foreach ( (array) $_POST['allusers'] as $key => $val ) {
if ( $val == '' || $val == '0' ) if ( $val != '' || $val != '0' ) {
continue; switch ( $doaction ) {
$user = new WP_User( $val ); case 'delete':
if ( in_array( $user->user_login, $super_admins ) ) $title = __( 'Users' );
continue; $parent_file = 'ms-admin.php';
if ( $mainblog_id ) require_once( 'admin-header.php' );
add_user_to_blog( $mainblog_id, $user->ID, 'administrator' ); echo '<div class="wrap">';
$super_admins[] = $user->user_login; confirm_delete_users( $_POST['allusers'] );
} echo '</div>';
update_site_option( 'site_admins' , $super_admins ); require_once( 'admin-footer.php' );
exit();
break;
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'add_superadmin' ), $_SERVER['HTTP_REFERER'] ) ); case 'superadmin':
} elseif ( isset( $_POST[ 'remove_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' ) ); $super_admins = get_site_option( 'site_admins', array( 'admin' ) );
$admin_email = get_site_option( 'admin_email' ); $admin_email = get_site_option( 'admin_email' );
foreach ( (array) $_POST['allusers'] as $key => $val ) {
if ( $val == '' || $val == '0' )
continue;
$user = new WP_User( $val ); $user = new WP_User( $val );
if ( $user->ID == $current_user->ID || $user->user_email == $admin_email ) if ( $user->ID != $current_user->ID || $user->user_email != $admin_email ) {
continue;
foreach ( $super_admins as $key => $username ) { foreach ( $super_admins as $key => $username ) {
if ( $username == $user->user_login ) { if ( $username == $user->user_login ) {
unset( $super_admins[$key] ); unset( $super_admins[$key] );
@ -547,45 +565,80 @@ switch ( $_GET['action'] ) {
} }
} }
} }
update_site_option( 'site_admins' , $super_admins );
wp_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'remove_superadmin' ), $_SERVER['HTTP_REFERER'] ) ); update_site_option( 'site_admins' , $super_admins );
} else { break;
foreach ( (array) $_POST['allusers'] as $key => $val ) {
if ( $val == '' || $val == '0' ) case 'spam':
continue;
$user = new WP_User( $val ); $user = new WP_User( $val );
if ( in_array( $user->user_login, get_site_option( 'site_admins', array( 'admin' ) ) ) ) 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 ) ); wp_die( sprintf( __( 'Warning! User cannot be modified. The user %s is a network admnistrator.' ), esc_html( $user->user_login ) ) );
if ( isset($_POST['alluser_spam']) ) {
$userfunction = 'all_spam'; $userfunction = 'all_spam';
$blogs = get_blogs_of_user( $val, true ); $blogs = get_blogs_of_user( $val, true );
foreach ( (array) $blogs as $key => $details ) { foreach ( (array) $blogs as $key => $details ) {
if ( $details->userblog_id == $current_site->blog_id ) { continue; } // main blog not a spam ! if ( $details->userblog_id != $current_site->blog_id ) // main blog not a spam !
update_blog_status( $details->userblog_id, "spam", '1' ); update_blog_status( $details->userblog_id, 'spam', '1' );
} }
update_user_status( $val, "spam", '1', 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'] ) );
}
exit();
break; break;
case "adduser": 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' ); check_admin_referer( 'add-user' );
if ( ! current_user_can( 'manage_network_users' ) ) 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 ) if ( is_array( $_POST['user'] ) == false )
wp_die( __( "Cannot create an empty user." ) ); wp_die( __( 'Cannot create an empty user.' ) );
$user = $_POST['user']; $user = $_POST['user'];
if ( empty($user['username']) && empty($user['email']) ) if ( empty($user['username']) && empty($user['email']) )
wp_die( __( 'Missing username and email.' ) ); wp_die( __( 'Missing username and email.' ) );
@ -607,12 +660,12 @@ switch ( $_GET['action'] ) {
else else
add_user_to_blog( get_site_option( 'dashboard_blog' ), $user_id, get_site_option( 'default_user_role', 'subscriber' ) ); 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(); exit();
break; break;
default: default:
wpmu_admin_do_redirect( "ms-admin.php" ); wp_redirect( admin_url( 'ms-admin.php' ) );
break; break;
} }
?> ?>

View File

@ -1,5 +1,5 @@
<?php <?php
require_once('admin.php'); require_once( './admin.php' );
if ( !is_multisite() ) if ( !is_multisite() )
wp_die( __( 'Multisite support is not enabled.' ) ); wp_die( __( 'Multisite support is not enabled.' ) );
@ -7,7 +7,7 @@ if ( !is_multisite() )
$title = __( 'Network Options' ); $title = __( 'Network Options' );
$parent_file = 'ms-admin.php'; $parent_file = 'ms-admin.php';
include('admin-header.php'); include( './admin-header.php' );
if ( ! current_user_can( 'manage_network_options' ) ) 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.' ) );
@ -23,7 +23,7 @@ if (isset($_GET['updated'])) {
<?php screen_icon(); ?> <?php screen_icon(); ?>
<h2><?php _e( 'Network Options' ) ?></h2> <h2><?php _e( 'Network Options' ) ?></h2>
<form method="post" action="ms-edit.php?action=siteoptions"> <form method="post" action="ms-edit.php?action=siteoptions">
<?php wp_nonce_field( "siteoptions" ); ?> <?php wp_nonce_field( 'siteoptions' ); ?>
<h3><?php _e( 'Operational Settings' ); ?></h3> <h3><?php _e( 'Operational Settings' ); ?></h3>
<table class="form-table"> <table class="form-table">
<tr valign="top"> <tr valign="top">
@ -47,8 +47,8 @@ if (isset($_GET['updated'])) {
<tr valign="top"> <tr valign="top">
<th scope="row"><?php _e( 'Global Terms' ) ?></th> <th scope="row"><?php _e( 'Global Terms' ) ?></th>
<td> <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="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="0"<?php checked( get_site_option( 'global_terms_enabled' ), 0 ) ?>/> <?php _e( 'Disabled' ); ?></label></td>
</tr> </tr>
</table> </table>
<h3><?php _e( 'Dashboard Settings' ); ?></h3> <h3><?php _e( 'Dashboard Settings' ); ?></h3>
@ -84,8 +84,9 @@ if (isset($_GET['updated'])) {
<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 /> <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 _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> </tr>
</table> </table>
<h3><?php _e( 'Registration Settings' ); ?></h3> <h3><?php _e( 'Registration Settings' ); ?></h3>
@ -95,12 +96,13 @@ if (isset($_GET['updated'])) {
<?php <?php
if ( !get_site_option( 'registration' ) ) if ( !get_site_option( 'registration' ) )
update_site_option( 'registration', 'none' ); update_site_option( 'registration', 'none' );
$reg = get_site_option( 'registration' );
?> ?>
<td> <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="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( get_site_option('registration'), 'user') ?> /> <?php _e('User accounts may be registered.'); ?></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( get_site_option('registration'), 'blog') ?> /> <?php _e('Logged in users may register new sites.'); ?></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( get_site_option('registration'), 'all') ?> /> <?php _e('Both sites and user accounts can be registered.'); ?></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> <p><?php _e( 'Disable or enable registration and who or what can be registered. (Default is disabled.)' ); ?></p>
<?php if ( is_subdomain_install() ) { <?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>';
@ -115,14 +117,14 @@ if (isset($_GET['updated'])) {
update_site_option( 'registrationnotification', 'yes' ); update_site_option( 'registrationnotification', 'yes' );
?> ?>
<td> <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> </td>
</tr> </tr>
<tr valign="top" id="addnewusers"> <tr valign="top" id="addnewusers">
<th scope="row"><?php _e( 'Add New Users' ) ?></th> <th scope="row"><?php _e( 'Add New Users' ) ?></th>
<td> <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> </td>
</tr> </tr>
@ -140,7 +142,7 @@ if (isset($_GET['updated'])) {
<td> <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 ); ?> $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 /> <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> </td>
@ -149,7 +151,7 @@ if (isset($_GET['updated'])) {
<tr valign="top"> <tr valign="top">
<th scope="row"><label for="banned_email_domains"><?php _e('Banned Email Domains') ?></label></th> <th scope="row"><label for="banned_email_domains"><?php _e('Banned Email Domains') ?></label></th>
<td> <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 /> <br />
<?php _e('If you want to ban domains from site registrations. Enter one domain per line.') ?> <?php _e('If you want to ban domains from site registrations. Enter one domain per line.') ?>
</td> </td>
@ -162,7 +164,7 @@ if (isset($_GET['updated'])) {
<tr valign="top"> <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> <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 /> <br />
<?php _e( 'The welcome email sent to new site owners.' ) ?> <?php _e( 'The welcome email sent to new site owners.' ) ?>
</td> </td>
@ -170,7 +172,7 @@ if (isset($_GET['updated'])) {
<tr valign="top"> <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> <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 /> <br />
<?php _e( 'The welcome email sent to new users.' ) ?> <?php _e( 'The welcome email sent to new users.' ) ?>
</td> </td>
@ -178,7 +180,7 @@ if (isset($_GET['updated'])) {
<tr valign="top"> <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> <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 /> <br />
<?php _e( 'The first post on a new site.' ) ?> <?php _e( 'The first post on a new site.' ) ?>
</td> </td>
@ -186,7 +188,7 @@ if (isset($_GET['updated'])) {
<tr valign="top"> <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> <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 /> <br />
<?php _e( 'The first page on a new site.' ) ?> <?php _e( 'The first page on a new site.' ) ?>
</td> </td>
@ -194,7 +196,7 @@ if (isset($_GET['updated'])) {
<tr valign="top"> <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> <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 /> <br />
<?php _e( 'The first comment on a new site.' ) ?> <?php _e( 'The first comment on a new site.' ) ?>
</td> </td>
@ -202,7 +204,7 @@ if (isset($_GET['updated'])) {
<tr valign="top"> <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> <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 /> <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> </td>
@ -210,7 +212,7 @@ if (isset($_GET['updated'])) {
<tr valign="top"> <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> <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 /> <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> </td>
@ -221,16 +223,16 @@ if (isset($_GET['updated'])) {
<tr valign="top"> <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() ); ?> <?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 /> <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_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 /> <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> <?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>
<tr valign="top"> <tr valign="top">
<th scope="row"><?php _e( 'Site upload space' ) ?></th> <th scope="row"><?php _e( 'Site upload space' ) ?></th>
<td> <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>
<tr valign="top"> <tr valign="top">

View File

@ -1,5 +1,5 @@
<?php <?php
require_once('admin.php'); require_once( './admin.php' );
if ( !is_multisite() ) if ( !is_multisite() )
wp_die( __( 'Multisite support is not enabled.' ) ); wp_die( __( 'Multisite support is not enabled.' ) );
@ -9,60 +9,59 @@ $parent_file = 'ms-admin.php';
wp_enqueue_script( 'admin-forms' ); wp_enqueue_script( 'admin-forms' );
require_once('admin-header.php'); require_once( './admin-header.php' );
if ( ! current_user_can( 'manage_sites' ) ) 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.' ) );
$id = isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0; $id = isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0;
$protocol = is_ssl() ? 'https://' : 'http://';
if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) { if ( isset( $_GET['updated'] ) && $_GET['updated'] == 'true' && ! empty( $_GET['action'] ) ) {
?> ?>
<div id="message" class="updated fade"><p> <div id="message" class="updated fade"><p>
<?php <?php
switch ( $_GET['action'] ) { switch ( $_GET['action'] ) {
case 'all_notspam': case 'all_notspam':
_e('Sites mark as not spam !'); _e( 'Sites mark as not spam.' );
break; break;
case 'all_spam': case 'all_spam':
_e('Sites mark as spam !'); _e( 'Sites mark as spam.' );
break; break;
case 'all_delete': case 'all_delete':
_e('Sites deleted !'); _e( 'Sites deleted.' );
break; break;
case 'delete': case 'delete':
_e('Site deleted !'); _e( 'Site deleted.' );
break; break;
case 'add-blog': case 'add-blog':
_e('Site added !'); _e( 'Site added.' );
break; break;
case 'archive': case 'archive':
_e('Site archived !'); _e( 'Site archived.' );
break; break;
case 'unarchive': case 'unarchive':
_e('Site unarchived !'); _e( 'Site unarchived.' );
break; break;
case 'activate': case 'activate':
_e('Site activated !'); _e( 'Site activated.' );
break; break;
case 'deactivate': case 'deactivate':
_e('Site deactivated !'); _e( 'Site deactivated.' );
break; break;
case 'unspam': case 'unspam':
_e('Site mark as not spam !'); _e( 'Site mark as not spam.' );
break; break;
case 'spam': case 'spam':
_e('Site mark as spam !'); _e( 'Site mark as spam.' );
break; break;
case 'umature': case 'unmature':
_e('Site mark as not mature !'); _e( 'Site mark as not mature.' );
break; break;
case 'mature': case 'mature':
_e('Site mark as mature !'); _e( 'Site mark as mature.' );
break; break;
default: default:
_e('Options saved !'); _e( 'Settings saved.' );
break; break;
} }
?> ?>
@ -73,8 +72,8 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
$action = isset( $_GET['action'] ) ? $_GET['action'] : 'list'; $action = isset( $_GET['action'] ) ? $_GET['action'] : 'list';
switch ( $action ) { switch ( $action ) {
// Edit blog // Edit site
case "editblog": case 'editblog':
$blog_prefix = $wpdb->get_blog_prefix( $id ); $blog_prefix = $wpdb->get_blog_prefix( $id );
$options = $wpdb->get_results( "SELECT * FROM {$blog_prefix}options WHERE option_name NOT LIKE '\_%' AND option_name NOT LIKE '%user_roles'" ); $options = $wpdb->get_results( "SELECT * FROM {$blog_prefix}options WHERE option_name NOT LIKE '\_%' AND option_name NOT LIKE '%user_roles'" );
$details = get_blog_details( $id ); $details = get_blog_details( $id );
@ -83,30 +82,32 @@ switch ( $action ) {
?> ?>
<div class="wrap"> <div class="wrap">
<?php screen_icon(); ?> <?php screen_icon(); ?>
<h2><?php _e('Edit Site'); ?> - <a href='<?php echo get_home_url($id); ?>'><?php echo get_home_url($id); ?></a></h2> <h2><?php _e( 'Edit Site' ); ?> - <a href="<?php echo esc_url( get_home_url( $id ) ); ?>"><?php echo esc_url( get_home_url( $id ) ); ?></a></h2>
<form method="post" action="ms-edit.php?action=updateblog"> <form method="post" action="ms-edit.php?action=updateblog">
<?php wp_nonce_field( 'editblog' ); ?> <?php wp_nonce_field( 'editblog' ); ?>
<input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" /> <input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
<div class='metabox-holder' style='width:49%;float:left;'> <div class="metabox-holder" style="width:49%;float:left;">
<div id="blogedit_bloginfo" class="postbox"> <div id="blogedit_bloginfo" class="postbox">
<h3 class='hndle'><span><?php _e('Site info (wp_blogs)'); ?></span></h3> <h3 class="hndle"><span><?php _e( 'Site info (wp_blogs)' ); ?></span></h3>
<div class="inside"> <div class="inside">
<table class="form-table"> <table class="form-table">
<tr class="form-field form-required"> <tr class="form-field form-required">
<th scope="row"><?php _e( 'Domain' ) ?></th> <th scope="row"><?php _e( 'Domain' ) ?></th>
<?php if ( $is_main_site ) { ?> <?php
<td>http://<?php echo esc_attr($details->domain) ?></td> $protocol = is_ssl() ? 'https://' : 'http://';
if ( $is_main_site ) { ?>
<td><code><?php echo $protocol; echo esc_attr( $details->domain ) ?></code></td>
<?php } else { ?> <?php } else { ?>
<td>http://<input name="blog[domain]" type="text" id="domain" value="<?php echo esc_attr($details->domain) ?>" size="33" /></td> <td><?php echo $protocol; ?><input name="blog[domain]" type="text" id="domain" value="<?php echo esc_attr( $details->domain ) ?>" size="33" /></td>
<?php } ?> <?php } ?>
</tr> </tr>
<tr class="form-field form-required"> <tr class="form-field form-required">
<th scope="row"><?php _e( 'Path' ) ?></th> <th scope="row"><?php _e( 'Path' ) ?></th>
<?php if ( $is_main_site ) { ?> <?php if ( $is_main_site ) { ?>
<td><?php echo esc_attr($details->path) ?></td> <td><code><?php echo esc_attr( $details->path ) ?></code></td>
<?php } else { ?> <?php } else { ?>
<td><input name="blog[path]" type="text" id="path" value="<?php echo esc_attr( $details->path ) ?>" size="40" style='margin-bottom:5px;' /> <td><input name="blog[path]" type="text" id="path" value="<?php echo esc_attr( $details->path ) ?>" size="40" style='margin-bottom:5px;' />
<br /><input type='checkbox' style='width:20px;' name='update_home_url' value='update' <?php if ( get_blog_option( $id, 'siteurl' ) == untrailingslashit( get_blogaddress_by_id($id) ) || get_blog_option( $id, 'home' ) == untrailingslashit( get_blogaddress_by_id($id) ) ) echo 'checked="checked"'; ?> /> <?php _e( "Update 'siteurl' and 'home' as well." ); ?></td> <br /><input type="checkbox" style="width:20px;" name="update_home_url" value="update" <?php if ( get_blog_option( $id, 'siteurl' ) == untrailingslashit( get_blogaddress_by_id ($id ) ) || get_blog_option( $id, 'home' ) == untrailingslashit( get_blogaddress_by_id( $id ) ) ) echo 'checked="checked"'; ?> /> <?php _e( 'Update <code>siteurl</code> and <code>home</code> as well.' ); ?></td>
<?php } ?> <?php } ?>
</tr> </tr>
<tr class="form-field"> <tr class="form-field">
@ -120,44 +121,45 @@ switch ( $action ) {
<tr class="form-field"> <tr class="form-field">
<th scope="row"><?php _e('Public') ?></th> <th scope="row"><?php _e('Public') ?></th>
<td> <td>
<input type='radio' style='width:20px;' name='blog[public]' value='1' <?php if ( $details->public == '1' ) echo 'checked="checked"'; ?> /> <?php _e('Yes') ?> <label><input type="radio" style="width:20px;" name="blog[public]" value="1" <?php checked( $details->public, 1 ); ?> /> <?php _e( 'Yes' ) ?></label>
<input type='radio' style='width:20px;' name='blog[public]' value='0' <?php if ( $details->public == '0' ) echo 'checked="checked"'; ?> /> <?php _e('No') ?> <label><input type="radio" style="width:20px;" name="blog[public]" value="0" <?php checked( $details->public, 0 ); ?> /> <?php _e( 'No' ) ?></label>
</td> </td>
</tr> </tr>
<tr class="form-field"> <tr class="form-field">
<th scope="row"><?php _e( 'Archived' ); ?></th> <th scope="row"><?php _e( 'Archived' ); ?></th>
<td> <td>
<input type='radio' style='width:20px;' name='blog[archived]' value='1' <?php if ( $details->archived == '1' ) echo 'checked="checked"'; ?> /> <?php _e('Yes') ?> <label><input type="radio" style="width:20px;" name="blog[archived]" value="1" <?php checked( $details->archived, 1 ); ?> /> <?php _e( 'Yes' ) ?></label>
<input type='radio' style='width:20px;' name='blog[archived]' value='0' <?php if ( $details->archived == '0' ) echo 'checked="checked"'; ?> /> <?php _e('No') ?> <label><input type="radio" style="width:20px;" name="blog[archived]" value="0" <?php checked( $details->archived, 0 ); ?> /> <?php _e( 'No' ) ?></label>
</td> </td>
</tr> </tr>
<tr class="form-field"> <tr class="form-field">
<th scope="row"><?php _e( 'Mature' ); ?></th> <th scope="row"><?php _e( 'Mature' ); ?></th>
<td> <td>
<input type='radio' style='width:20px;' name='blog[mature]' value='1' <?php if ( $details->mature == '1' ) echo 'checked="checked"'; ?> /> <?php _e('Yes') ?> <label><input type="radio" style="width:20px;" name="blog[mature]" value="1" <?php checked( $details->mature, 1 ); ?> /> <?php _e( 'Yes' ) ?></label>
<input type='radio' style='width:20px;' name='blog[mature]' value='0' <?php if ( $details->mature == '0' ) echo 'checked="checked"'; ?> /> <?php _e('No') ?> <label><input type="radio" style="width:20px;" name="blog[mature]" value="0" <?php checked( $details->mature, 0); ?> /> <?php _e( 'No' ) ?></label>
</td> </td>
</tr> </tr>
<tr class="form-field"> <tr class="form-field">
<th scope="row"><?php _e( 'Spam' ); ?></th> <th scope="row"><?php _e( 'Spam' ); ?></th>
<td> <td>
<input type='radio' style='width:20px;' name='blog[spam]' value='1' <?php if ( $details->spam == '1' ) echo 'checked="checked"'; ?> /> <?php _e('Yes') ?> <label><input type="radio" style="width:20px;" name="blog[spam]" value="1" <?php checked( $details->spam, 1 ); ?> /> <?php _e( 'Yes' ) ?></label>
<input type='radio' style='width:20px;' name='blog[spam]' value='0' <?php if ( $details->spam == '0' ) echo 'checked="checked"'; ?> /> <?php _e('No') ?> <label><input type="radio" style="width:20px;" name="blog[spam]" value="0" <?php checked( $details->spam, 0 ); ?> /> <?php _e( 'No' ) ?></label>
</td> </td>
</tr> </tr>
<tr class="form-field"> <tr class="form-field">
<th scope="row"><?php _e( 'Deleted' ); ?></th> <th scope="row"><?php _e( 'Deleted' ); ?></th>
<td> <td>
<input type='radio' style='width:20px;' name='blog[deleted]' value='1' <?php if ( $details->deleted == '1' ) echo 'checked="checked"'; ?> /> <?php _e('Yes') ?> <label><input type="radio" style="width:20px;" name="blog[deleted]" value="1" <?php checked( $details->deleted, 1 ); ?> /> <?php _e( 'Yes' ) ?></label>
<input type='radio' style='width:20px;' name='blog[deleted]' value='0' <?php if ( $details->deleted == '0' ) echo 'checked="checked"'; ?> /> <?php _e('No') ?> <label><input type="radio" style="width:20px;" name="blog[deleted]" value="0" <?php checked( $details->deleted, 0 ); ?> /> <?php _e( 'No' ) ?></label>
</td> </td>
</tr> </tr>
</table> </table>
<p class="submit" style="margin:-15px 0 -5px 230px;"><input type="submit" name="Submit" value="<?php esc_attr_e('Update Options') ?>" /></p> <p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Update Options' ) ?>" /></p>
</div></div> </div>
</div>
<div id="blogedit_blogoptions" class="postbox" > <div id="blogedit_blogoptions" class="postbox" >
<h3 class='hndle'><span><?php printf( __('Site options (%soptions)'), $blog_prefix ); ?></span></h3> <h3 class="hndle"><span><?php printf( __( 'Site options (%soptions)' ), $blog_prefix ); ?></span></h3>
<div class="inside"> <div class="inside">
<table class="form-table"> <table class="form-table">
<?php <?php
@ -166,29 +168,31 @@ switch ( $action ) {
if ( $option->option_name == 'default_role' ) if ( $option->option_name == 'default_role' )
$editblog_default_role = $option->option_value; $editblog_default_role = $option->option_value;
$disabled = false; $disabled = false;
$class = 'all-options';
if ( is_serialized( $option->option_value ) ) { if ( is_serialized( $option->option_value ) ) {
if ( is_serialized_string( $option->option_value ) ) { if ( is_serialized_string( $option->option_value ) ) {
$option->option_value = esc_html( maybe_unserialize( $option->option_value ), 'single' ); $option->option_value = esc_html( maybe_unserialize( $option->option_value ), 'single' );
} else { } else {
$option->option_value = "SERIALIZED DATA"; $option->option_value = 'SERIALIZED DATA';
$disabled = true; $disabled = true;
$class = 'all-options disabled';
} }
} }
if ( stristr($option->option_value, "\r") || stristr($option->option_value, "\n") || stristr($option->option_value, "\r\n") ) { if ( strpos( $option->option_value, "\n" ) !== false ) {
?> ?>
<tr class="form-field"> <tr class="form-field">
<th scope="row"><?php echo ucwords( str_replace( "_", " ", $option->option_name ) ) ?></th> <th scope="row"><?php echo ucwords( str_replace( "_", " ", $option->option_name ) ) ?></th>
<td><textarea rows="5" cols="40" name="option[<?php echo esc_attr($option->option_name) ?>]" id="<?php echo esc_attr($option->option_name) ?>"<?php disabled( $disabled ) ?>><?php echo esc_html( $option->option_value ) ?></textarea></td> <td><textarea class="<?php echo $class; ?>" rows="5" cols="40" name="option[<?php echo esc_attr( $option->option_name ) ?>]" id="<?php echo esc_attr( $option->option_name ) ?>"<?php disabled( $disabled ) ?>><?php wp_htmledit_pre( $option->option_value ) ?></textarea></td>
</tr> </tr>
<?php <?php
} else { } else {
?> ?>
<tr class="form-field"> <tr class="form-field">
<th scope="row"><?php echo ucwords( str_replace( "_", " ", $option->option_name ) ) ?></th> <th scope="row"><?php esc_html_e( ucwords( str_replace( "_", " ", $option->option_name ) ) ); ?></th>
<?php if ( $is_main_site && in_array( $option->option_name, array( 'siteurl', 'home' ) ) ) { ?> <?php if ( $is_main_site && in_array( $option->option_name, array( 'siteurl', 'home' ) ) ) { ?>
<td><?php echo esc_attr( $option->option_value ) ?></td> <td><code><?php esc_html_e( $option->option_value ) ?></code></td>
<?php } else { ?> <?php } else { ?>
<td><input name="option[<?php echo esc_attr($option->option_name) ?>]" type="text" id="<?php echo esc_attr($option->option_name) ?>" value="<?php echo esc_attr( $option->option_value ) ?>" size="40" <?php disabled( $disabled ) ?> /></td> <td><input class="<?php echo $class; ?>" name="option[<?php echo esc_attr( $option->option_name ) ?>]" type="text" id="<?php echo esc_attr( $option->option_name ) ?>" value="<?php echo esc_attr( $option->option_value ) ?>" size="40" <?php disabled( $disabled ) ?> /></td>
<?php } ?> <?php } ?>
</tr> </tr>
<?php <?php
@ -196,26 +200,29 @@ switch ( $action ) {
} // End foreach } // End foreach
?> ?>
</table> </table>
<p class="submit" style="margin:-15px 0 -5px 230px;"><input type="submit" name="Submit" value="<?php esc_attr_e('Update Options') ?>" /></p> <p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Update Options' ) ?>" /></p>
</div></div> </div>
</div>
</div> </div>
<div class='metabox-holder' style='width:49%;float:right;'> <div class="metabox-holder" style="width:49%;float:right;">
<?php <?php
// Blog Themes // Site Themes
$themes = get_themes(); $themes = get_themes();
$blog_allowed_themes = wpmu_get_blog_allowedthemes( $id ); $blog_allowed_themes = wpmu_get_blog_allowedthemes( $id );
$allowed_themes = get_site_option( "allowedthemes" ); $allowed_themes = get_site_option( 'allowedthemes' );
if ( ! $allowed_themes ) if ( ! $allowed_themes )
$allowed_themes = array_keys( $themes ); $allowed_themes = array_keys( $themes );
$out = ''; $out = '';
foreach ( $themes as $key => $theme ) { foreach ( $themes as $key => $theme ) {
$theme_key = esc_html( $theme['Stylesheet'] ); $theme_key = esc_html( $theme['Stylesheet'] );
if ( ! isset( $allowed_themes[$theme_key] ) ) { if ( ! isset( $allowed_themes[$theme_key] ) ) {
$checked = ( isset($blog_allowed_themes[ $theme_key ]) ) ? 'checked="checked"' : ''; $checked = isset( $blog_allowed_themes[ $theme_key ] ) ? 'checked="checked"' : '';
$out .= '<tr class="form-field form-required"> $out .= '<tr class="form-field form-required">
<th title="' . esc_attr( $theme["Description"] ).'" scope="row">' . esc_html( $key ) . '</th> <th title="' . esc_attr( $theme["Description"] ).'" scope="row">' . esc_html( $key ) . '</th>
<td><input name="theme[' . esc_attr($theme_key) . ']" type="checkbox" style="width:20px;" value="on" '.$checked.'/>' . __( 'Active' ) . '</td> <td><label><input name="theme[' . esc_attr( $theme_key ) . ']" type="checkbox" style="width:20px;" value="on" '.$checked.'/> ' . __( 'Active' ) . '</label></td>
</tr>'; </tr>';
} }
} }
@ -223,18 +230,17 @@ switch ( $action ) {
if ( $out != '' ) { if ( $out != '' ) {
?> ?>
<div id="blogedit_blogthemes" class="postbox"> <div id="blogedit_blogthemes" class="postbox">
<h3 class='hndle'><span><?php esc_html_e('Site Themes'); ?></span></h3> <h3 class="hndle"><span><?php esc_html_e( 'Site Themes' ); ?></span></h3>
<div class="inside"> <div class="inside">
<p class="description"><?php _e( 'Activate the themename of an existing theme and hit "Update Options" to allow the theme for this site.' ) ?></p>
<table class="form-table"> <table class="form-table">
<tr><th style="font-weight:bold;"><?php esc_html_e('Theme'); ?></th></tr>
<?php echo $out; ?> <?php echo $out; ?>
</table> </table>
<p class="submit" style="margin:-15px 0 -5px 230px;"><input type="submit" name="Submit" value="<?php esc_attr_e('Update Options') ?>" /></p> <p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Update Options' ) ?>" /></p>
</div></div> </div></div>
<?php } ?> <?php }
<?php // Site users
// Blog users
$blogusers = get_users_of_blog( $id ); $blogusers = get_users_of_blog( $id );
if ( is_array( $blogusers ) ) { if ( is_array( $blogusers ) ) {
echo '<div id="blogedit_blogusers" class="postbox"><h3 class="hndle"><span>' . __( 'Site Users' ) . '</span></h3><div class="inside">'; echo '<div id="blogedit_blogusers" class="postbox"><h3 class="hndle"><span>' . __( 'Site Users' ) . '</span></h3><div class="inside">';
@ -256,14 +262,13 @@ switch ( $action ) {
<select name="role[<?php echo $val->user_id ?>]" id="new_role"><?php <select name="role[<?php echo $val->user_id ?>]" id="new_role"><?php
foreach ( $editblog_roles as $role => $role_assoc ){ foreach ( $editblog_roles as $role => $role_assoc ){
$name = translate_user_role( $role_assoc['name'] ); $name = translate_user_role( $role_assoc['name'] );
$selected = ( $role == $existing_role ) ? 'selected="selected"' : ''; echo '<option ' . selected( $role, $existing_role ) . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>';
echo "<option {$selected} value=\"" . esc_attr($role) . "\">{$name}</option>";
} }
?> ?>
</select> </select>
</td> </td>
<td> <td>
<input type='text' name='user_password[<?php echo esc_attr($val->user_id) ?>]' /> <input type="text" name="user_password[<?php echo esc_attr( $val->user_id ) ?>]" />
</td> </td>
<?php <?php
echo '<td><input title="' . __( 'Click to remove user' ) . '" type="checkbox" name="blogusers[' . esc_attr( $val->user_id ) . ']" /></td>'; echo '<td><input title="' . __( 'Click to remove user' ) . '" type="checkbox" name="blogusers[' . esc_attr( $val->user_id ) . ']" /></td>';
@ -273,15 +278,15 @@ switch ( $action ) {
echo '</tr>'; echo '</tr>';
} }
echo "</table>"; echo "</table>";
echo '<p class="submit" style="margin:-15px 0 -5px 230px;"><input type="submit" name="Submit" value="' . esc_attr__('Update Options') . '" /></p>'; echo '<p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="' . esc_attr__( 'Update Options' ) . '" /></p>';
echo "</div></div>"; echo "</div></div>";
} }
?> ?>
<div id="blogedit_blogadduser" class="postbox"> <div id="blogedit_blogadduser" class="postbox">
<h3 class='hndle'><span><?php _e('Add a new user'); ?></span></h3> <h3 class="hndle"><span><?php _e( 'Add a new user' ); ?></span></h3>
<div class="inside"> <div class="inside">
<p style="margin:10px 0 0px;padding:0px 10px 10px;border-bottom:1px solid #DFDFDF;"><?php _e('Enter the username of an existing user and hit <em>Update Options</em> to add the user.') ?></p> <p class="description"><?php _e( 'Enter the username of an existing user and hit "Update Options" to add the user.' ) ?></p>
<table class="form-table"> <table class="form-table">
<tr> <tr>
<th scope="row"><?php _e( 'User&nbsp;Login:' ) ?></th> <th scope="row"><?php _e( 'User&nbsp;Login:' ) ?></th>
@ -296,25 +301,26 @@ switch ( $action ) {
foreach ( $editblog_roles as $role => $role_assoc ){ foreach ( $editblog_roles as $role => $role_assoc ){
$name = translate_user_role( $role_assoc['name'] ); $name = translate_user_role( $role_assoc['name'] );
$selected = ( $role == $editblog_default_role ) ? 'selected="selected"' : ''; $selected = ( $role == $editblog_default_role ) ? 'selected="selected"' : '';
echo "<option {$selected} value=\"" . esc_attr($role) . "\">{$name}</option>"; echo '<option ' . $selected . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>';
} }
?> ?>
</select> </select>
</td> </td>
</tr> </tr>
</table> </table>
<p class="submit" style="margin:-15px 0 -5px 230px;"><input type="submit" name="Submit" value="<?php esc_attr_e('Update Options') ?>" /></p> <p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Update Options' ) ?>" /></p>
</div></div> </div>
</div>
<div id="blogedit_miscoptions" class="postbox"> <div id="blogedit_miscoptions" class="postbox">
<h3 class='hndle'><span><?php _e('Misc Site Actions') ?></span></h3> <h3 class="hndle"><span><?php _e( 'Misc Site Actions' ) ?></span></h3>
<div class="inside"> <div class="inside">
<table class="form-table"> <table class="form-table">
<?php do_action( 'wpmueditblogaction', $id ); ?> <?php do_action( 'wpmueditblogaction', $id ); ?>
</table> </table>
<p class="submit" style="margin:-15px 0 -5px 230px;"><input type="submit" name="Submit" value="<?php esc_attr_e('Update Options') ?>" /></p> <p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Update Options' ) ?>" /></p>
</div></div> </div>
</div>
</div> </div>
<div style="clear:both;"></div> <div style="clear:both;"></div>
@ -323,7 +329,7 @@ switch ( $action ) {
<?php <?php
break; break;
// List blogs // List sites
case 'list': case 'list':
default: default:
$pagenum = isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 0; $pagenum = isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 0;
@ -341,16 +347,6 @@ switch ( $action ) {
$query = "SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' "; $query = "SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' ";
if ( isset( $_GET['blogstatus'] ) ) {
if ( 'deleted' == $_GET['blogstatus'] ) {
$query .= " AND {$wpdb->blogs}.deleted = '1' ";
} elseif ( 'archived' == $_GET['blogstatus'] ) {
$query .= " AND {$wpdb->blogs}.archived = '1' ";
} elseif ( 'spam' == $_GET['blogstatus'] ) {
$query .= " AND {$wpdb->blogs}.spam = '1' ";
}
}
if ( isset( $_GET['searchaction'] ) ) { if ( isset( $_GET['searchaction'] ) ) {
if ( 'name' == $_GET['searchaction'] ) { if ( 'name' == $_GET['searchaction'] ) {
$query .= " AND ( {$wpdb->blogs}.domain LIKE '%{$like_s}%' OR {$wpdb->blogs}.path LIKE '%{$like_s}%' ) "; $query .= " AND ( {$wpdb->blogs}.domain LIKE '%{$like_s}%' OR {$wpdb->blogs}.path LIKE '%{$like_s}%' ) ";
@ -399,9 +395,6 @@ switch ( $action ) {
$mode = 'list'; $mode = 'list';
else else
$mode = esc_attr( $_GET['mode'] ); $mode = esc_attr( $_GET['mode'] );
// for subsubsub and $blog_list
$status_list = array( 'archived' => array( 'site-archived', __('Archived') ), 'spam' => array( 'site-spammed', __('Spam') ), 'deleted' => array( 'site-deleted', __('Deleted') ) );
?> ?>
<div class="wrap"> <div class="wrap">
@ -414,38 +407,10 @@ switch ( $action ) {
?> ?>
</h2> </h2>
<ul class="subsubsub">
<?php
$status_links = array();
$status_class = '';
$count = get_blog_count();
if ( empty($_GET['blogstatus']) || $_GET['blogstatus'] == 'all' )
$status_class = ' class="current"';
$status_links[] = "<li><a href='ms-sites.php?blogstatus=all'$status_class>" . sprintf( _nx( 'All <span class="count">(%s)</span>', 'All <span class="count">(%s)</span>', $count, 'sites' ), number_format_i18n( $count ) ) . '</a>';
foreach ( $status_list as $status => $col ) {
$status_class = '';
if ( empty( $count->$status ) )
continue;
if ( isset( $_GET['blogstatus'] ) && ( $_GET['blogstatus'] == $status ) )
$status_class = ' class="current"';
$status_links[] = "<li><a href='ms-sites.php?blogstatus=$status'$status_class>" . sprintf( $col[1] . ' <span class="count">(%s)</span>' , number_format_i18n( $count->$status ) ) . '</a>';
};
echo implode( " |</li>\n", $status_links ) . '</li>';
unset( $status_links );
?>
</ul>
<form action="ms-sites.php" method="get" id="ms-search"> <form action="ms-sites.php" method="get" id="ms-search">
<p class="search-box"> <p class="search-box">
<input type="hidden" name="action" value="blogs" /> <input type="hidden" name="action" value="blogs" />
<input type="text" name="s" value="<?php esc_attr_e( $s ); ?>" /> <input type="text" name="s" value="<?php echo esc_attr( $s ); ?>" />
<input type="submit" class="button" value="<?php esc_attr_e( 'Search Site by' ) ?>" /> <input type="submit" class="button" value="<?php esc_attr_e( 'Search Site by' ) ?>" />
<select name="searchaction"> <select name="searchaction">
<option value="name" selected="selected"><?php _e( 'Name' ); ?></option> <option value="name" selected="selected"><?php _e( 'Name' ); ?></option>
@ -466,7 +431,7 @@ switch ( $action ) {
<option value="notspam"><?php _e( 'Not Spam' ); ?></option> <option value="notspam"><?php _e( 'Not Spam' ); ?></option>
</select> </select>
<input type="submit" value="<?php esc_attr_e( 'Apply' ); ?>" name="doaction" id="doaction" class="button-secondary action" /> <input type="submit" value="<?php esc_attr_e( 'Apply' ); ?>" name="doaction" id="doaction" class="button-secondary action" />
<?php wp_nonce_field('bulk-sites'); ?> <?php wp_nonce_field( 'bulk-ms-sites' ); ?>
</div> </div>
<?php if ( $page_links ) { ?> <?php if ( $page_links ) { ?>
@ -492,7 +457,7 @@ switch ( $action ) {
<?php <?php
// define the columns to display, the syntax is 'internal name' => 'display name' // define the columns to display, the syntax is 'internal name' => 'display name'
$blogname_columns = ( is_subdomain_install() ) ? __( 'Domain' ) : __( 'Path' ); $blogname_columns = ( is_subdomain_install() ) ? __( 'Domain' ) : __( 'Path' );
$posts_columns = array( $sites_columns = array(
'id' => __( 'ID' ), 'id' => __( 'ID' ),
'blogname' => $blogname_columns, 'blogname' => $blogname_columns,
'lastupdated' => __( 'Last Updated'), 'lastupdated' => __( 'Last Updated'),
@ -501,40 +466,20 @@ switch ( $action ) {
); );
if ( has_filter( 'wpmublogsaction' ) ) if ( has_filter( 'wpmublogsaction' ) )
$posts_columns['plugins'] = __('Actions'); $sites_columns['plugins'] = __( 'Actions' );
$posts_columns = apply_filters('wpmu_blogs_columns', $posts_columns); $sites_columns = apply_filters( 'wpmu_blogs_columns', $sites_columns );
?> ?>
<table class="widefat"> <table class="widefat">
<thead> <thead>
<tr>
<th style="" class="manage-column column-cb check-column" id="cb" scope="col">
<input type="checkbox" />
</th>
<?php
foreach($posts_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 ), $_SERVER['REQUEST_URI'] ) );
$column_link .= "'>{$column_display_name}</a>";
$col_url = ($column_id == 'users' || $column_id == 'plugins') ? $column_display_name : $column_link;
?>
<th scope="col">
<?php echo $col_url ?>
</th>
<?php } ?>
</tr>
</thead>
<tfoot>
<tr> <tr>
<th class="manage-column column-cb check-column" id="cb" scope="col"> <th class="manage-column column-cb check-column" id="cb" scope="col">
<input type="checkbox" /> <input type="checkbox" />
</th> </th>
<?php foreach($posts_columns as $column_id => $column_display_name) { <?php
$col_url = '';
foreach($sites_columns as $column_id => $column_display_name) {
$column_link = "<a href='"; $column_link = "<a href='";
$order2 = ''; $order2 = '';
if ( $order_by == $column_id ) if ( $order_by == $column_id )
@ -542,16 +487,22 @@ switch ( $action ) {
$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 .= 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>"; $column_link .= "'>{$column_display_name}</a>";
$col_url = ($column_id == 'users' || $column_id == 'plugins') ? $column_display_name : $column_link; $col_url .= '<th scope="col">' . ( ( $column_id == 'users' || $column_id == 'plugins' ) ? $column_display_name : $column_link ) . '</th>';
?> }
<th scope="col"> echo $col_url ?>
<?php echo $col_url ?> </tr>
</thead>
<tfoot>
<tr>
<th class="manage-column column-cb check-column" id="cb1" scope="col">
<input type="checkbox" />
</th> </th>
<?php } ?> <?php echo $col_url ?>
</tr> </tr>
</tfoot> </tfoot>
<tbody id="the-list"> <tbody id="the-site-list" class="list:site">
<?php <?php
$status_list = array( 'archived' => array( 'site-archived', __( 'Archived' ) ), 'spam' => array( 'site-spammed', __( 'Spam' ) ), 'deleted' => array( 'site-deleted', __( 'Deleted' ) ), 'mature' => array( 'site-mature', __( 'Mature' ) ) );
if ( $blog_list ) { if ( $blog_list ) {
$class = ''; $class = '';
foreach ( $blog_list as $blog ) { foreach ( $blog_list as $blog ) {
@ -579,11 +530,11 @@ switch ( $action ) {
echo "<tr class='$class'>"; echo "<tr class='$class'>";
$blogname = ( is_subdomain_install() ) ? str_replace( '.'.$current_site->domain, '', $blog['domain'] ) : $blog['path']; $blogname = ( is_subdomain_install() ) ? str_replace( '.'.$current_site->domain, '', $blog['domain'] ) : $blog['path'];
foreach ( $posts_columns as $column_name=>$column_display_name ) { foreach ( $sites_columns as $column_name=>$column_display_name ) {
switch ( $column_name ) { switch ( $column_name ) {
case 'id': ?> case 'id': ?>
<th scope="row" class="check-column"> <th scope="row" class="check-column">
<input type='checkbox' id='blog_<?php echo $blog['blog_id'] ?>' name='allblogs[]' value='<?php echo esc_attr($blog['blog_id']) ?>' /> <input type="checkbox" id="blog_<?php echo $blog['blog_id'] ?>" name="allblogs[]" value="<?php echo esc_attr( $blog['blog_id'] ) ?>" />
</th> </th>
<th valign="top" scope="row"> <th valign="top" scope="row">
<?php echo $blog['blog_id'] ?> <?php echo $blog['blog_id'] ?>
@ -593,36 +544,41 @@ switch ( $action ) {
case 'blogname': ?> case 'blogname': ?>
<td class="column-title"> <td class="column-title">
<a href="ms-sites.php?action=editblog&amp;id=<?php echo $blog['blog_id'] ?>" class="edit"><?php echo $blogname . $blog_state; ?></a> <a href="<?php echo esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $blog['blog_id'] ) ); ?>" class="edit"><?php echo $blogname . $blog_state; ?></a>
<?php <?php
if ( 'list' != $mode ) if ( 'list' != $mode )
echo '<p>' . sprintf( _x( '%1$s &#8211; <em>%2$s', '%1$s: site name. %2$s: site tagline.' ), get_blog_option( $blog['blog_id'], 'blogname' ), get_blog_option( $blog['blog_id'], 'blogdescription ' ) ) . '</em></p>'; echo '<p>' . sprintf( _x( '%1$s &#8211; <em>%2$s', '%1$s: site name. %2$s: site tagline.' ), get_blog_option( $blog['blog_id'], 'blogname' ), get_blog_option( $blog['blog_id'], 'blogdescription ' ) ) . '</em></p>';
$actions = array(); $actions = array();
$actions[] = '<a href="ms-sites.php?action=editblog&amp;id=' . $blog['blog_id'] . '" class="edit">' . __('Edit') . '</a>'; $actions[] = '<span class="edit"><a href="' . esc_url( admin_url( 'ms-sites.php?action=editblog&amp;id=' . $blog['blog_id'] ) ) . '">' . __( 'Edit' ) . '</a><span>';
$actions[] = "<a href='" . get_admin_url($blog['blog_id']) . "' class='edit'>" . __('Backend') . '</a>'; $actions[] = "<span class='backend'><a href='" . esc_url( get_admin_url($blog['blog_id']) ) . "' class='edit'>" . __( 'Backend' ) . '</a></span>';
if ( $current_site->blog_id != $blog['blog_id'] ) {
if ( get_blog_status( $blog['blog_id'], "deleted" ) == '1' ) if ( get_blog_status( $blog['blog_id'], 'deleted' ) == '1' )
$actions[] = '<a class="delete" href="ms-edit.php?action=confirm&amp;action2=activateblog&amp;ref=' . urlencode( $_SERVER['REQUEST_URI'] ) . '&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to activate the site %s" ), $blogname ) ) . '">' . __('Activate') . '</a>'; $actions[] = '<span class="activate"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=activateblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to activate the site %s" ), $blogname ) ) ) ) . '">' . __( 'Activate' ) . '</a></span>';
else else
$actions[] = '<a class="delete" href="ms-edit.php?action=confirm&amp;action2=deactivateblog&amp;ref=' . urlencode( $_SERVER['REQUEST_URI'] ) . '&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to deactivate the site %s" ), $blogname ) ) . '">' . __('Deactivate') . '</a>'; $actions[] = '<span class="activate"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=deactivateblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to deactivate the site %s" ), $blogname ) ) ) ) . '">' . __( 'Deactivate' ) . '</a></span>';
if ( get_blog_status( $blog['blog_id'], "archived" ) == '1' ) if ( get_blog_status( $blog['blog_id'], 'archived' ) == '1' )
$actions[] = '<a class="delete" href="ms-edit.php?action=confirm&amp;action2=unarchiveblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to unarchive the site %s" ), $blogname ) ) . '">' . __('Unarchive') . '</a>'; $actions[] = '<span class="archive"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=unarchiveblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to unarchive the site %s." ), $blogname ) ) ) ) . '">' . __( 'Unarchive' ) . '</a></span>';
else else
$actions[] = '<a class="delete" href="ms-edit.php?action=confirm&amp;action2=archiveblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to archive the site %s" ), $blogname ) ) . '">' . __('Archive') . '</a>'; $actions[] = '<span class="archive"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=archiveblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to archive the site %s." ), $blogname ) ) ) ) . '">' . __( 'Archive' ) . '</a></span>';
if ( get_blog_status( $blog['blog_id'], "spam" ) == '1' ) if ( get_blog_status( $blog['blog_id'], 'spam' ) == '1' )
$actions[] = '<a class="delete" href="ms-edit.php?action=confirm&amp;action2=unspamblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to unspam the site %s" ), $blogname ) ) . '">' . __('Not Spam') . '</a>'; $actions[] = '<span class="spam"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=unspamblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to unspam the site %s." ), $blogname ) ) ) ) . '">' . __( 'Not Spam' ) . '</a></span>';
else else
$actions[] = '<a class="delete" href="ms-edit.php?action=confirm&amp;action2=spamblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to mark the site %s as spam" ), $blogname ) ) . '">' . __("Spam") . '</a>'; $actions[] = '<span class="spam"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=spamblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to mark the site %s as spam." ), $blogname ) ) ) ) . '">' . __( 'Spam' ) . '</a></span>';
$actions[] = '<a class="delete" href="ms-edit.php?action=confirm&amp;action2=deleteblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to delete the site %s" ), $blogname ) ) . '">' . __("Delete") . '</a>'; if ( get_blog_status( $blog['blog_id'], 'mature' ) == '1' )
$actions[] = '<span class="mature"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=unmatureblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to unmature the site %s." ), $blogname ) ) ) ) . '">' . __( 'Not Mature' ) . '</a></span>';
else
$actions[] = '<span class="mature"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=matureblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to mark the site %s as mature." ), $blogname ) ) ) ) . '">' . __( 'Mature' ) . '</a></span>';
$actions[] = "<a href='" . get_home_url($blog['blog_id']) . "' rel='permalink'>" . __('Visit') . '</a>'; $actions[] = '<span class="delete"><a href="' . esc_url( admin_url( 'ms-edit.php?action=confirm&amp;action2=deleteblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( "You are about to delete the site %s." ), $blogname ) ) ) ) . '">' . __( 'Delete' ) . '</a></span>';
?> }
<?php if ( count($actions) ) : ?> $actions[] = "<span class='view'><a href='" . esc_url( get_home_url( $blog['blog_id'] ) ) . "' rel='permalink'>" . __( 'Visit' ) . '</a>';
if ( count( $actions ) ) : ?>
<div class="row-actions"> <div class="row-actions">
<?php echo implode( ' | ', $actions ); ?> <?php echo implode( ' | ', $actions ); ?>
</div> </div>
@ -638,13 +594,18 @@ switch ( $action ) {
$date = 'Y/m/d'; $date = 'Y/m/d';
else else
$date = 'Y/m/d \<\b\r \/\> g:i:s a'; $date = 'Y/m/d \<\b\r \/\> g:i:s a';
echo ( $blog['last_updated'] == '0000-00-00 00:00:00' ) ? __("Never") : mysql2date( __( $date ), $blog['last_updated'] ); ?> echo ( $blog['last_updated'] == '0000-00-00 00:00:00' ) ? __( 'Never' ) : mysql2date( __( $date ), $blog['last_updated'] ); ?>
</td> </td>
<?php <?php
break; break;
case 'registered': ?> case 'registered': ?>
<td valign="top"> <td valign="top">
<?php echo mysql2date(__( $date ), $blog['registered'] ); ?> <?php
if ( $blog['registered'] == '0000-00-00 00:00:00' )
echo '&#x2014;';
else
echo mysql2date( __( $date ), $blog['registered'] );
?>
</td> </td>
<?php <?php
break; break;
@ -656,10 +617,10 @@ switch ( $action ) {
$blogusers_warning = ''; $blogusers_warning = '';
if ( count( $blogusers ) > 5 ) { if ( count( $blogusers ) > 5 ) {
$blogusers = array_slice( $blogusers, 0, 5 ); $blogusers = array_slice( $blogusers, 0, 5 );
$blogusers_warning = __( 'Only showing first 5 users.' ) . ' <a href="' . get_admin_url($blog['blog_id'], 'users.php') . '">' . __( 'More' ) . '</a>'; $blogusers_warning = __( 'Only showing first 5 users.' ) . ' <a href="' . esc_url( get_admin_url( $blog['blog_id'], 'users.php' ) ) . '">' . __( 'More' ) . '</a>';
} }
foreach ( $blogusers as $key => $val ) { foreach ( $blogusers as $key => $val ) {
echo '<a href="user-edit.php?user_id=' . $val->user_id . '">' . $val->user_login . '</a> '; echo '<a href="' . esc_url( admin_url( 'user-edit.php?user_id=' . $val->user_id ) ) . '">' . esc_html( $val->user_login ) . '</a> ';
if ( 'list' != $mode ) if ( 'list' != $mode )
echo '(' . $val->user_email . ')'; echo '(' . $val->user_email . ')';
echo '<br />'; echo '<br />';
@ -675,7 +636,7 @@ switch ( $action ) {
case 'plugins': ?> case 'plugins': ?>
<?php if ( has_filter( 'wpmublogsaction' ) ) { ?> <?php if ( has_filter( 'wpmublogsaction' ) ) { ?>
<td valign="top"> <td valign="top">
<?php do_action( "wpmublogsaction", $blog['blog_id'] ); ?> <?php do_action( 'wpmublogsaction', $blog['blog_id'] ); ?>
</td> </td>
<?php } ?> <?php } ?>
<?php break; <?php break;
@ -695,7 +656,7 @@ switch ( $action ) {
} }
} else { ?> } else { ?>
<tr> <tr>
<td colspan="8"><?php _e('No blogs found.') ?></td> <td colspan="<?php echo (int) count( $sites_columns ); ?>"><?php _e( 'No blogs found.' ) ?></td>
</tr> </tr>
<?php <?php
} // end if ($blogs) } // end if ($blogs)
@ -731,27 +692,27 @@ switch ( $action ) {
<?php wp_nonce_field( 'add-blog' ) ?> <?php wp_nonce_field( 'add-blog' ) ?>
<table class="form-table"> <table class="form-table">
<tr class="form-field form-required"> <tr class="form-field form-required">
<th scope='row'><?php _e('Site Address') ?></th> <th scope="row"><?php _e( 'Site Address' ) ?></th>
<td> <td>
<?php if ( is_subdomain_install() ) { ?> <?php if ( is_subdomain_install() ) { ?>
<input name="blog[domain]" type="text" class="regular-text" title="<?php _e( 'Domain' ) ?>"/>.<?php echo $current_site->domain;?> <input name="blog[domain]" type="text" class="regular-text" title="<?php _e( 'Domain' ) ?>"/>.<?php echo $current_site->domain;?>
<?php } else { <?php } else {
echo $current_site->domain . $current_site->path ?><input name="blog[domain]" class="regular-text" type="text" title="<?php _e( 'Domain' ) ?>"/> echo $current_site->domain . $current_site->path ?><input name="blog[domain]" class="regular-text" type="text" title="<?php _e( 'Domain' ) ?>"/>
<?php } <?php }
echo "<p>" . __( 'Only the characters a-z and 0-9 recommended.' ) . "</p>"; echo '<p>' . __( 'Only the characters a-z and 0-9 recommended.' ) . '</p>';
?> ?>
</td> </td>
</tr> </tr>
<tr class="form-field form-required"> <tr class="form-field form-required">
<th scope='row'><?php _e('Site Title') ?></th> <th scope="row"><?php _e( 'Site Title' ) ?></th>
<td><input name="blog[title]" type="text" class="regular-text" title="<?php _e( 'Title' ) ?>"/></td> <td><input name="blog[title]" type="text" class="regular-text" title="<?php _e( 'Title' ) ?>"/></td>
</tr> </tr>
<tr class="form-field form-required"> <tr class="form-field form-required">
<th scope='row'><?php _e('Admin Email') ?></th> <th scope="row"><?php _e( 'Admin Email' ) ?></th>
<td><input name="blog[email]" type="text" class="regular-text" title="<?php _e( 'Email' ) ?>"/></td> <td><input name="blog[email]" type="text" class="regular-text" title="<?php _e( 'Email' ) ?>"/></td>
</tr> </tr>
<tr class="form-field"> <tr class="form-field">
<td colspan='2'><?php _e('A new user will be created if the above email address is not in the database.') ?><br /><?php _e('The username and password will be mailed to this email address.') ?></td> <td colspan="2"><?php _e( 'A new user will be created if the above email address is not in the database.' ) ?><br /><?php _e( 'The username and password will be mailed to this email address.' ) ?></td>
</tr> </tr>
</table> </table>
<p class="submit"> <p class="submit">
@ -762,4 +723,4 @@ switch ( $action ) {
break; break;
} // end switch( $action ) } // end switch( $action )
include('admin-footer.php'); ?> include( './admin-footer.php' ); ?>

View File

@ -1,9 +1,9 @@
<?php <?php
require_once('admin.php'); require_once( './admin.php' );
$title = __( 'Network Themes' ); $title = __( 'Network Themes' );
$parent_file = 'ms-admin.php'; $parent_file = 'ms-admin.php';
require_once('admin-header.php'); require_once( './admin-header.php' );
if ( ! current_user_can( 'manage_network_themes' ) ) 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.' ) );
@ -18,7 +18,7 @@ $themes = get_themes();
$allowed_themes = get_site_allowed_themes(); $allowed_themes = get_site_allowed_themes();
?> ?>
<div class="wrap"> <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(); ?> <?php screen_icon(); ?>
<h2><?php _e( 'Network Themes' ) ?></h2> <h2><?php _e( 'Network Themes' ) ?></h2>
<p><?php _e( 'Disable themes network-wide. You can enable themes on a site by site basis.' ) ?></p> <p><?php _e( 'Disable themes network-wide. You can enable themes on a site by site basis.' ) ?></p>
@ -40,20 +40,21 @@ $allowed_themes = get_site_allowed_themes();
$theme_key = esc_html( $theme['Stylesheet'] ); $theme_key = esc_html( $theme['Stylesheet'] );
$class = ( 'alt' == $class ) ? '' : 'alt'; $class = ( 'alt' == $class ) ? '' : 'alt';
$class1 = $enabled = $disabled = ''; $class1 = $enabled = $disabled = '';
$enabled = $disabled = false;
if ( isset( $allowed_themes[$theme_key] ) == true ) { if ( isset( $allowed_themes[$theme_key] ) == true ) {
$enabled = 'checked="checked" '; $enabled = true;
$activated_themes_count++; $activated_themes_count++;
$class1 = 'active'; $class1 = 'active';
} else { } 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;"> <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; &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> </td>
<th scope="row" style="text-align:left;"><?php echo $key ?></th> <th scope="row" style="text-align:left;"><?php echo $key ?></th>
<td><?php echo $theme['Version'] ?></td> <td><?php echo $theme['Version'] ?></td>
@ -64,7 +65,7 @@ $allowed_themes = get_site_allowed_themes();
</table> </table>
<p class="submit"> <p class="submit">
<input type='submit' value='<?php _e('Update Themes') ?>' /></p> <input type="submit" value="<?php _e( 'Update Themes' ) ?>" /></p>
</form> </form>
<h3><?php _e( 'Total' )?></h3> <h3><?php _e( 'Total' )?></h3>
@ -75,4 +76,4 @@ $allowed_themes = get_site_allowed_themes();
</p> </p>
</div> </div>
<?php include('admin-footer.php'); ?> <?php include( './admin-footer.php' ); ?>

View File

@ -1,5 +1,5 @@
<?php <?php
require_once('admin.php'); require_once( './admin.php' );
if ( !is_multisite() ) if ( !is_multisite() )
wp_die( __( 'Multisite support is not enabled.' ) ); wp_die( __( 'Multisite support is not enabled.' ) );
@ -9,59 +9,63 @@ $parent_file = 'ms-admin.php';
wp_enqueue_script( 'admin-forms' ); wp_enqueue_script( 'admin-forms' );
require_once('admin-header.php'); require_once( './admin-header.php' );
if ( ! current_user_can( 'manage_network_users' ) ) 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> <div id="message" class="updated fade"><p>
<?php <?php
switch ( $_GET['action'] ) { switch ( $_GET['action'] ) {
case 'delete': case 'delete':
_e('User deleted !'); _e( 'User deleted.' );
break; break;
case 'all_spam': case 'all_spam':
_e('Users marked as spam !'); _e( 'Users marked as spam.' );
break; break;
case 'all_notspam': case 'all_notspam':
_e('Users marked as not spam !'); _e( 'Users marked as not spam.' );
break; break;
case 'all_delete': case 'all_delete':
_e('Users deleted !'); _e( 'Users deleted.' );
break; break;
case 'add': case 'add':
_e('User added !'); _e( 'User added.' );
break; break;
case 'add_superadmin': case 'add_superadmin':
_e('Network admin added !'); _e( 'Network admin added.' );
break; break;
case 'remove_superadmin': case 'remove_superadmin':
_e('Network admin removed !'); _e( 'Network admin removed.' );
break; break;
} }
?> ?>
</p></div> </p></div>
<?php <?php
} }
?>
<div class="wrap" style="position:relative;"> $pagenum = isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 0;
<?php if ( empty( $pagenum ) )
$apage = isset( $_GET['apage'] ) ? intval( $_GET['apage'] ) : 1; $pagenum = 1;
$num = isset( $_GET['num'] ) ? intval( $_GET['num'] ) : 15;
$s = isset($_GET[ 's' ]) ? esc_attr( trim( $_GET[ 's' ] ) ) : ''; $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}"; $query = "SELECT * FROM {$wpdb->users}";
if ( !empty( $s ) ) { if ( !empty( $like_s ) ) {
$search = '%' . trim( $s ) . '%'; $query .= " WHERE user_login LIKE '%$like_s%' OR user_email LIKE '%$like_s%'";
$query .= " WHERE user_login LIKE '$search' OR user_email LIKE '$search'";
} }
$order_by = isset( $_GET['sortby'] ) ? $_GET['sortby'] : 'id'; $order_by = isset( $_GET['sortby'] ) ? $_GET['sortby'] : 'id';
if ( $order_by == 'email' ) { if ( $order_by == 'email' ) {
$query .= ' ORDER BY user_email '; $query .= ' ORDER BY user_email ';
} elseif ( $order_by == 'login' ) { } elseif ( $order_by == 'login' ) {
@ -75,101 +79,131 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
$query .= ' ORDER BY ID '; $query .= ' ORDER BY ID ';
} }
$order = isset($_GET['order']) ? $_GET['order'] : 'ASC'; $order = ( isset( $_GET['order'] ) && 'DESC' == $_GET['order'] ) ? 'DESC' : 'ASC';
$order = ( 'DESC' == $order ) ? 'DESC' : 'ASC';
$query .= $order; $query .= $order;
if ( !empty( $s ) )
$total = $wpdb->get_var( str_replace( 'SELECT *', 'SELECT COUNT(ID)', $query ) ); $total = $wpdb->get_var( str_replace( 'SELECT *', 'SELECT COUNT(ID)', $query ) );
else
$total = $wpdb->get_var( "SELECT COUNT(ID) FROM {$wpdb->users}");
$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 ); $user_list = $wpdb->get_results( $query, ARRAY_A );
// Pagination $num_pages = ceil( $total / $per_page );
$user_navigation = paginate_links( array( $page_links = paginate_links( array(
'total' => ceil($total / $num), 'base' => add_query_arg( 'paged', '%#%' ),
'current' => $apage, 'format' => '',
'base' => add_query_arg( 'apage', '%#%' ), 'prev_text' => __( '&laquo;' ),
'format' => '' 'next_text' => __( '&raquo;' ),
'total' => $num_pages,
'current' => $pagenum
)); ));
if ( $user_navigation ) { if ( empty( $_GET['mode'] ) )
$user_navigation = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>%s', $mode = 'list';
number_format_i18n( ( $apage - 1 ) * $num + 1 ), else
number_format_i18n( min( $apage * $num, $total ) ), $mode = esc_attr( $_GET['mode'] );
number_format_i18n( $total ),
$user_navigation
);
}
?> ?>
<div class="wrap"> <div class="wrap">
<?php screen_icon(); ?> <?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"> <form action="ms-users.php" method="get" class="search-form">
<p class="search-box"> <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="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" /> <input type="submit" id="post-query-submit" value="<?php esc_attr_e( 'Search Users' ) ?>" class="button" />
</p> </p>
</form> </form>
</div>
<form id="form-user-list" action='ms-edit.php?action=allusers' method='post'> <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"> <div class="tablenav">
<?php if ( $user_navigation ) echo "<div class='tablenav-pages'>$user_navigation</div>"; ?>
<div class="alignleft actions"> <div class="alignleft actions">
<input type="submit" value="<?php esc_attr_e('Delete') ?>" name="alluser_delete" class="button-secondary delete" /> <select name="action">
<input type="submit" value="<?php esc_attr_e('Mark as Spammers') ?>" name="alluser_spam" class="button-secondary" /> <option value="-1" selected="selected"><?php _e( 'Bulk Actions' ); ?></option>
<input type="submit" value="<?php esc_attr_e('Not Spam') ?>" name="alluser_notspam" class="button-secondary" /> <option value="delete"><?php _e( 'Delete' ); ?></option>
<input type="submit" value="<?php esc_attr_e('Add Network Admins') ?>" name="add_superadmin" class="button-secondary" /> <option value="spam"><?php _e( 'Mark as Spammers' ); ?></option>
<input type="submit" value="<?php esc_attr_e('Remove Network Admins') ?>" name="remove_superadmin" class="button-secondary" /> <option value="notspam"><?php _e( 'Not Spam' ); ?></option>
<?php wp_nonce_field( 'allusers' ); ?> <option value="superadmin"><?php _e( 'Add Super Admins' ); ?></option>
<br class="clear" /> <option value="notsuperadmin"><?php _e( 'Remove Super Admins' ); ?></option>
</div> </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> </div>
<?php if ( isset($_GET['s']) && $_GET['s'] != '' ) : ?> <?php if ( $page_links ) { ?>
<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> <div class="tablenav-pages">
<?php endif; ?> <?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>
<div class="clear"></div>
<?php <?php
// define the columns to display, the syntax is 'internal name' => 'display name' // define the columns to display, the syntax is 'internal name' => 'display name'
$posts_columns = array( $users_columns = array(
'checkbox' => '', 'id' => __( 'ID' ),
'login' => __( 'Username' ), 'login' => __( 'Username' ),
'name' => __( 'Name' ), 'name' => __( 'Name' ),
'email' => __( 'E-mail' ), 'email' => __( 'E-mail' ),
'registered' => __( 'Registered' ), 'registered' => __( 'Registered' ),
'blogs' => '' '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> <thead>
<tr> <tr>
<?php foreach( (array) $posts_columns as $column_id => $column_display_name) { <th class="manage-column column-cb check-column" id="cb" scope="col">
if ( $column_id == 'blogs' ) { <input type="checkbox" />
echo '<th scope="col">'.__('Sites').'</th>'; </th>
} elseif ( $column_id == 'checkbox') { <?php
echo '<th scope="col" class="check-column"><input type="checkbox" /></th>'; $col_url = '';
} else { ?> foreach($users_columns as $column_id => $column_display_name) {
<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> $column_link = "<a href='";
<?php } ?> $order2 = '';
<?php } ?> 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> </tr>
</thead> </thead>
<tbody id="users" class="list:user 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 ) { <?php if ( $user_list ) {
$class = ''; $class = '';
$super_admins = get_site_option( 'site_admins' ); $super_admins = get_site_option( 'site_admins' );
foreach ( (array) $user_list as $user ) { foreach ( (array) $user_list as $user ) {
$class = ( 'alternate' == $class ) ? '' : 'alternate'; $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 ) { foreach ( $status_list as $status => $col ) {
if ( $user[$status] ) if ( $user[$status] )
@ -177,31 +211,34 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
} }
?> ?>
<tr class="<?php echo $class; ?>"> <tr class="<?php echo $class; ?>">
<?php <?php
foreach( (array) $posts_columns as $column_name=>$column_display_name) : foreach( (array) $users_columns as $column_name=>$column_display_name ) :
switch( $column_name ) { switch( $column_name ) {
case 'checkbox': ?> case 'id': ?>
<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> <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 <?php
break; break;
case 'login': case 'login':
$avatar = get_avatar( $user['user_email'], 32 ); $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"> <td class="username column-username">
<?php echo $avatar; ?><strong><a href="<?php echo $edit; ?>" class="edit"><?php echo stripslashes($user['user_login']); ?></a><?php <?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 ) ) if ( in_array( $user['user_login'], $super_admins ) )
echo ' - ' . __( 'Super admin' ); echo ' - ' . __( 'Super admin' );
?></strong> ?></strong>
<br/> <br/>
<div class="row-actions"> <div class="row-actions">
<span class="edit"><a href="<?php echo $edit; ?>">Edit</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 /*<span class="delete"><a href="<?php echo $delete; ?>" class="delete">Delete</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> </div>
</td> </td>
<?php <?php
@ -217,8 +254,13 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
<?php <?php
break; break;
case 'registered': ?> case 'registered':
<td><?php echo mysql2date(__('Y-m-d \<\b\r \/\> g:i a'), $user['user_registered']); ?></td> 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 <?php
break; break;
@ -230,17 +272,17 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
if ( is_array( $blogs ) ) { if ( is_array( $blogs ) ) {
foreach ( (array) $blogs as $key => $val ) { foreach ( (array) $blogs as $key => $val ) {
$path = ( $val->path == '/' ) ? '' : $val->path; $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>'; 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">'; echo ' <small class="row-actions">';
// Edit // 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 // View
echo '<a '; echo '<a ';
if ( get_blog_status( $val->userblog_id, 'spam' ) == 1 ) if ( get_blog_status( $val->userblog_id, 'spam' ) == 1 )
echo 'style="background-color: #f66" '; echo 'style="background-color: #faa" ';
echo 'target="_new" href="http://'.$val->domain . $val->path.'">' . __('View') . '</a>'; echo 'href="' . esc_url( get_home_url( $val->userblog_id ) ) . '">' . __( 'View' ) . '</a>';
echo '</small><br />'; echo '</small><br />';
} }
@ -262,8 +304,8 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
} }
} else { } else {
?> ?>
<tr style='background-color: <?php echo $bgcolor; ?>'> <tr>
<td colspan="<?php echo (int) count($posts_columns); ?>"><?php _e('No users found.') ?></td> <td colspan="<?php echo (int) count($users_columns); ?>"><?php _e( 'No users found.' ) ?></td>
</tr> </tr>
<?php <?php
} // end if ($users) } // end if ($users)
@ -272,18 +314,25 @@ if ( isset($_GET['updated']) && $_GET['updated'] == 'true' ) {
</table> </table>
<div class="tablenav"> <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"> <div class="alignleft actions">
<input type="submit" value="<?php esc_attr_e('Delete') ?>" name="alluser_delete" class="button-secondary delete" /> <select name="action2">
<input type="submit" value="<?php esc_attr_e('Mark as Spammers') ?>" name="alluser_spam" class="button-secondary" /> <option value="-1" selected="selected"><?php _e( 'Bulk Actions' ); ?></option>
<input type="submit" value="<?php esc_attr_e('Not Spam') ?>" name="alluser_notspam" class="button-secondary" /> <option value="delete"><?php _e( 'Delete' ); ?></option>
<input type="submit" value="<?php esc_attr_e('Add Network Admins') ?>" name="add_superadmin" class="button-secondary" /> <option value="spam"><?php _e( 'Mark as Spammers' ); ?></option>
<input type="submit" value="<?php esc_attr_e('Remove Network Admins') ?>" name="remove_superadmin" class="button-secondary" /> <option value="notspam"><?php _e( 'Not Spam' ); ?></option>
<?php wp_nonce_field( 'allusers' ); ?> <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" /> <br class="clear" />
</div> </div>
</div>
</form> </form>
</div> </div>
@ -292,25 +341,25 @@ if ( apply_filters('show_adduser_fields', true) ) :
?> ?>
<div class="wrap"> <div class="wrap">
<h2><?php _e( 'Add user' ) ?></h2> <h2><?php _e( 'Add user' ) ?></h2>
<form action="ms-edit.php?action=adduser" method="post"> <form action="ms-edit.php?action=adduser" method="post" id="form-add-user">
<table class="form-table"> <table class="form-table">
<tr class="form-field form-required"> <tr class="form-field form-required">
<th scope='row'><?php _e('Username') ?></th> <th scope="row"><?php _e( 'Username' ) ?></th>
<td><input type="text" name="user[username]" /></td> <td><input type="text" class="regular-text" name="user[username]" /></td>
</tr> </tr>
<tr class="form-field form-required"> <tr class="form-field form-required">
<th scope='row'><?php _e('Email') ?></th> <th scope="row"><?php _e( 'Email' ) ?></th>
<td><input type="text" name="user[email]" /></td> <td><input type="text" class="regular-text" name="user[email]" /></td>
</tr> </tr>
<tr class="form-field"> <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> </tr>
</table> </table>
<p class="submit"> <p class="submit">
<?php wp_nonce_field( 'add-user' ) ?> <?php wp_nonce_field( 'add-user' ) ?>
<input class="button" type="submit" name="Add user" value="<?php esc_attr_e('Add user') ?>" /></p> <input class="button" type="submit" value="<?php esc_attr_e( 'Add user' ) ?>" /></p>
</form> </form>
</div> </div>
<?php endif; ?> <?php endif; ?>
<?php include('admin-footer.php'); ?> <?php include( './admin-footer.php' ); ?>

View File

@ -1,6 +1,5 @@
<?php <?php
require_once( './admin.php' );
require_once('admin.php');
if ( !is_multisite() ) if ( !is_multisite() )
wp_die( __( 'Multisite support is not enabled.' ) ); wp_die( __( 'Multisite support is not enabled.' ) );
@ -18,27 +17,35 @@ if ( empty( $blogs ) )
$updated = false; $updated = false;
if ( 'updateblogsettings' == $action && isset( $_POST['primary_blog'] ) ) { if ( 'updateblogsettings' == $action && isset( $_POST['primary_blog'] ) ) {
check_admin_referer( 'update-my-sites' ); check_admin_referer( 'update-my-sites' );
// @todo Validate primary blog.
$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 ); update_user_option( $current_user->id, 'primary_blog', (int) $_POST['primary_blog'], true );
$updated = 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'; $parent_file = 'index.php';
require_once('admin-header.php'); require_once( './admin-header.php' );
if ( $updated ) { ?> 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 } ?> <?php } ?>
<div class="wrap"> <div class="wrap">
<?php screen_icon(); ?> <?php screen_icon(); ?>
<h2><?php echo esc_html($title); ?></h2> <h2><?php esc_html_e( $title ); ?></h2>
<form id="myblogs" action="" method="post"> <form id="myblogs" action="" method="post">
<?php <?php
choose_primary_blog(); choose_primary_blog();
do_action( 'myblogs_allblogs_options' ); do_action( 'myblogs_allblogs_options' );
?><table class='widefat'> <?php ?>
<br clear="all" />
<table class="widefat fixed">
<?php
$settings_html = apply_filters( 'myblogs_options', '', 'global' ); $settings_html = apply_filters( 'myblogs_options', '', 'global' );
if ( $settings_html != '' ) { if ( $settings_html != '' ) {
echo "<tr><td valign='top'><h3>" . __( 'Global Settings' ) . "</h3></td><td>"; echo "<tr><td valign='top'><h3>" . __( 'Global Settings' ) . "</h3></td><td>";
@ -61,16 +68,17 @@ if ( $updated ) { ?>
$c = ''; $c = '';
foreach ( $rows as $row ) { foreach ( $rows as $row ) {
$c = $c == "alternate" ? '' : 'alternate'; $c = $c == 'alternate' ? '' : 'alternate';
echo "<tr class='$c'>"; echo "<tr class='$c'>";
$t = ''; $i = 0;
foreach ( $row as $user_blog ) { foreach ( $row as $user_blog ) {
$t = $t == 'border-right: 1px solid #ccc;' ? '' : 'border-right: 1px solid #ccc;'; $s = $i == 3 ? '' : 'border-right: 1px solid #ccc;';
echo "<td valign='top' style='$t; width:50%'>"; echo "<td valign='top' style='$s'>";
echo "<h3>{$user_blog->blogname}</h3>"; 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 apply_filters( 'myblogs_options', '', $user_blog );
echo "</td>"; echo "</td>";
$i++;
} }
echo "</tr>"; echo "</tr>";
}?> }?>
@ -78,11 +86,10 @@ if ( $updated ) { ?>
<input type="hidden" name="action" value="updateblogsettings" /> <input type="hidden" name="action" value="updateblogsettings" />
<?php wp_nonce_field( 'update-my-sites' ); ?> <?php wp_nonce_field( 'update-my-sites' ); ?>
<p> <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> </p>
</form> </form>
</div> </div>
<?php <?php
include('admin-footer.php'); include( './admin-footer.php' );
?> ?>