Archived
Updates bonanza
This commit is contained in:
1 parent
d26191c9f8
commit
9d480fc3c5
1366 files changed
+220321
-90180
No files matched your search
@@ -2,16 +2,38 @@
|
||||
/**
|
||||
* Users List Table class.
|
||||
*
|
||||
* @package WordPress
|
||||
* @subpackage List_Table
|
||||
* @since 3.1.0
|
||||
* @access private
|
||||
*
|
||||
* @package WordPress
|
||||
* @subpackage 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;
|
||||
|
||||
/**
|
||||
* Whether or not the current Users list table is for Multisite.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @access public
|
||||
* @var bool
|
||||
*/
|
||||
var $is_site_users;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @access public
|
||||
*/
|
||||
function __construct( $args = array() ) {
|
||||
parent::__construct( array(
|
||||
'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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check the current user's permissions.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @access public
|
||||
*/
|
||||
function ajax_user_can() {
|
||||
if ( $this->is_site_users )
|
||||
return current_user_can( 'manage_sites' );
|
||||
@@ -32,10 +60,16 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
return current_user_can( 'list_users' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare the users list for display.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @access public
|
||||
*/
|
||||
function prepare_items() {
|
||||
global $role, $usersearch;
|
||||
|
||||
$usersearch = isset( $_REQUEST['s'] ) ? trim( $_REQUEST['s'] ) : '';
|
||||
$usersearch = isset( $_REQUEST['s'] ) ? wp_unslash( trim( $_REQUEST['s'] ) ) : '';
|
||||
|
||||
$role = isset( $_REQUEST['role'] ) ? $_REQUEST['role'] : '';
|
||||
|
||||
@@ -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() {
|
||||
_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() {
|
||||
global $wp_roles, $role;
|
||||
|
||||
@@ -119,6 +171,14 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
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() {
|
||||
$actions = array();
|
||||
|
||||
@@ -133,6 +193,15 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
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 ) {
|
||||
if ( 'top' != $which )
|
||||
return;
|
||||
@@ -148,10 +217,27 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
submit_button( __( 'Change' ), 'button', 'changeit', false );
|
||||
endif;
|
||||
|
||||
/**
|
||||
* Fires just before the closing div containing the bulk role-change controls
|
||||
* in the Users list table.
|
||||
*
|
||||
* @since 3.5.0
|
||||
*/
|
||||
do_action( 'restrict_manage_users' );
|
||||
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() {
|
||||
if ( isset($_REQUEST['changeit']) && !empty($_REQUEST['new_role']) )
|
||||
return 'promote';
|
||||
@@ -159,6 +245,15 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
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() {
|
||||
$c = array(
|
||||
'cb' => '<input type="checkbox" />',
|
||||
@@ -175,6 +270,14 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
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() {
|
||||
$c = array(
|
||||
'username' => 'login',
|
||||
@@ -188,6 +291,12 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
return $c;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the list table rows.
|
||||
*
|
||||
* @since 3.1.0
|
||||
* @access public
|
||||
*/
|
||||
function display_rows() {
|
||||
// Query the post counts for this page
|
||||
if ( ! $this->is_site_users )
|
||||
@@ -209,20 +318,23 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
continue;
|
||||
|
||||
$style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"';
|
||||
echo "\n\t", $this->single_row( $user_object, $style, $role, isset( $post_counts ) ? $post_counts[ $userid ] : 0 );
|
||||
echo "\n\t" . $this->single_row( $user_object, $style, $role, isset( $post_counts ) ? $post_counts[ $userid ] : 0 );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 string $style Optional. Attributes added to the TR element. Must be sanitized.
|
||||
* @param string $role Key for the $wp_roles array.
|
||||
* @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
|
||||
* @param object $user_object The current user object.
|
||||
* @param string $style Optional. Style attributes added to the <tr> element.
|
||||
* Must be sanitized. Default empty.
|
||||
* @param string $role Optional. Key for the $wp_roles array. 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.
|
||||
* @return string Output for a single row.
|
||||
*/
|
||||
function single_row( $user_object, $style = '', $role = '', $numposts = 0 ) {
|
||||
global $wp_roles;
|
||||
@@ -241,7 +353,7 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
// Check if the user for this row is editable
|
||||
if ( current_user_can( 'list_users' ) ) {
|
||||
// Set up the user editing link
|
||||
$edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user_object->ID ) ) );
|
||||
$edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user_object->ID ) ) );
|
||||
|
||||
// Set up the hover actions for this user
|
||||
$actions = array();
|
||||
@@ -257,10 +369,21 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
$actions['delete'] = "<a class='submitdelete' href='" . wp_nonce_url( "users.php?action=delete&user=$user_object->ID", 'bulk-users' ) . "'>" . __( 'Delete' ) . "</a>";
|
||||
if ( is_multisite() && get_current_user_id() != $user_object->ID && current_user_can( 'remove_user', $user_object->ID ) )
|
||||
$actions['remove'] = "<a class='submitdelete' href='" . wp_nonce_url( $url."action=remove&user=$user_object->ID", 'bulk-users' ) . "'>" . __( 'Remove' ) . "</a>";
|
||||
|
||||
/**
|
||||
* Filter the action links displayed under each user in the Users list table.
|
||||
*
|
||||
* @since 2.8.0
|
||||
*
|
||||
* @param array $actions An array of action links to be displayed.
|
||||
* Default 'Edit', 'Delete' for single site, and
|
||||
* 'Edit', 'Remove' for Multisite.
|
||||
* @param WP_User $user_object WP_User object for the currently-listed user.
|
||||
*/
|
||||
$actions = apply_filters( 'user_row_actions', $actions, $user_object );
|
||||
$edit .= $this->row_actions( $actions );
|
||||
|
||||
// Set up the checkbox ( because the user is editable, otherwise its empty )
|
||||
// Set up the checkbox ( because the user is editable, otherwise it's empty )
|
||||
$checkbox = '<label class="screen-reader-text" for="cb-select-' . $user_object->ID . '">' . sprintf( __( 'Select %s' ), $user_object->user_login ) . '</label>'
|
||||
. "<input type='checkbox' name='users[]' id='user_{$user_object->ID}' class='$role' value='{$user_object->ID}' />";
|
||||
|
||||
@@ -313,6 +436,16 @@ class WP_Users_List_Table extends WP_List_Table {
|
||||
break;
|
||||
default:
|
||||
$r .= "<td $attributes>";
|
||||
|
||||
/**
|
||||
* Filter the display output of custom columns in the Users list table.
|
||||
*
|
||||
* @since 2.8.0
|
||||
*
|
||||
* @param string $output Custom column output. Default empty.
|
||||
* @param string $column_name Column name.
|
||||
* @param int $user_id ID of the currently-listed user.
|
||||
*/
|
||||
$r .= apply_filters( 'manage_users_custom_column', '', $column_name, $user_object->ID );
|
||||
$r .= "</td>";
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user