WordPress.org

Make WordPress Core

Ticket #20055: 20055-3.patch

File 20055-3.patch, 7.0 KB (added by ericlewis, 6 years ago)

If this is still on the table, this patch fixes the "polluted globals" issue Nacin cited earlier, using a new canonical format, which respects the global then the constant, varying a bit between the different cases. Also implements the "_src" conditional loading azaozz implemented earlier. I'll learn how to create a diff from a patch and more changes for next time ;)

  • wp-includes/script-loader.php

     
    575575        if ( !is_a($wp_scripts, 'WP_Scripts') )
    576576                $wp_scripts = new WP_Scripts();
    577577
    578         script_concat_settings();
    579         $wp_scripts->do_concat = $concatenate_scripts;
     578        if ( ! isset($concatenate_scripts) ) {
     579                $wp_scripts->do_concat = defined('CONCATENATE_SCRIPTS') ? CONCATENATE_SCRIPTS : true;
     580                if ( ! is_admin() || ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) )
     581                        $wp_scripts->do_concat = false;
     582        } else
     583                $wp_scripts->do_concat = $concatenate_scripts;
     584
    580585        $wp_scripts->do_head_items();
    581586
    582587        if ( apply_filters('print_head_scripts', true) )
     
    597602        if ( !is_a($wp_scripts, 'WP_Scripts') )
    598603                return array(); // No need to run if not instantiated.
    599604
    600         script_concat_settings();
    601         $wp_scripts->do_concat = $concatenate_scripts;
     605        if ( ! isset($concatenate_scripts) ) {
     606                $wp_scripts->do_concat = defined('CONCATENATE_SCRIPTS') ? CONCATENATE_SCRIPTS : true;
     607                if ( ! is_admin() || ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) )
     608                        $wp_scripts->do_concat = false;
     609        } else
     610                $wp_scripts->do_concat = $concatenate_scripts;
     611
    602612        $wp_scripts->do_footer_items();
    603613
    604614        if ( apply_filters('print_footer_scripts', true) )
     
    614624function _print_scripts() {
    615625        global $wp_scripts, $compress_scripts;
    616626
    617         $zip = $compress_scripts ? 1 : 0;
     627        $compressed_output = ( ini_get('zlib.output_compression') || 'ob_gzhandler' == ini_get('output_handler') );
     628
     629        if ( ! isset($compress_scripts) ) {
     630                $zip = defined('COMPRESS_SCRIPTS') ? COMPRESS_SCRIPTS : true;
     631                if ( $zip && ( ! get_site_option('can_compress_scripts') || $compressed_output ) )
     632                        $zip = false;
     633        } else
     634                $zip = $compress_scripts;
     635
    618636        if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
    619637                $zip = 'gzip';
    620638
     
    698716        if ( !is_a($wp_styles, 'WP_Styles') )
    699717                $wp_styles = new WP_Styles();
    700718
    701         script_concat_settings();
    702         $wp_styles->do_concat = $concatenate_scripts;
    703         $zip = $compress_css ? 1 : 0;
     719        if ( ! isset($concatenate_scripts) ) {
     720                $wp_styles->do_concat = defined('CONCATENATE_SCRIPTS') ? CONCATENATE_SCRIPTS : true;
     721                if ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG )
     722                        $wp_styles->do_concat = false;
     723        } else
     724                $wp_styles->do_concat = $concatenate_scripts;
     725
     726        $compressed_output = ( ini_get('zlib.output_compression') || 'ob_gzhandler' == ini_get('output_handler') );
     727
     728        if ( ! isset($compress_css) ) {
     729                $zip = defined('COMPRESS_CSS') ? COMPRESS_CSS : true;
     730                if ( $compress_css && ( ! get_site_option('can_compress_scripts') || $compressed_output ) )
     731                        $zip = false;
     732        } else
     733                $zip = $compress_css;
     734
    704735        if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
    705736                $zip = 'gzip';
    706737
     
    724755        if ( !is_a($wp_styles, 'WP_Styles') )
    725756                return;
    726757
    727         $wp_styles->do_concat = $concatenate_scripts;
     758        if ( ! isset($concatenate_scripts) ) {
     759                $wp_styles->do_concat = defined('CONCATENATE_SCRIPTS') ? CONCATENATE_SCRIPTS : true;
     760                if ( !is_admin() || ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) )
     761                        $wp_styles->do_concat = false;
     762        } else
     763                $wp_styles->do_concat = $concatenate_scripts;
     764
    728765        $wp_styles->do_footer_items();
    729766
    730767        if ( apply_filters('print_late_styles', true) )
     
    740777function _print_styles() {
    741778        global $wp_styles, $compress_css;
    742779
    743         $zip = $compress_css ? 1 : 0;
     780        $compressed_output = ( ini_get('zlib.output_compression') || 'ob_gzhandler' == ini_get('output_handler') );
     781
     782        if ( ! isset($compress_css) ) {
     783                $zip = defined('COMPRESS_CSS') ? COMPRESS_CSS : true;
     784                if ( $zip && ( ! get_site_option('can_compress_scripts') || $compressed_output ) )
     785                        $zip = false;
     786        } else
     787                $zip = $compress_css;
     788
    744789        if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
    745790                $zip = 'gzip';
    746791
     
    761806                echo $wp_styles->print_html;
    762807}
    763808
    764 /**
    765  * Determine the concatenation and compression settings for scripts and styles.
    766  *
    767  * @since 2.8
    768  */
    769 function script_concat_settings() {
    770         global $concatenate_scripts, $compress_scripts, $compress_css;
    771 
    772         $compressed_output = ( ini_get('zlib.output_compression') || 'ob_gzhandler' == ini_get('output_handler') );
    773 
    774         if ( ! isset($concatenate_scripts) ) {
    775                 $concatenate_scripts = defined('CONCATENATE_SCRIPTS') ? CONCATENATE_SCRIPTS : true;
    776                 if ( ! is_admin() || ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) )
    777                         $concatenate_scripts = false;
    778         }
    779 
    780         if ( ! isset($compress_scripts) ) {
    781                 $compress_scripts = defined('COMPRESS_SCRIPTS') ? COMPRESS_SCRIPTS : true;
    782                 if ( $compress_scripts && ( ! get_site_option('can_compress_scripts') || $compressed_output ) )
    783                         $compress_scripts = false;
    784         }
    785 
    786         if ( ! isset($compress_css) ) {
    787                 $compress_css = defined('COMPRESS_CSS') ? COMPRESS_CSS : true;
    788                 if ( $compress_css && ( ! get_site_option('can_compress_scripts') || $compressed_output ) )
    789                         $compress_css = false;
    790         }
    791 }
    792 
    793809add_action( 'wp_default_scripts', 'wp_default_scripts' );
    794810add_filter( 'wp_print_scripts', 'wp_just_in_time_script_localization' );
    795811add_filter( 'print_scripts_array', 'wp_prototype_before_jquery' );
  • wp-includes/class-wp-editor.php

     
    257257
    258258                                self::$plugins = $plugins;
    259259                                self::$ext_plugins = $ext_plugins;
    260 
    261260                                /*
    262261                                translators: These languages show up in the spellchecker drop-down menu, in the order specified, and with the first
    263262                                language listed being the default language. They must be comma-separated and take the format of name=code, where name
     
    481480                $version = 'ver=' . $tinymce_version;
    482481                $tmce_on = !empty(self::$mce_settings);
    483482
    484                 if ( ! isset($concatenate_scripts) )
    485                         script_concat_settings();
     483                $compressed_output = ( ini_get('zlib.output_compression') || 'ob_gzhandler' == ini_get('output_handler') );
    486484
     485                if ( ! isset($compress_scripts) ) {
     486                        $compress_scripts = defined('COMPRESS_SCRIPTS') ? COMPRESS_SCRIPTS : true;
     487                        if ( $compress_scripts && ( ! get_site_option('can_compress_scripts') || $compressed_output ) )
     488                                $compress_scripts = false;
     489                }
     490               
     491                if ( ! isset($concatenate_scripts) ) {
     492                        $concatenate_scripts = defined('CONCATENATE_SCRIPTS') ? CONCATENATE_SCRIPTS : true;
     493                        if ( ! is_admin() || ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) )
     494                                $concatenate_scripts = false;
     495                }
     496               
    487497                $compressed = $compress_scripts && $concatenate_scripts && isset($_SERVER['HTTP_ACCEPT_ENCODING'])
    488498                        && false !== stripos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip');
    489499
     
    517527                        'language' => self::$mce_locale
    518528                );
    519529
     530                $suffix = $concatenate_scripts ? '' : '_dev';
     531
    520532                do_action('before_wp_tiny_mce', self::$mce_settings);
    521533?>
    522534
    523535        <script type="text/javascript">
    524536                tinyMCEPreInit = {
    525537                        base : "<?php echo self::$baseurl; ?>",
    526                         suffix : "",
     538                        suffix : '<?php echo $suffix; ?>',
    527539                        query : "<?php echo $version; ?>",
    528540                        mceInit : <?php echo $mceInit; ?>,
    529541                        qtInit : <?php echo $qtInit; ?>,