X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/6c8f14c09105d0afa4c1574215c59b5021040e76..refs/tags/wordpress-4.0:/wp-admin/includes/screen.php?ds=sidebyside diff --git a/wp-admin/includes/screen.php b/wp-admin/includes/screen.php index 4a409e8c..35f42671 100644 --- a/wp-admin/includes/screen.php +++ b/wp-admin/includes/screen.php @@ -20,8 +20,22 @@ function get_column_headers( $screen ) { static $column_headers = array(); - if ( ! isset( $column_headers[ $screen->id ] ) ) - $column_headers[ $screen->id ] = apply_filters( 'manage_' . $screen->id . '_columns', array() ); + if ( ! isset( $column_headers[ $screen->id ] ) ) { + + /** + * Filter the column headers for a list table on a specific screen. + * + * The dynamic portion of the hook name, $screen->id, refers to the + * ID of a specific screen. For example, the screen ID for the Posts + * list table is edit-post, so the filter for that screen would be + * manage_edit-post_columns. + * + * @since 3.0.0 + * + * @param array $columns An array of column headers. Default empty. + */ + $column_headers[ $screen->id ] = apply_filters( "manage_{$screen->id}_columns", array() ); + } return $column_headers[ $screen->id ]; } @@ -101,9 +115,28 @@ function get_hidden_meta_boxes( $screen ) { else $hidden = array( 'slugdiv' ); } + + /** + * Filter the default list of hidden meta boxes. + * + * @since 3.1.0 + * + * @param array $hidden An array of meta boxes hidden by default. + * @param WP_Screen $screen WP_Screen object of the current screen. + */ $hidden = apply_filters( 'default_hidden_meta_boxes', $hidden, $screen ); } + /** + * Filter the list of hidden meta boxes. + * + * @since 3.3.0 + * + * @param array $hidden An array of hidden meta boxes. + * @param WP_Screen $screen WP_Screen object of the current screen. + * @param bool $use_defaults Whether to show the default meta boxes. + * Default true. + */ return apply_filters( 'hidden_meta_boxes', $hidden, $screen, $use_defaults ); } @@ -124,52 +157,6 @@ function add_screen_option( $option, $args = array() ) { $current_screen->add_option( $option, $args ); } -/** - * Displays a screen icon. - * - * @uses get_screen_icon() - * @since 2.7.0 - * - * @param string|WP_Screen $screen Optional. Accepts a screen object (and defaults to the current screen object) - * which it uses to determine an icon HTML ID. Or, if a string is provided, it is used to form the icon HTML ID. - */ -function screen_icon( $screen = '' ) { - echo get_screen_icon( $screen ); -} - -/** - * Gets a screen icon. - * - * @since 3.2.0 - * - * @param string|WP_Screen $screen Optional. Accepts a screen object (and defaults to the current screen object) - * which it uses to determine an icon HTML ID. Or, if a string is provided, it is used to form the icon HTML ID. - * @return string HTML for the screen icon. - */ -function get_screen_icon( $screen = '' ) { - if ( empty( $screen ) ) - $screen = get_current_screen(); - elseif ( is_string( $screen ) ) - $icon_id = $screen; - - $class = 'icon32'; - - if ( empty( $icon_id ) ) { - if ( ! empty( $screen->parent_base ) ) - $icon_id = $screen->parent_base; - else - $icon_id = $screen->base; - - if ( 'page' == $screen->post_type ) - $icon_id = 'edit-pages'; - - if ( $screen->post_type ) - $class .= ' ' . sanitize_html_class( 'icon32-posts-' . $screen->post_type ); - } - - return '

'; -} - /** * Get the current screen object * @@ -319,20 +306,20 @@ final class WP_Screen { /** * The help tab data associated with the screen, if any. - * - * @since 3.3.0 - * @var array - * @access private - */ + * + * @since 3.3.0 + * @var array + * @access private + */ private $_help_tabs = array(); - /** + /** * The help sidebar data associated with screen, if any. * * @since 3.3.0 * @var string * @access private - */ + */ private $_help_sidebar = ''; /** @@ -376,16 +363,16 @@ final class WP_Screen { */ private $_screen_settings; - /** + /** * Fetches a screen object. - * - * @since 3.3.0 + * + * @since 3.3.0 * @access public - * + * * @param string $hook_name Optional. The hook name (also known as the hook suffix) used to determine the screen. * Defaults to the current $hook_suffix global. * @return WP_Screen Screen object. - */ + */ public static function get( $hook_name = '' ) { if ( is_a( $hook_name, 'WP_Screen' ) ) @@ -427,13 +414,13 @@ final class WP_Screen { if ( 'edit-comments' != $id && 'edit-tags' != $id && 'edit-' == substr( $id, 0, 5 ) ) { $maybe = substr( $id, 5 ); if ( taxonomy_exists( $maybe ) ) { - $id = 'edit-tags'; + $id = 'edit-tags'; $taxonomy = $maybe; } elseif ( post_type_exists( $maybe ) ) { $id = 'edit'; $post_type = $maybe; } - } + } if ( ! $in_admin ) $in_admin = 'site'; @@ -480,7 +467,7 @@ final class WP_Screen { $post_type = 'post'; break; } - } + } switch ( $base ) { case 'post' : @@ -513,7 +500,7 @@ final class WP_Screen { } elseif ( 'user' == $in_admin ) { $id .= '-user'; $base .= '-user'; - } + } if ( isset( self::$_registry[ $id ] ) ) { $screen = self::$_registry[ $id ]; @@ -535,7 +522,7 @@ final class WP_Screen { self::$_registry[ $id ] = $screen; return $screen; - } + } /** * Makes the screen object the current screen. @@ -543,11 +530,19 @@ final class WP_Screen { * @see set_current_screen() * @since 3.3.0 */ - function set_current_screen() { + public function set_current_screen() { global $current_screen, $taxnow, $typenow; $current_screen = $this; $taxnow = $this->taxonomy; $typenow = $this->post_type; + + /** + * Fires after the current screen has been set. + * + * @since 3.0.0 + * + * @param WP_Screen $current_screen Current WP_Screen object. + */ do_action( 'current_screen', $current_screen ); } @@ -586,7 +581,7 @@ final class WP_Screen { * @param WP_Screen $screen A screen object. * @param string $help Help text. */ - static function add_old_compat_help( $screen, $help ) { + public static function add_old_compat_help( $screen, $help ) { self::$_old_compat_help[ $screen->id ] = $help; } @@ -598,7 +593,7 @@ final class WP_Screen { * * @param string $parent_file The parent file of the screen. Typically the $parent_file global. */ - function set_parentage( $parent_file ) { + public function set_parentage( $parent_file ) { $this->parent_file = $parent_file; list( $this->parent_base ) = explode( '?', $parent_file ); $this->parent_base = str_replace( '.php', '', $this->parent_base ); @@ -617,6 +612,37 @@ final class WP_Screen { $this->_options[ $option ] = $args; } + /** + * Remove an option from the screen. + * + * @since 3.8.0 + * + * @param string $option Option ID. + */ + public function remove_option( $option ) { + unset( $this->_options[ $option ] ); + } + + /** + * Remove all options from the screen. + * + * @since 3.8.0 + */ + public function remove_options() { + $this->_options = array(); + } + + /** + * Get the options registered for the screen. + * + * @since 3.8.0 + * + * @return array Options with arguments. + */ + public function get_options() { + return $this->_options; + } + /** * Gets the arguments for an option for the screen. * @@ -762,14 +788,46 @@ final class WP_Screen { */ public function render_screen_meta() { - // Call old contextual_help_list filter. + /** + * Filter the legacy contextual help list. + * + * @since 2.7.0 + * @deprecated 3.3.0 Use get_current_screen()->add_help_tab() or + * get_current_screen()->remove_help_tab() instead. + * + * @param array $old_compat_help Old contextual help. + * @param WP_Screen $this Current WP_Screen instance. + */ self::$_old_compat_help = apply_filters( 'contextual_help_list', self::$_old_compat_help, $this ); $old_help = isset( self::$_old_compat_help[ $this->id ] ) ? self::$_old_compat_help[ $this->id ] : ''; + + /** + * Filter the legacy contextual help text. + * + * @since 2.7.0 + * @deprecated 3.3.0 Use get_current_screen()->add_help_tab() or + * get_current_screen()->remove_help_tab() instead. + * + * @param string $old_help Help text that appears on the screen. + * @param string $screen_id Screen ID. + * @param WP_Screen $this Current WP_Screen instance. + * + */ $old_help = apply_filters( 'contextual_help', $old_help, $this->id, $this ); // Default help only if there is no old-style block of text and no new-style help tabs. if ( empty( $old_help ) && ! $this->get_help_tabs() ) { + + /** + * Filter the default legacy contextual help text. + * + * @since 2.8.0 + * @deprecated 3.3.0 Use get_current_screen()->add_help_tab() or + * get_current_screen()->remove_help_tab() instead. + * + * @param string $old_help_default Default contextual help text. + */ $default_help = apply_filters( 'default_contextual_help', '' ); if ( $default_help ) $old_help = '

' . $default_help . '

'; @@ -850,7 +908,18 @@ final class WP_Screen { id, $this ); if ( ! empty( $columns ) && isset( $columns[ $this->id ] ) ) @@ -898,17 +967,46 @@ final class WP_Screen { $show_screen = ! empty( $wp_meta_boxes[ $this->id ] ) || $columns || $this->get_option( 'per_page' ); - $this->_screen_settings = apply_filters( 'screen_settings', '', $this ); - - switch ( $this->id ) { + switch ( $this->base ) { case 'widgets': $this->_screen_settings = '

' . __('Enable accessibility mode') . '' . __('Disable accessibility mode') . "

\n"; break; + case 'post' : + $expand = ''; + $this->_screen_settings = $expand; + break; + default: + $this->_screen_settings = ''; + break; } + /** + * Filter the screen settings text displayed in the Screen Options tab. + * + * This filter is currently only used on the Widgets screen to enable + * accessibility mode. + * + * @since 3.0.0 + * + * @param string $screen_settings Screen settings. + * @param WP_Screen $this WP_Screen object. + */ + $this->_screen_settings = apply_filters( 'screen_settings', $this->_screen_settings, $this ); + if ( $this->_screen_settings || $this->_options ) $show_screen = true; + /** + * Filter whether to show the Screen Options tab. + * + * @since 3.2.0 + * + * @param bool $show_screen Whether to show Screen Options tab. + * Default true. + * @param WP_Screen $this Current WP_Screen instance. + */ $this->_show_screen_options = apply_filters( 'screen_options_show_screen', $show_screen, $this ); return $this->_show_screen_options; } @@ -919,7 +1017,7 @@ final class WP_Screen { * @since 3.3.0 */ public function render_screen_options() { - global $wp_meta_boxes, $wp_list_table; + global $wp_meta_boxes; $columns = get_column_headers( $this ); $hidden = get_hidden_columns( $this ); @@ -997,7 +1095,7 @@ final class WP_Screen { * * @since 3.3.0 */ - function render_screen_layout() { + public function render_screen_layout() { if ( ! $this->get_option('layout_columns') ) return; @@ -1026,7 +1124,7 @@ final class WP_Screen { * * @since 3.3.0 */ - function render_per_page_options() { + public function render_per_page_options() { if ( ! $this->get_option( 'per_page' ) ) return; @@ -1045,16 +1143,22 @@ final class WP_Screen { if ( 'edit_comments_per_page' == $option ) { $comment_status = isset( $_REQUEST['comment_status'] ) ? $_REQUEST['comment_status'] : 'all'; + + /** This filter is documented in wp-admin/includes/class-wp-comments-list-table.php */ $per_page = apply_filters( 'comments_per_page', $per_page, $comment_status ); } elseif ( 'categories_per_page' == $option ) { + /** This filter is documented in wp-admin/includes/class-wp-terms-list-table.php */ $per_page = apply_filters( 'edit_categories_per_page', $per_page ); } else { + /** This filter is documented in wp-admin/includes/class-wp-list-table.php */ $per_page = apply_filters( $option, $per_page ); } // Back compat - if ( isset( $this->post_type ) ) + if ( isset( $this->post_type ) ) { + /** This filter is documented in wp-admin/includes/class-wp-posts-list-table.php */ $per_page = apply_filters( 'edit_posts_per_page', $per_page, $this->post_type ); + } ?>