Improve inline documentation for `WP_Users_List_Table`.

Props leewillis77 for the initial patch.
Fixes #26564.

Built from https://develop.svn.wordpress.org/trunk@27301


git-svn-id: http://core.svn.wordpress.org/trunk@27154 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Drew Jaynes 2014-02-26 22:20:17 +00:00
parent d24a109288
commit 8dc5888cfa
1 changed files with 114 additions and 8 deletions

View File

@ -2,16 +2,38 @@
/** /**
* Users List Table class. * Users List Table class.
* *
* @package WordPress
* @subpackage List_Table
* @since 3.1.0 * @since 3.1.0
* @access private * @access private
*
* @package WordPress
* @subpackage List_Table
*/ */
class WP_Users_List_Table extends WP_List_Table { class WP_Users_List_Table extends WP_List_Table {
/**
* Site ID to generate the Users list table for.
*
* @since 3.1.0
* @access public
* @var int
*/
var $site_id; var $site_id;
/**
* Whether or not the current Users list table is for Multisite.
*
* @since 3.1.0
* @access public
* @var bool
*/
var $is_site_users; var $is_site_users;
/**
* Constructor.
*
* @since 3.1.0
* @access public
*/
function __construct( $args = array() ) { function __construct( $args = array() ) {
parent::__construct( array( parent::__construct( array(
'singular' => 'user', 'singular' => 'user',
@ -25,6 +47,12 @@ class WP_Users_List_Table extends WP_List_Table {
$this->site_id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0; $this->site_id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0;
} }
/**
* Check the current user's permissions.
*
* @since 3.1.0
* @access public
*/
function ajax_user_can() { function ajax_user_can() {
if ( $this->is_site_users ) if ( $this->is_site_users )
return current_user_can( 'manage_sites' ); return current_user_can( 'manage_sites' );
@ -32,6 +60,12 @@ class WP_Users_List_Table extends WP_List_Table {
return current_user_can( 'list_users' ); return current_user_can( 'list_users' );
} }
/**
* Prepare the users list for display.
*
* @since 3.1.0
* @access public
*/
function prepare_items() { function prepare_items() {
global $role, $usersearch; global $role, $usersearch;
@ -75,10 +109,28 @@ class WP_Users_List_Table extends WP_List_Table {
) ); ) );
} }
/**
* Output 'no users' message.
*
* @since 3.1.0
* @access public
*/
function no_items() { function no_items() {
_e( 'No matching users were found.' ); _e( 'No matching users were found.' );
} }
/**
* Return an associative array listing all the views that can be used
* with this table.
*
* Provides a list of roles and user count for that role for easy
* filtering of the user table.
*
* @since 3.1.0
* @access public
*
* @return array An array of HTML links, one for each view.
*/
function get_views() { function get_views() {
global $wp_roles, $role; global $wp_roles, $role;
@ -119,6 +171,14 @@ class WP_Users_List_Table extends WP_List_Table {
return $role_links; return $role_links;
} }
/**
* Retrieve an associative array of bulk actions available on this table.
*
* @since 3.1.0
* @access public
*
* @return array Array of bulk actions.
*/
function get_bulk_actions() { function get_bulk_actions() {
$actions = array(); $actions = array();
@ -133,6 +193,15 @@ class WP_Users_List_Table extends WP_List_Table {
return $actions; return $actions;
} }
/**
* Output the controls to allow user roles to be changed in bulk.
*
* @since 3.1.0
* @access public
*
* @param string $which Whether this is being invoked above ("top")
* or below the table ("bottom").
*/
function extra_tablenav( $which ) { function extra_tablenav( $which ) {
if ( 'top' != $which ) if ( 'top' != $which )
return; return;
@ -152,6 +221,17 @@ class WP_Users_List_Table extends WP_List_Table {
echo '</div>'; echo '</div>';
} }
/**
* Capture the bulk action required, and return it.
*
* Overridden from the base class implementation to capture
* the role change drop-down.
*
* @since 3.1.0
* @access public
*
* @return string The bulk action required.
*/
function current_action() { function current_action() {
if ( isset($_REQUEST['changeit']) && !empty($_REQUEST['new_role']) ) if ( isset($_REQUEST['changeit']) && !empty($_REQUEST['new_role']) )
return 'promote'; return 'promote';
@ -159,6 +239,15 @@ class WP_Users_List_Table extends WP_List_Table {
return parent::current_action(); return parent::current_action();
} }
/**
* Get a list of columns for the list table.
*
* @since 3.1.0
* @access public
*
* @return array Array in which the key is the ID of the column,
* and the value is the description.
*/
function get_columns() { function get_columns() {
$c = array( $c = array(
'cb' => '<input type="checkbox" />', 'cb' => '<input type="checkbox" />',
@ -175,6 +264,14 @@ class WP_Users_List_Table extends WP_List_Table {
return $c; return $c;
} }
/**
* Get a list of sortable columns for the list table.
*
* @since 3.1.0
* @access public
*
* @return array Array of sortable columns.
*/
function get_sortable_columns() { function get_sortable_columns() {
$c = array( $c = array(
'username' => 'login', 'username' => 'login',
@ -188,6 +285,12 @@ class WP_Users_List_Table extends WP_List_Table {
return $c; return $c;
} }
/**
* Generate the list table rows.
*
* @since 3.1.0
* @access public
*/
function display_rows() { function display_rows() {
// Query the post counts for this page // Query the post counts for this page
if ( ! $this->is_site_users ) if ( ! $this->is_site_users )
@ -216,13 +319,16 @@ class WP_Users_List_Table extends WP_List_Table {
/** /**
* Generate HTML for a single row on the users.php admin panel. * Generate HTML for a single row on the users.php admin panel.
* *
* @since 2.1.0 * @since 3.1.0
* @access public
* *
* @param object $user_object * @param object $user_object The current user object.
* @param string $style Optional. Attributes added to the TR element. Must be sanitized. * @param string $style Optional. Style attributes added to the <tr> element.
* @param string $role Key for the $wp_roles array. * Must be sanitized. Default empty.
* @param int $numposts Optional. Post count to display for this user. Defaults to zero, as in, a new user has made zero posts. * @param string $role Optional. Key for the $wp_roles array. Default empty.
* @return string * @param int $numposts Optional. Post count to display for this user. Defaults
* to zero, as in, a new user has made zero posts.
* @return string Output for a single row.
*/ */
function single_row( $user_object, $style = '', $role = '', $numposts = 0 ) { function single_row( $user_object, $style = '', $role = '', $numposts = 0 ) {
global $wp_roles; global $wp_roles;