X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/fa11948979fd6a4ea5705dc613b239699a459db3..9441756a895fb4fdc4bcf20e0d228cef622663ca:/wp-admin/includes/class-wp-list-table.php?ds=sidebyside
diff --git a/wp-admin/includes/class-wp-list-table.php b/wp-admin/includes/class-wp-list-table.php
index bab488ec..3a85f79d 100644
--- a/wp-admin/includes/class-wp-list-table.php
+++ b/wp-admin/includes/class-wp-list-table.php
@@ -1,6 +1,6 @@
get_column_info().
+ *
+ * @since 4.1.0
+ * @access protected
+ * @var array
+ */
+ protected $_column_headers;
+
+ /**
+ * {@internal Missing Summary}
+ *
+ * @access protected
+ * @var array
+ */
+ protected $compat_fields = array( '_args', '_pagination_args', 'screen', '_actions', '_pagination' );
+
+ /**
+ * {@internal Missing Summary}
+ *
+ * @access protected
+ * @var array
+ */
+ protected $compat_methods = array( 'set_pagination_args', 'get_views', 'get_bulk_actions', 'bulk_actions',
+ 'row_actions', 'months_dropdown', 'view_switcher', 'comments_bubble', 'get_items_per_page', 'pagination',
+ 'get_sortable_columns', 'get_column_info', 'get_table_classes', 'display_tablenav', 'extra_tablenav',
+ 'single_row_columns' );
+
+ /**
+ * Constructor.
+ *
+ * The child class should call this constructor from its own constructor to override
+ * the default $args.
+ *
+ * @since 3.1.0
+ * @access public
+ *
+ * @param array|string $args {
+ * Array or string of arguments.
+ *
+ * @type string $plural Plural value used for labels and the objects being listed.
+ * This affects things such as CSS class-names and nonces used
+ * in the list table, e.g. 'posts'. Default empty.
+ * @type string $singular Singular label for an object being listed, e.g. 'post'.
+ * Default empty
+ * @type bool $ajax Whether the list table supports AJAX. This includes loading
+ * and sorting data, for example. If true, the class will call
+ * the {@see _js_vars()} method in the footer to provide variables
+ * to any scripts handling AJAX events. Default false.
+ * @type string $screen String containing the hook name used to determine the current
+ * screen. If left null, the current screen will be automatically set.
+ * Default null.
+ * }
+ */
+ public function __construct( $args = array() ) {
$args = wp_parse_args( $args, array(
'plural' => '',
'singular' => '',
@@ -101,17 +156,100 @@ class WP_List_Table {
// wp_enqueue_script( 'list-table' );
add_action( 'admin_footer', array( $this, '_js_vars' ) );
}
+
+ if ( empty( $this->modes ) ) {
+ $this->modes = array(
+ 'list' => __( 'List View' ),
+ 'excerpt' => __( 'Excerpt View' )
+ );
+ }
+ }
+
+ /**
+ * Make private properties readable for backwards compatibility.
+ *
+ * @since 4.0.0
+ * @access public
+ *
+ * @param string $name Property to get.
+ * @return mixed Property.
+ */
+ public function __get( $name ) {
+ if ( in_array( $name, $this->compat_fields ) ) {
+ return $this->$name;
+ }
+ }
+
+ /**
+ * Make private properties settable for backwards compatibility.
+ *
+ * @since 4.0.0
+ * @access public
+ *
+ * @param string $name Property to check if set.
+ * @param mixed $value Property value.
+ * @return mixed Newly-set property.
+ */
+ public function __set( $name, $value ) {
+ if ( in_array( $name, $this->compat_fields ) ) {
+ return $this->$name = $value;
+ }
+ }
+
+ /**
+ * Make private properties checkable for backwards compatibility.
+ *
+ * @since 4.0.0
+ * @access public
+ *
+ * @param string $name Property to check if set.
+ * @return bool Whether the property is set.
+ */
+ public function __isset( $name ) {
+ if ( in_array( $name, $this->compat_fields ) ) {
+ return isset( $this->$name );
+ }
+ }
+
+ /**
+ * Make private properties un-settable for backwards compatibility.
+ *
+ * @since 4.0.0
+ * @access public
+ *
+ * @param string $name Property to unset.
+ */
+ public function __unset( $name ) {
+ if ( in_array( $name, $this->compat_fields ) ) {
+ unset( $this->$name );
+ }
+ }
+
+ /**
+ * Make private/protected methods readable for backwards compatibility.
+ *
+ * @since 4.0.0
+ * @access public
+ *
+ * @param callable $name Method to call.
+ * @param array $arguments Arguments to pass when calling.
+ * @return mixed|bool Return value of the callback, false otherwise.
+ */
+ public function __call( $name, $arguments ) {
+ if ( in_array( $name, $this->compat_methods ) ) {
+ return call_user_func_array( array( $this, $name ), $arguments );
+ }
+ return false;
}
/**
* Checks the current user's permissions
- * @uses wp_die()
*
* @since 3.1.0
* @access public
* @abstract
*/
- function ajax_user_can() {
+ public function ajax_user_can() {
die( 'function WP_List_Table::ajax_user_can() must be over-ridden in a sub-class.' );
}
@@ -123,17 +261,19 @@ class WP_List_Table {
* @access public
* @abstract
*/
- function prepare_items() {
+ public function prepare_items() {
die( 'function WP_List_Table::prepare_items() must be over-ridden in a sub-class.' );
}
/**
* An internal method that sets all the necessary pagination arguments
*
- * @param array $args An associative array with information about the pagination
+ * @since 3.1.0
* @access protected
+ *
+ * @param array|string $args Array or string of arguments with information about the pagination.
*/
- function set_pagination_args( $args ) {
+ protected function set_pagination_args( $args ) {
$args = wp_parse_args( $args, array(
'total_items' => 0,
'total_pages' => 0,
@@ -143,7 +283,7 @@ class WP_List_Table {
if ( !$args['total_pages'] && $args['per_page'] > 0 )
$args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] );
- // redirect if page number is invalid and headers are not already sent
+ // Redirect if page number is invalid and headers are not already sent.
if ( ! headers_sent() && ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) {
wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) );
exit;
@@ -153,20 +293,23 @@ class WP_List_Table {
}
/**
- * Access the pagination args
+ * Access the pagination args.
*
* @since 3.1.0
* @access public
*
- * @param string $key
- * @return array
+ * @param string $key Pagination argument to retrieve. Common values include 'total_items',
+ * 'total_pages', 'per_page', or 'infinite_scroll'.
+ * @return int Number of items that correspond to the given pagination argument.
*/
- function get_pagination_arg( $key ) {
- if ( 'page' == $key )
+ public function get_pagination_arg( $key ) {
+ if ( 'page' === $key ) {
return $this->get_pagenum();
+ }
- if ( isset( $this->_pagination_args[$key] ) )
+ if ( isset( $this->_pagination_args[$key] ) ) {
return $this->_pagination_args[$key];
+ }
}
/**
@@ -177,7 +320,7 @@ class WP_List_Table {
*
* @return bool
*/
- function has_items() {
+ public function has_items() {
return !empty( $this->items );
}
@@ -187,7 +330,7 @@ class WP_List_Table {
* @since 3.1.0
* @access public
*/
- function no_items() {
+ public function no_items() {
_e( 'No items found.' );
}
@@ -200,7 +343,7 @@ class WP_List_Table {
* @param string $text The search button text
* @param string $input_id The search input id
*/
- function search_box( $text, $input_id ) {
+ public function search_box( $text, $input_id ) {
if ( empty( $_REQUEST['s'] ) && !$this->has_items() )
return;
@@ -218,7 +361,7 @@ class WP_List_Table {
- 'search-submit') ); ?>
+ 'search-submit') ); ?>
get_views();
- $views = apply_filters( 'views_' . $this->screen->id, $views );
+ /**
+ * Filter the list of available list table views.
+ *
+ * The dynamic portion of the hook name, `$this->screen->id`, refers
+ * to the ID of the current screen, usually a string.
+ *
+ * @since 3.5.0
+ *
+ * @param array $views An array of available list table views.
+ */
+ $views = apply_filters( "views_{$this->screen->id}", $views );
if ( empty( $views ) )
return;
+ $this->screen->render_screen_reader_content( 'heading_views' );
+
echo "
$view";
@@ -266,7 +421,7 @@ class WP_List_Table {
*
* @return array
*/
- function get_bulk_actions() {
+ protected function get_bulk_actions() {
return array();
}
@@ -274,13 +429,27 @@ class WP_List_Table {
* Display the bulk actions dropdown.
*
* @since 3.1.0
- * @access public
+ * @access protected
+ *
+ * @param string $which The location of the bulk actions: 'top' or 'bottom'.
+ * This is designated as optional for backwards-compatibility.
*/
- function bulk_actions() {
+ protected function bulk_actions( $which = '' ) {
if ( is_null( $this->_actions ) ) {
$no_new_actions = $this->_actions = $this->get_bulk_actions();
- // This filter can currently only be used to remove actions.
- $this->_actions = apply_filters( 'bulk_actions-' . $this->screen->id, $this->_actions );
+ /**
+ * Filter the list table Bulk Actions drop-down.
+ *
+ * The dynamic portion of the hook name, `$this->screen->id`, refers
+ * to the ID of the current screen, usually a string.
+ *
+ * This filter can currently only be used to remove bulk actions.
+ *
+ * @since 3.5.0
+ *
+ * @param array $actions An array of the available bulk actions.
+ */
+ $this->_actions = apply_filters( "bulk_actions-{$this->screen->id}", $this->_actions );
$this->_actions = array_intersect_assoc( $this->_actions, $no_new_actions );
$two = '';
} else {
@@ -290,18 +459,19 @@ class WP_List_Table {
if ( empty( $this->_actions ) )
return;
- echo "