Make WordPress Core

Ticket #35229: 35229.diff

File 35229.diff, 10.3 KB (added by dd32, 9 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' ) );
     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
    718734        $styles->add( 'login',               "/wp-admin/css/login$suffix.css", array( 'buttons', '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 );
    function print_late_styles() { 
    11181134 * Print styles (internal use only)
    11191135 *
    11201136 * @ignore
    11211137 *
    11221138 * @global bool $compress_css
    11231139 */
    11241140function _print_styles() {
    11251141        global $compress_css;
    11261142
    11271143        $wp_styles = wp_styles();
    11281144
    11291145        $zip = $compress_css ? 1 : 0;
    11301146        if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
    11311147                $zip = 'gzip';
    11321148
    1133         if ( !empty($wp_styles->concat) ) {
     1149        if ( $concat = trim( $wp_styles->concat, ', ' ) ) {
    11341150                $dir = $wp_styles->text_direction;
    11351151                $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;
     1152
     1153                $concat = str_split( $concat, 128 );
     1154                $concat = 'load%5B%5D=' . implode( '&load%5B%5D=', $concat );
     1155
     1156                $href = $wp_styles->base_url . "/wp-admin/load-styles.php?c={$zip}&dir={$dir}&" . $concat . '&ver=' . $ver;
    11371157                echo "<link rel='stylesheet' href='" . esc_attr($href) . "' type='text/css' media='all' />\n";
    11381158
    11391159                if ( !empty($wp_styles->print_code) ) {
    11401160                        echo "<style type='text/css'>\n";
    11411161                        echo $wp_styles->print_code;
    11421162                        echo "\n</style>\n";
    11431163                }
    11441164        }
    11451165
    11461166        if ( !empty($wp_styles->print_html) )
    11471167                echo $wp_styles->print_html;
    11481168}
    11491169
    11501170/**
    11511171 * Determine the concatenation and compression settings for scripts and styles.
  • 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',