WordPress.org

Make WordPress Core

Ticket #20055: 20055-3.patch

File 20055-3.patch, 7.0 KB (added by ericlewis, 2 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; ?>,