WordPress.org

Make WordPress Core

Ticket #7011: 7011.c.diff

File 7011.c.diff, 8.9 KB (added by mdawaffe, 6 years ago)

Same as .b.diff but uses clean_url() instead of attribute_escape()

  • wp-includes/class.wp-styles.php

     
    33class WP_Styles extends WP_Dependencies { 
    44        var $base_url; 
    55        var $default_version; 
     6        var $text_direction = 'ltr'; 
    67 
    78        function __construct() { 
    89                do_action_ref_array( 'wp_default_styles', array(&$this) ); 
     
    2122                else 
    2223                        $media = 'all'; 
    2324 
    24                 $src = $this->registered[$handle]->src; 
    25                 if ( !preg_match('|^https?://|', $src) ) { 
    26                         $src = $this->base_url . $src; 
     25                $href = $this->_css_href( $this->registered[$handle]->src, $ver, $handle ); 
     26 
     27                $end_cond = ''; 
     28                if ( isset($this->registered[$handle]->extra['conditional']) && $this->registered[$handle]->extra['conditional'] ) { 
     29                        echo "<!--[if {$this->registered[$handle]->extra['conditional']}]>\n"; 
     30                        $end_cond = "<![endif]-->\n"; 
    2731                } 
    2832 
    29                 $src = add_query_arg('ver', $ver, $src); 
    30                 $src = clean_url(apply_filters( 'style_loader_src', $src )); 
     33                echo apply_filters( 'style_loader_tag', "<link rel='stylesheet' href='$href' type='text/css' media='$media' />\n", $handle ); 
     34                if ( 'rtl' === $this->text_direction && isset($this->registered[$handle]->extra['rtl']) && $this->registered[$handle]->extra['rtl'] ) { 
     35                        if ( is_bool( $this->registered[$handle]->extra['rtl'] ) ) 
     36                                $rtl_href = str_replace( '.css', '-rtl.css', $href ); 
     37                        else 
     38                                $rtl_href = $this->_css_href( $this->registered[$handle]->extra['rtl'], $ver, "$handle-rtl" ); 
    3139 
    32                 echo "<link rel='stylesheet' href='$src' type='text/css' media='$media' />\n"; 
     40                        echo apply_filters( 'style_loader_tag', "<link rel='stylesheet' href='$rtl_href' type='text/css' media='$media' />\n", $handle ); 
     41                } 
    3342 
     43                echo $end_cond; 
     44 
    3445                // Could do something with $this->registered[$handle]->extra here to print out extra CSS rules 
    3546//              echo "<style type='text/css'>\n"; 
    3647//              echo "/* <![CDATA[ */\n"; 
     
    4657                        $this->to_do = apply_filters( 'print_styles_array', $this->to_do ); 
    4758                return $r; 
    4859        } 
     60 
     61        function _css_href( $src, $ver, $handle ) { 
     62                if ( !preg_match('|^https?://|', $src) ) { 
     63                        $src = $this->base_url . $src; 
     64                } 
     65 
     66                $src = add_query_arg('ver', $ver, $src); 
     67                $src = apply_filters( 'style_loader_src', $src, $handle ); 
     68                return clean_url( $src ); 
     69        } 
     70 
    4971} 
  • wp-includes/class.wp-scripts.php

     
    5555                } 
    5656 
    5757                $src = add_query_arg('ver', $ver, $src); 
    58                 $src = clean_url(apply_filters( 'script_loader_src', $src )); 
     58                $src = clean_url(apply_filters( 'script_loader_src', $src, $handle )); 
    5959 
    6060                $this->print_scripts_l10n( $handle ); 
    6161 
  • wp-includes/general-template.php

     
    11311131        if ( defined('WP_INSTALLING') ) { 
    11321132                $_file = "./$file.css"; 
    11331133        } else { 
    1134                 if ( 'css/colors' == $file || 'css/colors-rtl' == $file ) { 
    1135                         global $_wp_admin_css_colors; 
    1136                         $color = get_user_option('admin_color'); 
    1137                         if ( empty($color) || !isset($_wp_admin_css_colors[$color]) ) 
    1138                                 $color = 'fresh'; 
    1139                         $color = $_wp_admin_css_colors[$color]; 
    1140                         $_file = $color->url; 
    1141                         $_file = ('css/colors-rtl' == $file) ? str_replace('.css','-rtl.css',$_file) : $_file; 
    1142                 } elseif ( 'css/thickbox' == $file ) { 
    1143                         $_file = get_option( 'siteurl' ) . "/wp-includes/js/thickbox/thickbox.css"; 
    1144                 } else { 
    1145                         $_file = get_option( 'siteurl' ) . "/wp-admin/$file.css"; 
    1146                 } 
     1134                $_file = get_option( 'siteurl' ) . "/wp-admin/$file.css"; 
    11471135        } 
    11481136        $_file = add_query_arg( 'version', get_bloginfo( 'version' ),  $_file ); 
    11491137 
     
    11511139} 
    11521140 
    11531141function wp_admin_css( $file = 'wp-admin' ) { 
     1142        global $wp_styles; 
     1143        if ( !is_a($wp_styles, 'WP_Styles') ) 
     1144                $wp_styles = new WP_Styles(); 
    11541145 
    1155         echo apply_filters( 'wp_admin_css', "<link rel='stylesheet' href='" . wp_admin_css_uri( $file ) . "' type='text/css' />\n", $file ); 
    1156         if ( 'rtl' == get_bloginfo( 'text_direction' ) ) { 
    1157                 $rtl = ( 'wp-admin' == $file ) ? 'rtl' : "$file-rtl"; 
    1158                 echo apply_filters( 'wp_admin_css', "<link rel='stylesheet' href='" . wp_admin_css_uri( $rtl ) . "' type='text/css' />\n", $rtl ); 
     1146        $handle = 0 === strpos( $file, 'css/' ) ? substr( $file, 4 ) : $file; 
     1147 
     1148        if ( $wp_styles->query( $handle ) ) { 
     1149                if ( did_action( 'wp_print_styles' ) ) // we already printed the style queue.  Print this one immediately 
     1150                        wp_print_styles( $handle ); 
     1151                else // Add to style queue 
     1152                        wp_enqueue_style( $handle ); 
     1153                return; 
    11591154        } 
     1155 
     1156        echo apply_filters( 'wp_admin_css', "<link rel='stylesheet' href='" . clean_url( wp_admin_css_uri( $file ) ) . "' type='text/css' />\n", $file ); 
     1157        if ( 'rtl' == get_bloginfo( 'text_direction' ) ) 
     1158                echo apply_filters( 'wp_admin_css', "<link rel='stylesheet' href='" . clean_url( wp_admin_css_uri( "$file-rtl" ) ) . "' type='text/css' />\n", "$file-rtl" ); 
    11601159} 
    11611160 
    11621161function add_thickbox() { 
  • wp-includes/script-loader.php

     
    66require( ABSPATH . WPINC . '/class.wp-styles.php' ); 
    77require( ABSPATH . WPINC . '/functions.wp-styles.php' ); 
    88 
    9 function wp_default_scripts( $scripts ) { 
     9function wp_default_scripts( &$scripts ) { 
    1010        $scripts->base_url = get_option( 'siteurl' ); 
    1111        $scripts->default_version = get_bloginfo( 'version' ); 
    1212 
     
    203203        } 
    204204} 
    205205 
     206function wp_default_styles( &$styles ) { 
     207        $styles->base_url = get_option( 'siteurl' ); 
     208        $styles->default_version = get_bloginfo( 'version' ); 
     209        $styles->text_direction = 'rtl' == get_bloginfo( 'text_direction' ) ? 'rtl' : 'ltr'; 
     210 
     211        $rtl_styles = array( 'global', 'colors', 'dashboard', 'ie', 'install', 'login', 'media', 'theme-editor', 'upload', 'widgets' ); 
     212 
     213        $styles->add( 'wp-admin', '/wp-admin/wp-admin.css' ); 
     214        $styles->add_data( 'wp-admin', 'rtl', '/wp-admin/rtl.css' ); 
     215 
     216        $styles->add( 'ie', '/wp-admin/css/ie.css' ); 
     217        $styles->add_data( 'ie', 'conditional', 'gte IE 6' ); 
     218 
     219        $styles->add( 'colors', true ); // Register "meta" stylesheet for admin colors 
     220 
     221        $styles->add( 'global', '/wp-admin/css/global.css' ); 
     222        $styles->add( 'media', '/wp-admin/css/media.css' ); 
     223        $styles->add( 'widgets', '/wp-admin/css/widgets.css' ); 
     224        $styles->add( 'dashboard', '/wp-admin/css/dashboard.css' ); 
     225        $styles->add( 'install', '/wp-admin/css/install.css' ); 
     226        $styles->add( 'theme-editor', '/wp-admin/css/theme-editor.css' ); 
     227        $styles->add( 'press-this', '/wp-admin/css/press-this.css' ); 
     228        $styles->add( 'thickbox', '/wp-includes/js/thickbox/thickbox.css' ); 
     229        $styles->add( 'login', '/wp-admin/css/login.css' ); 
     230 
     231        foreach ( $rtl_styles as $rtl_style ) 
     232                $styles->add_data( $rtl_style, 'rtl', true ); 
     233} 
     234 
    206235function wp_prototype_before_jquery( $js_array ) { 
    207236        if ( false === $jquery = array_search( 'jquery', $js_array ) ) 
    208237                return $js_array; 
     
    232261        ) ); 
    233262} 
    234263 
     264function wp_style_loader_src( $src, $handle ) { 
     265        if ( defined('WP_INSTALLING') ) 
     266                return preg_replace( '#^wp-admin/#', './', $src ); 
     267 
     268        if ( 'colors' == $handle || 'colors-rtl' == $handle ) { 
     269                global $_wp_admin_css_colors; 
     270                $color = get_user_option('admin_color'); 
     271                if ( empty($color) || !isset($_wp_admin_css_colors[$color]) ) 
     272                        $color = 'fresh'; 
     273                $color = $_wp_admin_css_colors[$color]; 
     274                $parsed = parse_url( $src ); 
     275                $url = $color->url; 
     276                if ( isset($parsed['query']) && $parsed['query'] ) { 
     277                        wp_parse_str( $parsed['query'], $qv ); 
     278                        $url = add_query_arg( $qv, $url ); 
     279                } 
     280                return $url; 
     281        } 
     282 
     283        return $src; 
     284} 
     285 
    235286add_action( 'wp_default_scripts', 'wp_default_scripts' ); 
    236287add_filter( 'wp_print_scripts', 'wp_just_in_time_script_localization' ); 
    237288add_filter( 'print_scripts_array', 'wp_prototype_before_jquery' ); 
     289 
     290add_action( 'wp_default_styles', 'wp_default_styles' ); 
     291add_filter( 'style_loader_src', 'wp_style_loader_src', 10, 2 ); 
  • wp-admin/admin-header.php

     
    2929<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" /> 
    3030<title><?php bloginfo('name') ?> &rsaquo; <?php echo wp_specialchars( strip_tags( $title ) ); ?> &#8212; WordPress</title> 
    3131<?php 
     32 
    3233wp_admin_css( 'css/global' ); 
    3334wp_admin_css(); 
    3435wp_admin_css( 'css/colors' ); 
     36wp_admin_css( 'css/ie' ); 
     37 
    3538?> 
    36 <!--[if gte IE 6]> 
    37 <?php wp_admin_css( 'css/ie' ); 
    38 ?> 
    39 <![endif]--> 
    4039<script type="text/javascript"> 
    4140//<![CDATA[ 
    4241addLoadEvent = function(func) {if (typeof jQuery != "undefined") jQuery(document).ready(func); else if (typeof wpOnload!='function'){wpOnload=func;} else {var oldonload=wpOnload; wpOnload=function(){oldonload();func();}}};