X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/38ca813a0e312e2768e5b9519f0415cd0aa84781..refs/tags/wordpress-3.7:/wp-admin/includes/class-wp-ms-sites-list-table.php diff --git a/wp-admin/includes/class-wp-ms-sites-list-table.php b/wp-admin/includes/class-wp-ms-sites-list-table.php index baefc827..edc1146a 100644 --- a/wp-admin/includes/class-wp-ms-sites-list-table.php +++ b/wp-admin/includes/class-wp-ms-sites-list-table.php @@ -9,9 +9,10 @@ */ class WP_MS_Sites_List_Table extends WP_List_Table { - function __construct() { + function __construct( $args = array() ) { parent::__construct( array( 'plural' => 'sites', + 'screen' => isset( $args['screen'] ) ? $args['screen'] : null, ) ); } @@ -28,7 +29,7 @@ class WP_MS_Sites_List_Table extends WP_List_Table { $pagenum = $this->get_pagenum(); - $s = isset( $_REQUEST['s'] ) ? stripslashes( trim( $_REQUEST[ 's' ] ) ) : ''; + $s = isset( $_REQUEST['s'] ) ? wp_unslash( trim( $_REQUEST[ 's' ] ) ) : ''; $wild = ''; if ( false !== strpos($s, '*') ) { $wild = '%'; @@ -37,23 +38,24 @@ class WP_MS_Sites_List_Table extends WP_List_Table { $like_s = esc_sql( like_escape( $s ) ); - $large_network = false; // If the network is large and a search is not being performed, show only the latest blogs with no paging in order // to avoid expensive count queries. - if ( !$s && ( get_blog_count() >= 10000 ) ) { + if ( !$s && wp_is_large_network() ) { if ( !isset($_REQUEST['orderby']) ) $_GET['orderby'] = $_REQUEST['orderby'] = ''; if ( !isset($_REQUEST['order']) ) $_GET['order'] = $_REQUEST['order'] = 'DESC'; - $large_network = true; } $query = "SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' "; if ( empty($s) ) { // Nothing to do. - } elseif ( preg_match('/^[0-9]+\./', $s) ) { - // IP address + } elseif ( preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $s ) || + preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.?$/', $s ) || + preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.?$/', $s ) || + preg_match( '/^[0-9]{1,3}\.$/', $s ) ) { + // IPv4 address $reg_blog_ids = $wpdb->get_col( "SELECT blog_id FROM {$wpdb->registration_log} WHERE {$wpdb->registration_log}.IP LIKE ( '{$like_s}$wild' )" ); if ( !$reg_blog_ids ) @@ -64,7 +66,7 @@ class WP_MS_Sites_List_Table extends WP_List_Table { WHERE site_id = '{$wpdb->siteid}' AND {$wpdb->blogs}.blog_id IN (" . implode( ', ', $reg_blog_ids ) . ")"; } else { - if ( is_numeric($s) ) { + if ( is_numeric($s) && empty( $wild ) ) { $query .= " AND ( {$wpdb->blogs}.blog_id = '{$like_s}' )"; } elseif ( is_subdomain_install() ) { $blog_s = str_replace( '.' . $current_site->domain, '', $like_s ); @@ -101,13 +103,13 @@ class WP_MS_Sites_List_Table extends WP_List_Table { } // Don't do an unbounded count on large networks - if ( ! $large_network ) + if ( ! wp_is_large_network() ) $total = $wpdb->get_var( str_replace( 'SELECT *', 'SELECT COUNT( blog_id )', $query ) ); $query .= " LIMIT " . intval( ( $pagenum - 1 ) * $per_page ) . ", " . intval( $per_page ); $this->items = $wpdb->get_results( $query, ARRAY_A ); - if ( $large_network ) + if ( wp_is_large_network() ) $total = count($this->items); $this->set_pagination_args( array( @@ -212,7 +214,10 @@ class WP_MS_Sites_List_Table extends WP_List_Table { switch ( $column_name ) { case 'cb': ?> + + + "; ?> ' . sprintf( _x( '%1$s – %2$s', '%1$s: site name. %2$s: site tagline.' ), get_blog_option( $blog['blog_id'], 'blogname' ), get_blog_option( $blog['blog_id'], 'blogdescription ' ) ) . '

'; + if ( 'list' != $mode ) { + switch_to_blog( $blog['blog_id'] ); + echo '

' . sprintf( _x( '%1$s – %2$s', '%1$s: site name. %2$s: site tagline.' ), get_option( 'blogname' ), get_option( 'blogdescription ' ) ) . '

'; + restore_current_blog(); + } // Preordered. $actions = array( @@ -245,25 +253,25 @@ class WP_MS_Sites_List_Table extends WP_List_Table { $actions['backend'] = "" . __( 'Dashboard' ) . ''; if ( $current_site->blog_id != $blog['blog_id'] ) { if ( get_blog_status( $blog['blog_id'], 'deleted' ) == '1' ) - $actions['activate'] = '' . __( 'Activate' ) . ''; + $actions['activate'] = '' . __( 'Activate' ) . ''; else - $actions['deactivate'] = '' . __( 'Deactivate' ) . ''; + $actions['deactivate'] = '' . __( 'Deactivate' ) . ''; if ( get_blog_status( $blog['blog_id'], 'archived' ) == '1' ) - $actions['unarchive'] = '' . __( 'Unarchive' ) . ''; + $actions['unarchive'] = '' . __( 'Unarchive' ) . ''; else - $actions['archive'] = '' . _x( 'Archive', 'verb; site' ) . ''; + $actions['archive'] = '' . _x( 'Archive', 'verb; site' ) . ''; if ( get_blog_status( $blog['blog_id'], 'spam' ) == '1' ) - $actions['unspam'] = '' . _x( 'Not Spam', 'site' ) . ''; + $actions['unspam'] = '' . _x( 'Not Spam', 'site' ) . ''; else - $actions['spam'] = '' . _x( 'Spam', 'site' ) . ''; + $actions['spam'] = '' . _x( 'Spam', 'site' ) . ''; if ( current_user_can( 'delete_site', $blog['blog_id'] ) ) - $actions['delete'] = '' . __( 'Delete' ) . ''; + $actions['delete'] = '' . __( 'Delete' ) . ''; } - $actions['visit'] = "" . __( 'Visit' ) . ''; + $actions['visit'] = "" . __( 'Visit' ) . ''; $actions = apply_filters( 'manage_sites_action_links', array_filter( $actions ), $blog['blog_id'], $blogname ); echo $this->row_actions( $actions ); @@ -336,5 +344,3 @@ class WP_MS_Sites_List_Table extends WP_List_Table { } } } - -?>