[ Root ] [ Search ] [ Index ]

PHP Cross Reference of WordPress 3.0.1

Provided by Yoast

title

Body

[close]

/wp-admin/ -> ms-sites.php (source)

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


Generated: Thu Oct 14 05:12:05 2010 Cross-referenced by PHPXref 0.7