WordPress.org

Make WordPress Core

Ticket #35229: 35229.2.diff

File 35229.2.diff, 16.4 KB (added by dd32, 4 years ago)
  • src/wp-admin/load-styles.php

     
    33/**
    44 * Disable error reporting
    55 *
    66 * Set this to error_reporting( -1 ) for debugging
    77 */
    88error_reporting(0);
    99
    1010/** Set ABSPATH for execution */
    1111define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
    1212define( 'WPINC', 'wp-includes' );
    1313
    1414require( ABSPATH . 'wp-admin/includes/noop.php' );
    1515require( ABSPATH . WPINC . '/script-loader.php' );
    1616require( ABSPATH . WPINC . '/version.php' );
    1717
    18 $load = preg_replace( '/[^a-z0-9,_-]+/i', '', $_GET['load'] );
     18$load = $_GET['load'];
     19if ( is_array( $load ) )
     20        $load = implode( '', $load );
     21
     22$load = preg_replace( '/[^a-z0-9,_-]+/i', '', $load );
    1923$load = array_unique( explode( ',', $load ) );
    2024
    2125if ( empty($load) )
    2226        exit;
    2327
    2428$compress = ( isset($_GET['c']) && $_GET['c'] );
    2529$force_gzip = ( $compress && 'gzip' == $_GET['c'] );
    2630$rtl = ( isset($_GET['dir']) && 'rtl' == $_GET['dir'] );
    2731$expires_offset = 31536000; // 1 year
    2832$out = '';
    2933
    3034$wp_styles = new WP_Styles();
    3135wp_default_styles($wp_styles);
    3236
    3337foreach ( $load as $handle ) {
    3438        if ( !array_key_exists($handle, $wp_styles->registered) )
    3539                continue;
    3640
    3741        $style = $wp_styles->registered[$handle];
     42
     43        if ( ! $style->src ) {
     44                continue;
     45        }
     46
    3847        $path = ABSPATH . $style->src;
    3948
    4049        if ( $rtl && ! empty( $style->extra['rtl'] ) ) {
    4150                // All default styles have fully independent RTL files.
    4251                $path = str_replace( '.min.css', '-rtl.min.css', $path );
    4352        }
    4453
    4554        $content = get_file( $path ) . "\n";
    4655
    4756        if ( strpos( $style->src, '/' . WPINC . '/css/' ) === 0 ) {
    4857                $content = str_replace( '../images/', '../' . WPINC . '/images/', $content );
    4958                $content = str_replace( '../js/tinymce/', '../' . WPINC . '/js/tinymce/', $content );
    5059                $content = str_replace( '../fonts/', '../' . WPINC . '/fonts/', $content );
    5160                $out .= $content;
    5261        } else {
  • src/wp-includes/script-loader.php

    function wp_default_styles( &$styles ) { 
    702702                        $subsets .= ',greek,greek-ext';
    703703                } elseif ( 'vietnamese' == $subset ) {
    704704                        $subsets .= ',vietnamese';
    705705                }
    706706
    707707                // Hotlink Open Sans, for now
    708708                $open_sans_font_url = "https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=$subsets";
    709709        }
    710710
    711711        // Register a stylesheet for the selected admin color scheme.
    712712        $styles->add( 'colors', true, array( 'wp-admin', 'buttons', 'open-sans', 'dashicons' ) );
    713713
    714714        $suffix = SCRIPT_DEBUG ? '' : '.min';
    715715
    716716        // Admin CSS
    717         $styles->add( 'wp-admin',            "/wp-admin/css/wp-admin$suffix.css", array( 'open-sans', 'dashicons' ) );
    718         $styles->add( 'login',               "/wp-admin/css/login$suffix.css", array( 'buttons', 'open-sans', 'dashicons' ) );
     717        $styles->add( 'common',              "/wp-admin/css/common$suffix.css" );
     718        $styles->add( 'forms',               "/wp-admin/css/forms$suffix.css" );
     719        $styles->add( 'admin-menu',          "/wp-admin/css/admin-menu$suffix.css" );
     720        $styles->add( 'dashboard',           "/wp-admin/css/dashboard$suffix.css" );
     721        $styles->add( 'list-tables',         "/wp-admin/css/list-tables$suffix.css" );
     722        $styles->add( 'edit',                "/wp-admin/css/edit$suffix.css" );
     723        $styles->add( 'revisions',           "/wp-admin/css/revisions$suffix.css" );
     724        $styles->add( 'media',               "/wp-admin/css/media$suffix.css" );
     725        $styles->add( 'themes',              "/wp-admin/css/themes$suffix.css" );
     726        $styles->add( 'about',               "/wp-admin/css/about$suffix.css" );
     727        $styles->add( 'nav-menus',           "/wp-admin/css/nav-menus$suffix.css" );
     728        $styles->add( 'widgets',             "/wp-admin/css/widgets$suffix.css" );
     729        $styles->add( 'site-icon',           "/wp-admin/css/site-icon$suffix.css" );
     730        $styles->add( 'l10n',                "/wp-admin/css/l10n$suffix.css" );
     731
     732        $styles->add( 'wp-admin', false, array( 'common', 'forms', 'admin-menu', 'dashboard', 'list-tables', 'edit', 'revisions', 'media', 'themes', 'about', 'nav-menus', 'widgets', 'site-icon', 'l10n', 'open-sans', 'dashicons' ) );
     733
     734        $styles->add( 'login',               "/wp-admin/css/login$suffix.css", array( 'buttons', 'forms', 'l10n', 'open-sans', 'dashicons' ) );
    719735        $styles->add( 'install',             "/wp-admin/css/install$suffix.css", array( 'buttons', 'open-sans' ) );
    720736        $styles->add( 'wp-color-picker',     "/wp-admin/css/color-picker$suffix.css" );
    721737        $styles->add( 'customize-controls',  "/wp-admin/css/customize-controls$suffix.css", array( 'wp-admin', 'colors', 'ie', 'imgareaselect' ) );
    722738        $styles->add( 'customize-widgets',   "/wp-admin/css/customize-widgets$suffix.css", array( 'wp-admin', 'colors' ) );
    723739        $styles->add( 'customize-nav-menus', "/wp-admin/css/customize-nav-menus$suffix.css", array( 'wp-admin', 'colors' ) );
    724740        $styles->add( 'press-this',          "/wp-admin/css/press-this$suffix.css", array( 'open-sans', 'buttons' ) );
    725741
    726742        $styles->add( 'ie', "/wp-admin/css/ie$suffix.css" );
    727743        $styles->add_data( 'ie', 'conditional', 'lte IE 7' );
    728744
    729745        // Common dependencies
    730746        $styles->add( 'buttons',   "/wp-includes/css/buttons$suffix.css" );
    731747        $styles->add( 'dashicons', "/wp-includes/css/dashicons$suffix.css" );
    732748        $styles->add( 'open-sans', $open_sans_font_url );
    733749
    function wp_default_styles( &$styles ) { 
    745761        $styles->add( 'imgareaselect',       '/wp-includes/js/imgareaselect/imgareaselect.css', array(), '0.9.8' );
    746762        $styles->add( 'wp-jquery-ui-dialog', "/wp-includes/css/jquery-ui-dialog$suffix.css", array( 'dashicons' ) );
    747763        $styles->add( 'mediaelement',        "/wp-includes/js/mediaelement/mediaelementplayer.min.css", array(), '2.18.1' );
    748764        $styles->add( 'wp-mediaelement',     "/wp-includes/js/mediaelement/wp-mediaelement.css", array( 'mediaelement' ) );
    749765        $styles->add( 'thickbox',            '/wp-includes/js/thickbox/thickbox.css', array( 'dashicons' ) );
    750766
    751767        // Deprecated CSS
    752768        $styles->add( 'media',      "/wp-admin/css/deprecated-media$suffix.css" );
    753769        $styles->add( 'farbtastic', '/wp-admin/css/farbtastic.css', array(), '1.3u1' );
    754770        $styles->add( 'jcrop',      "/wp-includes/js/jcrop/jquery.Jcrop.min.css", array(), '0.9.12' );
    755771        $styles->add( 'colors-fresh', false, array( 'wp-admin', 'buttons' ) ); // Old handle.
    756772
    757773        // RTL CSS
    758774        $rtl_styles = array(
    759775                // wp-admin
    760                 'wp-admin', 'install', 'wp-color-picker', 'customize-controls', 'customize-widgets', 'customize-nav-menus', 'ie', 'login', 'press-this',
     776                'common', 'forms', 'admin-menu', 'dashboard', 'list-tables', 'edit', 'revisions', 'media', 'themes', 'about', 'nav-menus',
     777                'widgets', 'site-icon', 'l10n', 'install', 'wp-color-picker', 'customize-controls', 'customize-widgets', 'customize-nav-menus',
     778                'ie', 'login', 'press-this',
    761779                // wp-includes
    762780                'buttons', 'admin-bar', 'wp-auth-check', 'editor-buttons', 'media-views', 'wp-pointer',
    763781                'wp-jquery-ui-dialog',
    764782                // deprecated
    765783                'media', 'farbtastic',
    766784        );
    767785
    768786        foreach ( $rtl_styles as $rtl_style ) {
    769787                $styles->add_data( $rtl_style, 'rtl', 'replace' );
    770788                if ( $suffix ) {
    771789                        $styles->add_data( $rtl_style, 'suffix', $suffix );
    772790                }
    773791        }
    774792}
    775793
    function print_admin_styles() { 
    10841102 *
    10851103 * @since 3.3.0
    10861104 *
    10871105 * @global WP_Styles $wp_styles
    10881106 * @global bool      $concatenate_scripts
    10891107 *
    10901108 * @return array|void
    10911109 */
    10921110function print_late_styles() {
    10931111        global $wp_styles, $concatenate_scripts;
    10941112
    10951113        if ( ! ( $wp_styles instanceof WP_Styles ) ) {
    10961114                return;
    10971115        }
    10981116
     1117        script_concat_settings();
    10991118        $wp_styles->do_concat = $concatenate_scripts;
    11001119        $wp_styles->do_footer_items();
    11011120
    11021121        /**
    11031122         * Filter whether to print the styles queued too late for the HTML head.
    11041123         *
    11051124         * @since 3.3.0
    11061125         *
    11071126         * @param bool $print Whether to print the 'late' styles. Default true.
    11081127         */
    11091128        if ( apply_filters( 'print_late_styles', true ) ) {
    11101129                _print_styles();
    11111130        }
    11121131
    11131132        $wp_styles->reset();
    function print_late_styles() { 
    11181137 * Print styles (internal use only)
    11191138 *
    11201139 * @ignore
    11211140 *
    11221141 * @global bool $compress_css
    11231142 */
    11241143function _print_styles() {
    11251144        global $compress_css;
    11261145
    11271146        $wp_styles = wp_styles();
    11281147
    11291148        $zip = $compress_css ? 1 : 0;
    11301149        if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
    11311150                $zip = 'gzip';
    11321151
    1133         if ( !empty($wp_styles->concat) ) {
     1152        if ( $concat = trim( $wp_styles->concat, ', ' ) ) {
    11341153                $dir = $wp_styles->text_direction;
    11351154                $ver = $wp_styles->default_version;
    1136                 $href = $wp_styles->base_url . "/wp-admin/load-styles.php?c={$zip}&dir={$dir}&load=" . trim($wp_styles->concat, ', ') . '&ver=' . $ver;
     1155
     1156                $concat = str_split( $concat, 128 );
     1157                $concat = 'load%5B%5D=' . implode( '&load%5B%5D=', $concat );
     1158
     1159                $href = $wp_styles->base_url . "/wp-admin/load-styles.php?c={$zip}&dir={$dir}&" . $concat . '&ver=' . $ver;
    11371160                echo "<link rel='stylesheet' href='" . esc_attr($href) . "' type='text/css' media='all' />\n";
    11381161
    11391162                if ( !empty($wp_styles->print_code) ) {
    11401163                        echo "<style type='text/css'>\n";
    11411164                        echo $wp_styles->print_code;
    11421165                        echo "\n</style>\n";
    11431166                }
    11441167        }
    11451168
    11461169        if ( !empty($wp_styles->print_html) )
    11471170                echo $wp_styles->print_html;
    11481171}
    11491172
    11501173/**
    11511174 * Determine the concatenation and compression settings for scripts and styles.
    11521175 *
    11531176 * @since 2.8.0
    11541177 *
    11551178 * @global bool $concatenate_scripts
    11561179 * @global bool $compress_scripts
    11571180 * @global bool $compress_css
    11581181 */
    11591182function script_concat_settings() {
    11601183        global $concatenate_scripts, $compress_scripts, $compress_css;
    11611184
    11621185        $compressed_output = ( ini_get('zlib.output_compression') || 'ob_gzhandler' == ini_get('output_handler') );
    11631186
    11641187        if ( ! isset($concatenate_scripts) ) {
    11651188                $concatenate_scripts = defined('CONCATENATE_SCRIPTS') ? CONCATENATE_SCRIPTS : true;
    1166                 if ( ! is_admin() || ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) )
     1189                if ( ( ! is_admin() && ! did_action( 'login_init' ) ) || ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) )
    11671190                        $concatenate_scripts = false;
    11681191        }
    11691192
    11701193        if ( ! isset($compress_scripts) ) {
    11711194                $compress_scripts = defined('COMPRESS_SCRIPTS') ? COMPRESS_SCRIPTS : true;
    11721195                if ( $compress_scripts && ( ! get_site_option('can_compress_scripts') || $compressed_output ) )
    11731196                        $compress_scripts = false;
    11741197        }
    11751198
    11761199        if ( ! isset($compress_css) ) {
    11771200                $compress_css = defined('COMPRESS_CSS') ? COMPRESS_CSS : true;
    11781201                if ( $compress_css && ( ! get_site_option('can_compress_scripts') || $compressed_output ) )
    11791202                        $compress_css = false;
    11801203        }
    11811204}
  • Gruntfile.js

    module.exports = function(grunt) { 
    8181                                                        '!wp-includes/js/backbone.js',
    8282                                                        '!wp-includes/js/underscore.js',
    8383                                                        '!wp-includes/js/jquery/jquery.masonry.js',
    8484                                                        '!wp-includes/js/jquery/ui/*.js',
    8585                                                        '!wp-includes/js/tinymce/tinymce.js',
    8686                                                        '!wp-includes/version.php' // Exclude version.php
    8787                                                ],
    8888                                                dest: BUILD_DIR
    8989                                        },
    9090                                        {
    9191                                                src: 'wp-config-sample.php',
    9292                                                dest: BUILD_DIR
    9393                                        }
    9494                                ]
    9595                        },
    96                         'wp-admin-rtl': {
     96                        'wp-admin-css-compat-rtl': {
    9797                                options: {
    9898                                        processContent: function( src ) {
    9999                                                return src.replace( /\.css/g, '-rtl.css' );
    100100                                        }
    101101                                },
    102102                                src: SOURCE_DIR + 'wp-admin/css/wp-admin.css',
    103103                                dest: BUILD_DIR + 'wp-admin/css/wp-admin-rtl.css'
    104104                        },
     105                        'wp-admin-css-compat-min': {
     106                                options: {
     107                                        processContent: function( src ) {
     108                                                return src.replace( /\.css/g, '.min.css' );
     109                                        }
     110                                },
     111                                files: [
     112                                        {
     113                                                src: SOURCE_DIR + 'wp-admin/css/wp-admin.css',
     114                                                dest: BUILD_DIR + 'wp-admin/css/wp-admin.min.css'
     115                                        },
     116                                        {
     117                                                src:  BUILD_DIR + 'wp-admin/css/wp-admin-rtl.css',
     118                                                dest: BUILD_DIR + 'wp-admin/css/wp-admin-rtl.min.css'
     119                                        }
     120                                ]
     121                        },
    105122                        version: {
    106123                                options: {
    107124                                        processContent: function( src ) {
    108125                                                return src.replace( /^\$wp_version = '(.+?)';/m, function( str, version ) {
    109126                                                        version = version.replace( /-src$/, '' );
    110127
    111128                                                        // If the version includes an SVN commit (-12345), it's not a released alpha/beta. Append a date.
    112129                                                        version = version.replace( /-[\d]{5}$/, '-' + grunt.template.today( 'yyyymmdd' ) );
    113130
    114131                                                        /* jshint quotmark: true */
    115132                                                        return "$wp_version = '" + version + "';";
    116133                                                });
    117134                                        }
    118135                                },
    119136                                src: SOURCE_DIR + 'wp-includes/version.php',
    module.exports = function(grunt) { 
    142159                browserify: mediaConfig,
    143160                sass: {
    144161                        colors: {
    145162                                expand: true,
    146163                                cwd: SOURCE_DIR,
    147164                                dest: BUILD_DIR,
    148165                                ext: '.css',
    149166                                src: ['wp-admin/css/colors/*/colors.scss'],
    150167                                options: {
    151168                                        outputStyle: 'expanded'
    152169                                }
    153170                        }
    154171                },
    155172                cssmin: {
    156173                        options: {
    157                                 'wp-admin': ['wp-admin', 'color-picker', 'customize-controls', 'customize-widgets', 'customize-nav-menus', 'ie', 'install', 'login', 'press-this', 'deprecated-*'],
    158174                                compatibility: 'ie7'
    159175                        },
    160176                        core: {
    161177                                expand: true,
    162178                                cwd: SOURCE_DIR,
    163179                                dest: BUILD_DIR,
    164180                                ext: '.min.css',
    165181                                src: [
    166                                         'wp-admin/css/{<%= cssmin.options["wp-admin"] %>}.css',
     182                                        'wp-admin/css/*.css',
     183                                        '!wp-admin/css/wp-admin*.css',
    167184                                        'wp-includes/css/*.css'
    168185                                ]
    169186                        },
    170187                        rtl: {
    171188                                expand: true,
    172189                                cwd: BUILD_DIR,
    173190                                dest: BUILD_DIR,
    174191                                ext: '.min.css',
    175192                                src: [
    176                                         'wp-admin/css/{<%= cssmin.options["wp-admin"] %>}-rtl.css',
     193                                        'wp-admin/css/*-rtl.css',
     194                                        '!wp-admin/css/wp-admin*.css',
    177195                                        'wp-includes/css/*-rtl.css'
    178196                                ]
    179197                        },
    180198                        colors: {
    181199                                expand: true,
    182200                                cwd: BUILD_DIR,
    183201                                dest: BUILD_DIR,
    184202                                ext: '.min.css',
    185203                                src: [
    186204                                        'wp-admin/css/colors/*/*.css'
    187205                                ]
    188206                        }
    189207                },
    190208                rtlcss: {
    191209                        options: {
    module.exports = function(grunt) { 
    635653
    636654                grunt.task.run( '_' + this.nameArgs );
    637655        } );
    638656
    639657        grunt.registerTask( 'precommit', 'Runs front-end dev/test tasks in preparation for a commit.', [
    640658                'postcss:core',
    641659                'imagemin:core',
    642660                'browserify',
    643661                'jshint:corejs',
    644662                'uglify:bookmarklet',
    645663                'qunit:compiled'
    646664        ] );
    647665
    648666        grunt.registerTask( 'copy:all', [
    649667                'copy:files',
    650                 'copy:wp-admin-rtl',
     668                'copy:wp-admin-css-compat-rtl',
     669                'copy:wp-admin-css-compat-min',
    651670                'copy:version'
    652671        ] );
    653672
    654673        grunt.registerTask( 'build', [
    655674                'clean:all',
    656675                'copy:all',
    657676                'cssmin:core',
    658677                'colors',
    659678                'rtl',
    660679                'cssmin:rtl',
    661680                'cssmin:colors',
    662681                'uglify:core',
    663682                'uglify:embed',
    664683                'uglify:jqueryui',
    665684                'concat:tinymce',
  • src/wp-admin/css/login.css

     
    1 @import url(forms.css);
    2 @import url(l10n.css);
    3 
    41html,
    52body {
    63        height: 100%;
    74        margin: 0;
    85        padding: 0;
    96}
    107
    118html {
    129        background: #f1f1f1;
    1310}
    1411
    1512body {
    1613        background: #f1f1f1;
    1714        min-width: 0;
    1815        color: #444;
  • src/wp-login.php

    function login_header( $title = 'Log In' 
    5656        if ( $shake_error_codes && $wp_error->get_error_code() && in_array( $wp_error->get_error_code(), $shake_error_codes ) )
    5757                add_action( 'login_head', 'wp_shake_js', 12 );
    5858
    5959        ?><!DOCTYPE html>
    6060        <!--[if IE 8]>
    6161                <html xmlns="http://www.w3.org/1999/xhtml" class="ie8" <?php language_attributes(); ?>>
    6262        <![endif]-->
    6363        <!--[if !(IE 8) ]><!-->
    6464                <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
    6565        <!--<![endif]-->
    6666        <head>
    6767        <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
    6868        <title><?php bloginfo('name'); ?> &rsaquo; <?php echo $title; ?></title>
    6969        <?php
    7070
    71         wp_admin_css( 'login', true );
     71        wp_enqueue_style( 'login' );
    7272
    7373        /*
    7474         * Remove all stored post data on logging out.
    7575         * This could be added by add_action('login_head'...) like wp_shake_js(),
    7676         * but maybe better if it's not removable by plugins
    7777         */
    7878        if ( 'loggedout' == $wp_error->get_error_code() ) {
    7979                ?>
    8080                <script>if("sessionStorage" in window){try{for(var key in sessionStorage){if(key.indexOf("wp-autosave-")!=-1){sessionStorage.removeItem(key)}}}catch(e){}};</script>
    8181                <?php
    8282        }
    8383
    8484        /**
    8585         * Enqueue scripts and styles for the login page.
    8686         *
    8787         * @since 3.1.0
    8888         */
    8989        do_action( 'login_enqueue_scripts' );
     90
    9091        /**
    9192         * Fires in the login page header after scripts are enqueued.
    9293         *
    9394         * @since 2.1.0
    9495         */
    9596        do_action( 'login_head' );
    9697
    9798        if ( is_multisite() ) {
    9899                $login_header_url   = network_home_url();
    99100                $login_header_title = get_current_site()->site_name;
    100101        } else {
    101102                $login_header_url   = __( 'https://wordpress.org/' );
    102103                $login_header_title = __( 'Powered by WordPress' );
    103104        }
    104105