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