X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/9e77185fafaf4e60e2b73821e0e4b9b1a11fb85f..16e7b37c7914d753890c1a05a9335f3b43751eb8:/wp-admin/includes/class-wp-list-table.php diff --git a/wp-admin/includes/class-wp-list-table.php b/wp-admin/includes/class-wp-list-table.php index 8d2bc51e..bf642acb 100644 --- a/wp-admin/includes/class-wp-list-table.php +++ b/wp-admin/includes/class-wp-list-table.php @@ -1,69 +1,111 @@ 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. * @@ -81,10 +123,10 @@ class WP_List_Table { * 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 + * @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. + * the _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. @@ -114,10 +156,17 @@ 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. + * Make private properties readable for backward compatibility. * * @since 4.0.0 * @access public @@ -126,25 +175,29 @@ class WP_List_Table { * @return mixed Property. */ public function __get( $name ) { - return $this->$name; + if ( in_array( $name, $this->compat_fields ) ) { + return $this->$name; + } } /** - * Make private properties settable for backwards compatibility. + * Make private properties settable for backward compatibility. * * @since 4.0.0 * @access public * - * @param string $name Property to set. + * @param string $name Property to check if set. * @param mixed $value Property value. * @return mixed Newly-set property. */ public function __set( $name, $value ) { - return $this->$name = $value; + if ( in_array( $name, $this->compat_fields ) ) { + return $this->$name = $value; + } } /** - * Make private properties checkable for backwards compatibility. + * Make private properties checkable for backward compatibility. * * @since 4.0.0 * @access public @@ -153,11 +206,13 @@ class WP_List_Table { * @return bool Whether the property is set. */ public function __isset( $name ) { - return isset( $this->$name ); + if ( in_array( $name, $this->compat_fields ) ) { + return isset( $this->$name ); + } } /** - * Make private properties un-settable for backwards compatibility. + * Make private properties un-settable for backward compatibility. * * @since 4.0.0 * @access public @@ -165,11 +220,13 @@ class WP_List_Table { * @param string $name Property to unset. */ public function __unset( $name ) { - unset( $this->$name ); + if ( in_array( $name, $this->compat_fields ) ) { + unset( $this->$name ); + } } /** - * Make private/protected methods readable for backwards compatibility. + * Make private/protected methods readable for backward compatibility. * * @since 4.0.0 * @access public @@ -179,12 +236,14 @@ class WP_List_Table { * @return mixed|bool Return value of the callback, false otherwise. */ public function __call( $name, $arguments ) { - return call_user_func_array( array( $this, $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 @@ -209,8 +268,10 @@ class WP_List_Table { /** * 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. */ protected function set_pagination_args( $args ) { $args = wp_parse_args( $args, array( @@ -223,7 +284,7 @@ class WP_List_Table { $args['total_pages'] = ceil( $args['total_items'] / $args['per_page'] ); // 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'] ) { + if ( ! headers_sent() && ! wp_doing_ajax() && $args['total_pages'] > 0 && $this->get_pagenum() > $args['total_pages'] ) { wp_redirect( add_query_arg( 'paged', $args['total_pages'] ) ); exit; } @@ -232,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. */ public function get_pagination_arg( $key ) { - if ( 'page' == $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]; + } } /** @@ -271,13 +335,13 @@ class WP_List_Table { } /** - * Display the search box. + * Displays the search box. * * @since 3.1.0 * @access public * - * @param string $text The search button text - * @param string $input_id The search input id + * @param string $text The 'submit' button label. + * @param string $input_id ID attribute value for the search input field. */ public function search_box( $text, $input_id ) { if ( empty( $_REQUEST['s'] ) && !$this->has_items() ) @@ -295,9 +359,9 @@ class WP_List_Table { echo ''; ?> get_views(); /** - * Filter the list of available list table views. + * Filters the list of available list table views. * - * The dynamic portion of the hook name, $this->screen->id, refers + * 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 @@ -338,6 +402,8 @@ class WP_List_Table { if ( empty( $views ) ) return; + $this->screen->render_screen_reader_content( 'heading_views' ); + echo "