WordPress.org

Make WordPress Core

Changeset 32718


Ignore:
Timestamp:
06/10/2015 06:49:38 AM (6 years ago)
Author:
jeremyfelt
Message:

Improve information displayed in a network's sites list table

  • Better support for arbitrary domain/path combinations by displaying the URL in the primary column rather than Path or Domain.
  • Show a cached count of total users per site as a more useful data point rather than the first 5 users.
  • Clear that cached count of users for a site when a user is added to the site via add_user_to_blog().

Props @ocean90.
Fixes #32434.

Location:
trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/css/list-tables.css

    r32693 r32718  
    260260
    261261.fixed .column-posts {
    262     width: 74px;
     262    width: 74px;
    263263}
    264264
     
    15111511}
    15121512
     1513.sites.fixed .column-lastupdated,
     1514.sites.fixed .column-registered {
     1515    width: 20%;
     1516}
     1517
     1518.sites.fixed .column-users {
     1519    width: 80px;
     1520}
     1521
    15131522/* =Media Queries
    15141523-------------------------------------------------------------- */
  • trunk/src/wp-admin/includes/class-wp-ms-sites-list-table.php

    r32664 r32718  
    112112            $query .= ' ORDER BY last_updated ';
    113113        } elseif ( $order_by == 'blogname' ) {
    114             if ( is_subdomain_install() )
     114            if ( is_subdomain_install() ) {
    115115                $query .= ' ORDER BY domain ';
    116             else
     116            } else {
    117117                $query .= ' ORDER BY path ';
     118            }
    118119        } elseif ( $order_by == 'blog_id' ) {
    119120            $query .= ' ORDER BY blog_id ';
     
    183184     */
    184185    public function get_columns() {
    185         $blogname_columns = ( is_subdomain_install() ) ? __( 'Domain' ) : __( 'Path' );
    186186        $sites_columns = array(
    187187            'cb'          => '<input type="checkbox" />',
    188             'blogname'    => $blogname_columns,
     188            'blogname'    => __( 'URL' ),
    189189            'lastupdated' => __( 'Last Updated' ),
    190190            'registered'  => _x( 'Registered', 'site' ),
    191             'users'       => __( 'Users' )
     191            'users'       => __( 'Users' ),
    192192        );
    193193
    194         if ( has_filter( 'wpmublogsaction' ) )
     194        if ( has_filter( 'wpmublogsaction' ) ) {
    195195            $sites_columns['plugins'] = __( 'Actions' );
     196        }
    196197
    197198        /**
     
    262263            echo "<tr{$class}>";
    263264
    264             $blogname = ( is_subdomain_install() ) ? str_replace( '.' . get_current_site()->domain, '', $blog['domain'] ) : $blog['path'];
     265            $blogname = $blog['domain'] . $blog['path'];
    265266
    266267            list( $columns, $hidden, $sortable, $primary ) = $this->get_column_info();
     
    323324
    324325                        case 'users':
    325                             $blogusers = get_users( array( 'blog_id' => $blog['blog_id'], 'number' => 6) );
    326                             if ( is_array( $blogusers ) ) {
    327                                 $blogusers_warning = '';
    328                                 if ( count( $blogusers ) > 5 ) {
    329                                     $blogusers = array_slice( $blogusers, 0, 5 );
    330                                     $blogusers_warning = __( 'Only showing first 5 users.' ) . ' <a href="' . esc_url( network_admin_url( 'site-users.php?id=' . $blog['blog_id'] ) ) . '">' . __( 'More' ) . '</a>';
    331                                 }
    332                                 foreach ( $blogusers as $user_object ) {
    333                                     echo '<a href="' . esc_url( network_admin_url( 'user-edit.php?user_id=' . $user_object->ID ) ) . '">' . esc_html( $user_object->user_login ) . '</a> ';
    334                                     if ( 'list' != $mode )
    335                                         echo '( ' . $user_object->user_email . ' )';
    336                                     echo '<br />';
    337                                 }
    338                                 if ( $blogusers_warning != '' )
    339                                     echo '<strong>' . $blogusers_warning . '</strong><br />';
     326                            if ( ! $user_count = wp_cache_get( $blog['blog_id'] . '_user_count', 'blog-details' ) ) {
     327                                $blog_users = get_users( array( 'blog_id' => $blog['blog_id'], 'fields' => 'ID' ) );
     328                                $user_count = count( $blog_users );
     329                                unset( $blog_users );
     330                                wp_cache_set( $blog['blog_id'] . '_user_count', $user_count, 'blog-details', 12 * HOUR_IN_SECONDS );
    340331                            }
     332
     333                            printf(
     334                                '<a href="%s">%s</a>',
     335                                esc_url( network_admin_url( 'site-users.php?id=' . $blog['blog_id'] ) ),
     336                                number_format_i18n( $user_count )
     337                            );
    341338                        break;
    342339
  • trunk/src/wp-includes/ms-functions.php

    r32650 r32718  
    205205    do_action( 'add_user_to_blog', $user_id, $role, $blog_id );
    206206    wp_cache_delete( $user_id, 'users' );
     207    wp_cache_delete( $blog_id . '_user_count', 'blog-details' );
    207208    restore_current_blog();
    208209    return true;
Note: See TracChangeset for help on using the changeset viewer.