Make WordPress Core

Changeset 19051


Ignore:
Timestamp:
10/24/2011 06:40:15 AM (15 years ago)
Author:
nacin
Message:

screen.php tidying. Doc fixes and improvements. Improve logic in ::show_screen_options(). Remove regex in ::set_parentage(). Better variable names. Streamline get_screen_icon(). Whitespace. see #18785.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/screen.php

    r19050 r19051  
    1212 * @since 2.7.0
    1313 *
    14  * @param string|object $screen The screen you want the headers for
     14 * @param string|WP_Screen $screen The screen you want the headers for
    1515 * @return array Containing the headers in the format id => UI String
    1616 */
     
    3232 * @since 2.7.0
    3333 *
    34  * @param string|object $screen The screen you want the hidden columns for
     34 * @param string|WP_Screen $screen The screen you want the hidden columns for
    3535 * @return array
    3636 */
     
    4343
    4444/**
    45  * {@internal Missing Short Description}}
     45 * Prints the meta box preferences for screen meta.
    4646 *
    4747 * @since 2.7.0
    4848 *
    49  * @param unknown_type $screen
     49 * @param string|WP_Screen $screen
    5050 */
    5151function meta_box_prefs( $screen ) {
    5252        global $wp_meta_boxes;
    5353
    54         if ( is_string($screen) )
    55                 $screen = convert_to_screen($screen);
     54        if ( is_string( $screen ) )
     55                $screen = convert_to_screen( $screen );
    5656
    5757        if ( empty($wp_meta_boxes[$screen->id]) )
     
    8282 * @since 2.7.0
    8383 *
    84  * @param string|object $screen Screen identifier
     84 * @param string|WP_Screen $screen Screen identifier
    8585 * @return array Hidden Meta Boxes
    8686 */
     
    113113 * @since 3.0.0
    114114 *
    115  * @param string $screen The name of the screen
     115 * @param string $hook_name The hook name (also known as the hook suffix) used to determine the screen.
    116116 * @return object An object containing the safe screen name and id
    117117 */
    118 function convert_to_screen( $screen ) {
    119         $screen = str_replace( array('.php', '-new', '-add', '-network', '-user' ), '', $screen);
     118function convert_to_screen( $hook_suffix ) {
     119        $screen = str_replace( array('.php', '-new', '-add', '-network', '-user' ), '', $hook_suffix);
    120120
    121121        if ( is_network_admin() )
     
    145145                $screen = convert_to_screen( $screen );
    146146
    147         WP_Screen::add_old_compat_help( $screen->id, $help );
     147        WP_Screen::add_old_compat_help( $screen, $help );
    148148}
    149149
     
    166166}
    167167
     168/**
     169 * Displays a screen icon.
     170 *
     171 * @uses get_screen_icon()
     172 * @since 2.7.0
     173 *
     174 * @param string|WP_Screen $screen Optional. Accepts a screen object (and defaults to the current screen object)
     175 *      which it uses to determine an icon HTML ID. Or, if a string is provided, it is used to form the icon HTML ID.
     176 */
    168177function screen_icon( $screen = '' ) {
    169178        echo get_screen_icon( $screen );
    170179}
    171180
     181/**
     182 * Gets a screen icon.
     183 *
     184 * @since 3.2.0
     185 *
     186 * @param string|WP_Screen $screen Optional. Accepts a screen object (and defaults to the current screen object)
     187 *      which it uses to determine an icon HTML ID. Or, if a string is provided, it is used to form the icon HTML ID.
     188 * @return string HTML for the screen icon.
     189 */
    172190function get_screen_icon( $screen = '' ) {
    173         global $current_screen, $typenow;
    174 
    175         if ( empty($screen) )
    176                 $screen = $current_screen;
    177         elseif ( is_string($screen) )
    178                 $name = $screen;
     191        if ( empty( $screen ) )
     192                $screen = get_current_screen();
     193        elseif ( is_string( $screen ) )
     194                $icon_id = $screen;
    179195
    180196        $class = 'icon32';
    181197
    182         if ( empty($name) ) {
    183                 if ( !empty($screen->parent_base) )
    184                         $name = $screen->parent_base;
     198        if ( empty( $icon_id ) ) {
     199                if ( ! empty( $screen->parent_base ) )
     200                        $icon_id = $screen->parent_base;
    185201                else
    186                         $name = $screen->base;
    187 
    188                 if ( 'edit' == $name && isset($screen->post_type) && 'page' == $screen->post_type )
    189                         $name = 'edit-pages';
    190 
    191                 $post_type = '';
    192                 if ( isset( $screen->post_type ) )
    193                         $post_type = $screen->post_type;
    194                 elseif ( $current_screen == $screen )
    195                         $post_type = $typenow;
    196                 if ( $post_type )
    197                         $class .= ' ' . sanitize_html_class( 'icon32-posts-' . $post_type );
    198         }
    199 
    200         return '<div id="icon-' . esc_attr( $name ) . '" class="' . $class . '"><br /></div>';
    201 }
    202 
    203 /**
    204  *  Get the current screen object
    205  *
    206  *  @since 3.1.0
     202                        $icon_id = $screen->base;
     203
     204                if ( ! empty( $screen->post_type ) && 'page' == $screen->post_type )
     205                        $icon_id = 'edit-pages';
     206
     207                if ( ! empty( $screen->post_type ) )
     208                        $class .= ' ' . sanitize_html_class( 'icon32-posts-' . $screen->post_type );
     209        }
     210
     211        return '<div id="icon-' . esc_attr( $icon_id ) . '" class="' . $class . '"><br /></div>';
     212}
     213
     214/**
     215 * Get the current screen object
     216 *
     217 * @since 3.1.0
    207218 *
    208219 * @return object Current screen object
     
    211222        global $current_screen;
    212223
    213         if ( !isset($current_screen) )
     224        if ( ! isset( $current_screen ) )
    214225                return null;
    215226
     
    221232 *
    222233 * @since 3.0.0
    223  *
    224234 * @uses $current_screen
    225235 *
    226  * @param string $id Screen id, optional.
    227  */
    228 function set_current_screen( $id =  '' ) {
     236 * @param string $hook_name Optional. The hook name (also known as the hook suffix) used to determine the screen.
     237 */
     238function set_current_screen( $hook_name =  '' ) {
    229239        global $current_screen;
    230240
    231         $current_screen = new WP_Screen( $id );
     241        $current_screen = new WP_Screen( $hook_name );
    232242
    233243        $current_screen = apply_filters('current_screen', $current_screen);
     
    235245
    236246/**
    237  * A class representing the current admin screen.
     247 * A class representing the admin screen.
    238248 *
    239249 * @since 3.3.0
     
    242252final class WP_Screen {
    243253        /**
    244          * Any action associated with the screen.  'add' for *-add.php and *-new.php screens.  Empty otherwise.
     254         * Any action associated with the screen. 'add' for *-add.php and *-new.php screens.  Empty otherwise.
    245255         *
    246256         * @since 3.3.0
     
    454464        }
    455465
     466        /**
     467         * Sets the old string-based contextual help for the screen.
     468         *
     469         * For backwards compatibility.
     470         *
     471         * @since 3.3.0
     472         *
     473         * @param WP_Screen $screen A screen object.
     474         * @param string $help Help text.
     475         */
    456476        static function add_old_compat_help( $screen, $help ) {
    457                 self::$_old_compat_help[ $screen ] = $help;     
     477                self::$_old_compat_help[ $screen->id ] = $help;
    458478        }
    459479
     
    468488        function set_parentage( $parent_file ) {
    469489                $this->parent_file = $parent_file;
    470                 $this->parent_base = preg_replace('/\?.*$/', '', $parent_file);
    471                 $this->parent_base = str_replace('.php', '', $this->parent_base);
     490                list( $this->parent_base ) = explode( '?', $parent_file );
     491                $this->parent_base = str_replace( '.php', '', $this->parent_base );
    472492        }
    473493
     
    490510         * @since 3.3.0
    491511         *
    492          * @param string 
     512         * @param string
    493513         */
    494514        public function get_option( $option, $key = false ) {
     
    641661
    642662        public function show_screen_options() {
    643                 global $wp_meta_boxes, $wp_list_table;
     663                global $wp_meta_boxes;
    644664
    645665                if ( is_bool( $this->_show_screen_options ) )
     
    648668                $columns = get_column_headers( $this );
    649669
    650                 $show_screen = false;
    651                 if ( ! empty( $wp_meta_boxes[ $this->id ] ) || ! empty( $columns ) )
    652                         $show_screen = true;
    653 
    654                 // Check if there are per-page options.
    655                 $show_screen = $show_screen || $this->get_option('per_page');
     670                $show_screen = ! empty( $wp_meta_boxes[ $this->id ] ) || $columns || $this->get_option( 'per_page' );
    656671
    657672                $this->_screen_settings = apply_filters( 'screen_settings', '', $this );
     
    660675                        case 'widgets':
    661676                                $this->_screen_settings = '<p><a id="access-on" href="widgets.php?widgets-access=on">' . __('Enable accessibility mode') . '</a><a id="access-off" href="widgets.php?widgets-access=off">' . __('Disable accessibility mode') . "</a></p>\n";
    662                                 $show_screen = true;
    663677                                break;
    664678                }
    665679
    666                 if ( ! empty( $this->_screen_settings ) )
    667                         $show_screen = true;
    668 
    669                 if ( ! empty( self::$_options[ $this->id ] ) )
     680                if ( $this->_screen_settings || self::$_options[ $this->id ] )
    670681                        $show_screen = true;
    671682
Note: See TracChangeset for help on using the changeset viewer.