From 368f0c38629930e99ca1cff4ae9e4a20c79325aa Mon Sep 17 00:00:00 2001
From: Florian TIAR <contact@tiar-florian.fr>
Date: Tue, 27 Sep 2016 18:38:07 +0200
Subject: [PATCH 1/3] Add first username and link to all username of a site in
wp admin list sites (multisite)
---
wp-admin/includes/class-wp-ms-sites-list-table.php | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
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 9ce3ffe..9d61008 100644
a
|
b
|
class WP_MS_Sites_List_Table extends WP_List_Table { |
388 | 388 | * Handles the users column output. |
389 | 389 | * |
390 | 390 | * @since 4.3.0 |
| 391 | * @since 4.7.0 Display First user of the site, and number of users in the site |
391 | 392 | * @access public |
392 | 393 | * |
393 | 394 | * @param array $blog Current site. |
394 | 395 | */ |
395 | 396 | public function column_users( $blog ) { |
| 397 | $blog_users = get_users( array( 'blog_id' => $blog['blog_id'] ) ); |
396 | 398 | $user_count = wp_cache_get( $blog['blog_id'] . '_user_count', 'blog-details' ); |
397 | 399 | if ( ! $user_count ) { |
398 | | $blog_users = get_users( array( 'blog_id' => $blog['blog_id'], 'fields' => 'ID' ) ); |
399 | 400 | $user_count = count( $blog_users ); |
400 | | unset( $blog_users ); |
401 | 401 | wp_cache_set( $blog['blog_id'] . '_user_count', $user_count, 'blog-details', 12 * HOUR_IN_SECONDS ); |
402 | 402 | } |
403 | 403 | |
404 | 404 | printf( |
405 | 405 | '<a href="%s">%s</a>', |
406 | | esc_url( network_admin_url( 'site-users.php?id=' . $blog['blog_id'] ) ), |
407 | | number_format_i18n( $user_count ) |
| 406 | esc_url( network_admin_url( 'user-edit.php?user_id=' . $blog_users[0]->ID ) ), |
| 407 | $blog_users[0]->user_login |
408 | 408 | ); |
| 409 | |
| 410 | if ( $user_count > 1 ) { |
| 411 | printf( '<a href="%s">%s</a>', |
| 412 | esc_url( network_admin_url( 'site-users.php?id=' . $blog['blog_id'] ) ), |
| 413 | sprintf( |
| 414 | _x( '+ %s more users', 'Number of users of a site of a network (in admin page : wp-admin/network/sites.php)' ), |
| 415 | number_format_i18n( $user_count ) |
| 416 | ) |
| 417 | ); |
| 418 | } |
| 419 | |
| 420 | unset( $blog_users ); |
409 | 421 | } |
410 | 422 | |
411 | 423 | /** |
--
1.9.5.github.0
From 471a3e75e984dd41d5c402a2075fb2e796d254da Mon Sep 17 00:00:00 2001
From: Florian TIAR <contact@tiar-florian.fr>
Date: Tue, 27 Sep 2016 19:09:36 +0200
Subject: [PATCH 2/3] Fix get_users args to get the first user of blog
---
wp-admin/includes/class-wp-ms-sites-list-table.php | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
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 9d61008..c3a4df4 100644
a
|
b
|
class WP_MS_Sites_List_Table extends WP_List_Table { |
394 | 394 | * @param array $blog Current site. |
395 | 395 | */ |
396 | 396 | public function column_users( $blog ) { |
397 | | $blog_users = get_users( array( 'blog_id' => $blog['blog_id'] ) ); |
| 397 | $blog_users = get_users( array( |
| 398 | 'blog_id' => $blog['blog_id'], |
| 399 | 'fields' => 'ID', |
| 400 | 'orderby' => 'registered', |
| 401 | ) ); |
| 402 | |
398 | 403 | $user_count = wp_cache_get( $blog['blog_id'] . '_user_count', 'blog-details' ); |
399 | 404 | if ( ! $user_count ) { |
400 | 405 | $user_count = count( $blog_users ); |
401 | 406 | wp_cache_set( $blog['blog_id'] . '_user_count', $user_count, 'blog-details', 12 * HOUR_IN_SECONDS ); |
402 | 407 | } |
403 | 408 | |
| 409 | $first_blog_user = get_user_by( 'id', $blog_users[0] ); |
404 | 410 | printf( |
405 | 411 | '<a href="%s">%s</a>', |
406 | | esc_url( network_admin_url( 'user-edit.php?user_id=' . $blog_users[0]->ID ) ), |
407 | | $blog_users[0]->user_login |
| 412 | esc_url( network_admin_url( 'user-edit.php?user_id=' . $first_blog_user->ID ) ), |
| 413 | $first_blog_user->user_login |
408 | 414 | ); |
409 | 415 | |
410 | 416 | if ( $user_count > 1 ) { |
--
1.9.5.github.0
From cc56aea302e9a95a02d8f5efe8f3aedb6abe49e9 Mon Sep 17 00:00:00 2001
From: Florian TIAR <contact@tiar-florian.fr>
Date: Tue, 27 Sep 2016 19:54:24 +0200
Subject: [PATCH 3/3] Fix counting value and handle excerpt mode
---
wp-admin/includes/class-wp-ms-sites-list-table.php | 52 +++++++++++++++++-----
1 file changed, 41 insertions(+), 11 deletions(-)
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 c3a4df4..0d8410a 100644
a
|
b
|
class WP_MS_Sites_List_Table extends WP_List_Table { |
394 | 394 | * @param array $blog Current site. |
395 | 395 | */ |
396 | 396 | public function column_users( $blog ) { |
| 397 | $mode = ''; |
| 398 | if ( isset( $_GET['mode'] ) && 'excerpt' === $_GET['mode'] ) { |
| 399 | $mode = 'excerpt'; |
| 400 | } |
| 401 | |
397 | 402 | $blog_users = get_users( array( |
398 | 403 | 'blog_id' => $blog['blog_id'], |
399 | | 'fields' => 'ID', |
400 | 404 | 'orderby' => 'registered', |
401 | 405 | ) ); |
402 | 406 | |
… |
… |
class WP_MS_Sites_List_Table extends WP_List_Table { |
406 | 410 | wp_cache_set( $blog['blog_id'] . '_user_count', $user_count, 'blog-details', 12 * HOUR_IN_SECONDS ); |
407 | 411 | } |
408 | 412 | |
409 | | $first_blog_user = get_user_by( 'id', $blog_users[0] ); |
410 | 413 | printf( |
411 | 414 | '<a href="%s">%s</a>', |
412 | | esc_url( network_admin_url( 'user-edit.php?user_id=' . $first_blog_user->ID ) ), |
413 | | $first_blog_user->user_login |
| 415 | esc_url( network_admin_url( 'user-edit.php?user_id=' . $blog_users[0]->ID ) ), |
| 416 | $blog_users[0]->user_login |
414 | 417 | ); |
415 | 418 | |
416 | 419 | if ( $user_count > 1 ) { |
417 | | printf( '<a href="%s">%s</a>', |
418 | | esc_url( network_admin_url( 'site-users.php?id=' . $blog['blog_id'] ) ), |
419 | | sprintf( |
420 | | _x( '+ %s more users', 'Number of users of a site of a network (in admin page : wp-admin/network/sites.php)' ), |
421 | | number_format_i18n( $user_count ) |
422 | | ) |
423 | | ); |
| 420 | if ( 'excerpt' === $mode) { |
| 421 | foreach ( $blog_users as $key => $user ) { |
| 422 | // Don't display again the first user |
| 423 | if ( 0 === $key ) { |
| 424 | continue; |
| 425 | } |
| 426 | |
| 427 | printf( |
| 428 | '<a href="%s">%s</a>', |
| 429 | esc_url( network_admin_url( 'user-edit.php?user_id=' . $user->ID ) ), |
| 430 | $user->user_login |
| 431 | ); |
| 432 | |
| 433 | // Only display 10 first users |
| 434 | if ( $user_count > 10 && 9 === $key ) { |
| 435 | printf( '<a href="%s">%s</a>', |
| 436 | esc_url( network_admin_url( 'site-users.php?id=' . $blog['blog_id'] ) ), |
| 437 | sprintf( |
| 438 | _x( '+ %s more users', 'Number of users of a site of a network (in admin page : wp-admin/network/sites.php)' ), |
| 439 | number_format_i18n( $user_count -10 ) |
| 440 | ) |
| 441 | ); |
| 442 | break; |
| 443 | } |
| 444 | } |
| 445 | } else { // List mode |
| 446 | printf( '<a href="%s">%s</a>', |
| 447 | esc_url( network_admin_url( 'site-users.php?id=' . $blog['blog_id'] ) ), |
| 448 | sprintf( |
| 449 | _x( '+ %s more users', 'Number of users of a site of a network (in admin page : wp-admin/network/sites.php)' ), |
| 450 | number_format_i18n( $user_count -1 ) |
| 451 | ) |
| 452 | ); |
| 453 | } |
424 | 454 | } |
425 | 455 | |
426 | 456 | unset( $blog_users ); |