Make WordPress Core


Ignore:
Timestamp:
01/14/2009 02:18:51 PM (16 years ago)
Author:
azaozz
Message:

Split the script queue in head and footer part, concatenate and compress the default js and css, first run, see #8628

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/script-loader.php

    r10349 r10357  
    3636 */
    3737function wp_default_scripts( &$scripts ) {
    38     if (!$guessurl = site_url())
     38
     39    if ( !$guessurl = site_url() )
    3940        $guessurl = wp_guess_url();
    4041
    4142    $scripts->base_url = $guessurl;
     43    $scripts->content_url = WP_CONTENT_URL;
    4244    $scripts->default_version = get_bloginfo( 'version' );
     45    $scripts->default_dirs = array('/wp-admin/js/', '/wp-includes/js/');
     46
    4347    $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '.dev' : '';
    4448
     49
    4550    $scripts->add( 'utils', "/wp-admin/js/utils$suffix.js", false, '20090102' );
    46    
     51
    4752    $scripts->add( 'common', "/wp-admin/js/common$suffix.js", array('jquery', 'hoverIntent', 'utils'), '20090106' );
     53    $scripts->add_data( 'common', 'group', 1 );
    4854    $scripts->localize( 'common', 'commonL10n', array(
    4955        'warnDelete' => __("You are about to delete the selected items.\n  'Cancel' to stop, 'OK' to delete."),
     
    5258
    5359    $scripts->add( 'sack', "/wp-includes/js/tw-sack$suffix.js", false, '1.6.1' );
     60    $scripts->add_data( 'sack', 'group', 1 );
    5461
    5562    $scripts->add( 'quicktags', "/wp-includes/js/quicktags$suffix.js", false, '20090102' );
     
    8087
    8188    $scripts->add( 'wp-ajax-response', "/wp-includes/js/wp-ajax-response$suffix.js", array('jquery'), '20090102' );
     89    $scripts->add_data( 'wp-ajax-response', 'group', 1 );
    8290    $scripts->localize( 'wp-ajax-response', 'wpAjax', array(
    8391        'noPerm' => __('You do not have permission to do that.'),
     
    8795
    8896    $scripts->add( 'autosave', "/wp-includes/js/autosave$suffix.js", array('schedule', 'wp-ajax-response'), '20090106' );
     97    $scripts->add_data( 'autosave', 'group', 1 );
    8998
    9099    $scripts->add( 'wp-lists', "/wp-includes/js/wp-lists$suffix.js", array('wp-ajax-response'), '20090102' );
     100    $scripts->add_data( 'wp-lists', 'group', 1 );
    91101    $scripts->localize( 'wp-lists', 'wpListL10n', array(
    92102        'url' => admin_url('admin-ajax.php')
     
    105115
    106116    $scripts->add( 'jquery', '/wp-includes/js/jquery/jquery.js', false, '1.3b2');
     117
     118    $scripts->add( 'jquery-ui-core', '/wp-includes/js/jquery/ui.core.js', array('jquery'), '1.5.2' );
     119    $scripts->add_data( 'jquery-ui-core', 'group', 1 );
     120
     121    $scripts->add( 'jquery-ui-tabs', '/wp-includes/js/jquery/ui.tabs.js', array('jquery-ui-core'), '1.5.2' );
     122    $scripts->add_data( 'jquery-ui-tabs', 'group', 1 );
     123
     124    $scripts->add( 'jquery-ui-sortable', '/wp-includes/js/jquery/ui.sortable.js', array('jquery-ui-core'), '1.5.2c' );
     125    $scripts->add_data( 'jquery-ui-sortable', 'group', 1 );
     126
     127    $scripts->add( 'jquery-ui-draggable', '/wp-includes/js/jquery/ui.draggable.js', array('jquery-ui-core'), '1.5.2' );
     128    $scripts->add_data( 'jquery-ui-draggable', 'group', 1 );
     129
     130    $scripts->add( 'jquery-ui-resizable', '/wp-includes/js/jquery/ui.resizable.js', array('jquery-ui-core'), '1.5.2' );
     131    $scripts->add_data( 'jquery-ui-resizable', 'group', 1 );
     132
     133    $scripts->add( 'jquery-ui-dialog', '/wp-includes/js/jquery/ui.dialog.js', array('jquery-ui-resizable', 'jquery-ui-draggable'), '1.5.2' );
     134    $scripts->add_data( 'jquery-ui-dialog', 'group', 1 );
     135
    107136    $scripts->add( 'jquery-form', "/wp-includes/js/jquery/jquery.form$suffix.js", array('jquery'), '2.02m');
     137    $scripts->add_data( 'jquery-form', 'group', 1 );
     138
    108139    $scripts->add( 'jquery-color', "/wp-includes/js/jquery/jquery.color$suffix.js", array('jquery'), '2.0-4561m');
     140    $scripts->add_data( 'jquery-color', 'group', 1 );
     141
    109142    $scripts->add( 'interface', '/wp-includes/js/jquery/interface.js', array('jquery'), '1.2' );
     143
    110144    $scripts->add( 'suggest', "/wp-includes/js/jquery/suggest$suffix.js", array('jquery'), '1.1bm');
     145    $scripts->add_data( 'suggest', 'group', 1 );
     146
    111147    $scripts->add( 'schedule', '/wp-includes/js/jquery/jquery.schedule.js', array('jquery'), '20m');
     148    $scripts->add_data( 'schedule', 'group', 1 );
     149
    112150    $scripts->add( 'jquery-hotkeys', "/wp-includes/js/jquery/jquery.hotkeys$suffix.js", array('jquery'), '0.0.2m' );
     151    $scripts->add_data( 'jquery-hotkeys', 'group', 1 );
     152
    113153    $scripts->add( 'jquery-table-hotkeys', "/wp-includes/js/jquery/jquery.table-hotkeys$suffix.js", array('jquery', 'jquery-hotkeys'), '20090102' );
     154    $scripts->add_data( 'jquery-table-hotkeys', 'group', 1 );
     155
    114156    $scripts->add( 'thickbox', "/wp-includes/js/thickbox/thickbox.js", array('jquery'), '3.1-20080430m');
     157    $scripts->add_data( 'thickbox', 'group', 1 );
     158
    115159
    116160    if ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ) {
     
    145189            'l10n_print_after' => 'try{convertEntities(swfuploadL10n);}catch(e){};'
    146190    ) );
    147    
     191
    148192    $scripts->add( 'swfupload-degrade', '/wp-includes/js/swfupload/plugins/swfupload.graceful_degradation.js', array('swfupload'), '2.2.0-20081031');
    149193    $scripts->localize( 'swfupload-degrade', 'uploadDegradeOptions', array(
     
    151195    ) );
    152196
    153     $scripts->add( 'jquery-ui-core', '/wp-includes/js/jquery/ui.core.js', array('jquery'), '1.5.2' );
    154     $scripts->add( 'jquery-ui-tabs', '/wp-includes/js/jquery/ui.tabs.js', array('jquery-ui-core'), '1.5.2' );
    155     $scripts->add( 'jquery-ui-sortable', '/wp-includes/js/jquery/ui.sortable.js', array('jquery-ui-core'), '1.5.2c' );
    156     $scripts->add( 'jquery-ui-draggable', '/wp-includes/js/jquery/ui.draggable.js', array('jquery-ui-core'), '1.5.2' );
    157     $scripts->add( 'jquery-ui-resizable', '/wp-includes/js/jquery/ui.resizable.js', array('jquery-ui-core'), '1.5.2' );
    158     $scripts->add( 'jquery-ui-dialog', '/wp-includes/js/jquery/ui.dialog.js', array('jquery-ui-resizable', 'jquery-ui-draggable'), '1.5.2' );
    159 
    160197    $scripts->add( 'comment-reply', "/wp-includes/js/comment-reply$suffix.js", false, '20090102');
    161198
    162199    if ( is_admin() ) {
    163200        $scripts->add( 'ajaxcat', "/wp-admin/js/cat$suffix.js", array( 'wp-lists' ), '20090102' );
     201        $scripts->add_data( 'ajaxcat', 'group', 1 );
    164202        $scripts->localize( 'ajaxcat', 'catL10n', array(
    165203            'add' => attribute_escape(__('Add')),
     
    169207
    170208        $scripts->add( 'admin-categories', "/wp-admin/js/categories$suffix.js", array('wp-lists'), '20090102' );
     209        $scripts->add_data( 'admin-categories', 'group', 1 );
    171210
    172211        $scripts->add( 'admin-tags', "/wp-admin/js/tags$suffix.js", array('wp-lists'), '20090102' );
     212        $scripts->add_data( 'admin-tags', 'group', 1 );
    173213
    174214        $scripts->add( 'admin-custom-fields', "/wp-admin/js/custom-fields$suffix.js", array('wp-lists'), '20090106' );
     215        $scripts->add_data( 'admin-custom-fields', 'group', 1 );
    175216
    176217        $scripts->add( 'password-strength-meter', "/wp-admin/js/password-strength-meter$suffix.js", array('jquery'), '20090102' );
     218        $scripts->add_data( 'password-strength-meter', 'group', 1 );
    177219        $scripts->localize( 'password-strength-meter', 'pwsL10n', array(
    178220            'empty' => __('Strength indicator'),
     
    185227
    186228        $scripts->add( 'admin-comments', "/wp-admin/js/edit-comments$suffix.js", array('wp-lists', 'jquery-ui-resizable', 'quicktags'), '20090112' );
     229        $scripts->add_data( 'admin-comments', 'group', 1 );
    187230        $scripts->localize( 'admin-comments', 'adminCommentsL10n', array(
    188231            'hotkeys_highlight_first' => isset($_GET['hotkeys_highlight_first']),
     
    193236
    194237        $scripts->add( 'postbox', "/wp-admin/js/postbox$suffix.js", array('jquery-ui-sortable'), '20090102' );
     238        $scripts->add_data( 'postbox', 'group', 1 );
    195239        $scripts->localize( 'postbox', 'postboxL10n', array(
    196240            'requestFile' => admin_url('admin-ajax.php')
     
    198242
    199243        $scripts->add( 'slug', "/wp-admin/js/slug$suffix.js", array('jquery'), '20090102' );
     244        $scripts->add_data( 'slug', 'group', 1 );
    200245        $scripts->localize( 'slug', 'slugL10n', array(
    201246            'requestFile' => admin_url('admin-ajax.php'),
     
    206251
    207252        $scripts->add( 'post', "/wp-admin/js/post$suffix.js", array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20090102' );
     253        $scripts->add_data( 'post', 'group', 1 );
    208254        $scripts->localize( 'post', 'postL10n', array(
    209255            'tagsUsed' =>  __('Tags used on this post:'),
     
    233279
    234280        $scripts->add( 'page', "/wp-admin/js/page$suffix.js", array('jquery', 'slug', 'wp-lists', 'postbox'), '20090102' );
     281        $scripts->add_data( 'page', 'group', 1 );
    235282        $scripts->localize( 'page', 'postL10n', array(
    236283            'cancel' => __('Cancel'),
     
    255302
    256303        $scripts->add( 'link', "/wp-admin/js/link$suffix.js", array('jquery-ui-tabs', 'wp-lists', 'postbox'), '20090102' );
     304        $scripts->add_data( 'link', 'group', 1 );
    257305
    258306        $scripts->add( 'comment', "/wp-admin/js/comment$suffix.js", array('jquery'), '20090102' );
     307        $scripts->add_data( 'comment', 'group', 1 );
    259308        $scripts->localize( 'comment', 'commentL10n', array(
    260309            'cancel' => __('Cancel'),
     
    266315
    267316        $scripts->add( 'media-upload', "/wp-admin/js/media-upload$suffix.js", array( 'thickbox' ), '20090102' );
     317        $scripts->add_data( 'media-upload', 'group', 1 );
    268318
    269319        $scripts->add( 'admin-widgets', "/wp-admin/js/widgets$suffix.js", array( 'interface' ), '20090106' );
     
    278328
    279329        $scripts->add( 'word-count', "/wp-admin/js/word-count$suffix.js", array( 'jquery' ), '20090102' );
     330        $scripts->add_data( 'word-count', 'group', 1 );
    280331        $scripts->localize( 'word-count', 'wordCountL10n', array(
    281332            'count' => __('Word count: %d'),
     
    291342
    292343        $scripts->add( 'theme-preview', "/wp-admin/js/theme-preview$suffix.js", array( 'thickbox', 'jquery' ), '20090102' );
    293 
    294         $scripts->add( 'inline-edit-post', "/wp-admin/js/inline-edit-post$suffix.js", array( 'jquery', 'jquery-form', 'suggest' ), '20090102' );
     344        $scripts->add_data( 'theme-preview', 'group', 1 );
     345
     346        $scripts->add( 'inline-edit-post', "/wp-admin/js/inline-edit-post$suffix.js", array( 'jquery-form', 'suggest' ), '20090102' );
     347        $scripts->add_data( 'inline-edit-post', 'group', 1 );
    295348        $scripts->localize( 'inline-edit-post', 'inlineEditL10n', array(
    296349            'error' => __('Error while saving the changes.'),
     
    300353        ) );
    301354
    302         $scripts->add( 'inline-edit-tax', "/wp-admin/js/inline-edit-tax$suffix.js", array( 'jquery', 'jquery-form' ), '20090109' );
     355        $scripts->add( 'inline-edit-tax', "/wp-admin/js/inline-edit-tax$suffix.js", array( 'jquery-form' ), '20090109' );
     356        $scripts->add_data( 'inline-edit-tax', 'group', 1 );
    303357        $scripts->localize( 'inline-edit-tax', 'inlineEditL10n', array(
    304358            'error' => __('Error while saving the changes.'),
     
    307361
    308362        $scripts->add( 'plugin-install', "/wp-admin/js/plugin-install$suffix.js", array( 'thickbox', 'jquery' ), '20090102' );
     363        $scripts->add_data( 'plugin-install', 'group', 1 );
    309364        $scripts->localize( 'plugin-install', 'plugininstallL10n', array(
    310365            'plugin_information' => __('Plugin Information:'),
     
    313368
    314369        $scripts->add( 'farbtastic', '/wp-admin/js/farbtastic.js', array('jquery'), '1.2' );
     370        $scripts->add_data( 'farbtastic', 'group', 1 );
    315371
    316372        $scripts->add( 'dashboard', "/wp-admin/js/dashboard$suffix.js", array( 'jquery', 'admin-comments', 'postbox' ), '20090102' );
     373        $scripts->add_data( 'dashboard', 'group', 1 );
    317374
    318375        $scripts->add( 'hoverIntent', "/wp-includes/js/hoverIntent$suffix.js", array('jquery'), '20090102' );
     376        $scripts->add_data( 'hoverIntent', 'group', 1 );
     377
     378        $scripts->add( 'media', "/wp-admin/js/media$suffix.js", array( 'jquery-ui-draggable', 'jquery-ui-resizable' ), '20090113' );
     379        $scripts->add_data( 'media', 'group', 1 );
    319380
    320381    }
     
    341402    if ( ! $guessurl = site_url() )
    342403        $guessurl = wp_guess_url();
     404
    343405    $styles->base_url = $guessurl;
     406    $styles->content_url = WP_CONTENT_URL;
    344407    $styles->default_version = get_bloginfo( 'version' );
    345408    $styles->text_direction = 'rtl' == get_bloginfo( 'text_direction' ) ? 'rtl' : 'ltr';
     409    $styles->default_dirs = array('/wp-admin/');
    346410
    347411    $rtl_styles = array( 'global', 'colors', 'dashboard', 'ie', 'install', 'login', 'media', 'theme-editor', 'upload', 'widgets', 'press-this', 'plugin-install', 'farbtastic' );
     
    385449 */
    386450function wp_prototype_before_jquery( $js_array ) {
    387     if ( false === $jquery = array_search( 'jquery', $js_array ) )
     451    if ( false === $jquery = array_search( 'jquery', $js_array, true ) )
    388452        return $js_array;
    389453
    390     if ( false === $prototype = array_search( 'prototype', $js_array ) )
     454    if ( false === $prototype = array_search( 'prototype', $js_array, true ) )
    391455        return $js_array;
    392456
     
    462526}
    463527
     528/**
     529 * Print the script queue in the HTML head.
     530 *
     531 * Postpones the scripts that were queued for the footer.
     532 * wp_print_footer_scripts() has to be called in the footer to print these scripts.
     533 *
     534 * @since unknown
     535 * @see wp_print_scripts()
     536 */
     537function wp_print_head_scripts() {
     538    do_action( 'wp_print_scripts' );
     539    global $wp_scripts, $concatenate_scripts, $compress_scripts;
     540
     541    if ( !is_a($wp_scripts, 'WP_Scripts') )
     542        $wp_scripts = new WP_Scripts();
     543
     544    if ( ! isset($concatenate_scripts) )
     545        script_concat_settings();
     546
     547    $wp_scripts->do_concat = $concatenate_scripts;
     548    $wp_scripts->do_head_items();
     549
     550    _pring_scripts();
     551
     552    $wp_scripts->do_concat = false;
     553    return $wp_scripts->done;
     554}
     555
     556/**
     557 * Print the scripts that were queued for the footer.
     558 *
     559 * @since unknown
     560 */
     561function wp_print_footer_scripts() {
     562    global $wp_scripts, $concatenate_scripts;
     563
     564    if ( !is_a($wp_scripts, 'WP_Scripts') )
     565        return array(); // No need to run if not instantiated.
     566
     567    if ( ! isset($concatenate_scripts) )
     568        script_concat_settings();
     569
     570    $wp_scripts->do_concat = $concatenate_scripts;
     571    $wp_scripts->do_footer_items();
     572
     573    _pring_scripts();
     574
     575    $wp_scripts->do_concat = false;
     576    return $wp_scripts->done;
     577}
     578
     579function _pring_scripts() {
     580    global $wp_scripts, $compress_scripts;
     581
     582    $zip = $compress_scripts ? 1 : 0;
     583
     584    if ( !empty($wp_scripts->concat) ) {
     585
     586        if ( !empty($wp_scripts->print_code) ) {
     587            echo "<script type='text/javascript'>\n";
     588            echo "/* <![CDATA[ */\n";
     589            echo $wp_scripts->print_code;
     590            echo "/* ]]> */\n";
     591            echo "</script>\n";
     592            $wp_scripts->print_code = '';
     593        }
     594
     595        $ver = md5($wp_scripts->concat_version);
     596        $src = $wp_scripts->base_url . "/wp-admin/load-scripts.php?c={$zip}&load=" . rtrim($wp_scripts->concat, ',') . "&ver=$ver";
     597        echo "<script type='text/javascript' src='$src'></script>\n";
     598        $wp_scripts->concat = $wp_scripts->concat_version = '';
     599    }
     600
     601    if ( !empty($wp_scripts->print_html) ) {
     602        echo $wp_scripts->print_html;
     603        $wp_scripts->print_html = '';
     604    }
     605}
     606
     607function wp_print_admin_styles() {
     608    global $wp_styles, $concatenate_scripts, $compress_scripts;
     609
     610    if ( !is_a($wp_styles, 'WP_Styles') )
     611        $wp_styles = new WP_Styles();
     612
     613    if ( ! isset($concatenate_scripts) )
     614        script_concat_settings();
     615
     616    $wp_styles->do_concat = $concatenate_scripts;
     617    $zip = $compress_scripts ? 1 : 0;
     618
     619    $wp_styles->do_items(false);
     620
     621    if ( !empty($wp_styles->concat) ) {
     622        $ver = md5($wp_styles->concat_version);
     623        $rtl = 'rtl' === $wp_styles->text_direction ? 1 : 0;
     624        $href = $wp_styles->base_url . "/wp-admin/load-styles.php?c={$zip}&rtl={$rtl}&load=" . rtrim($wp_styles->concat, ',') . "&ver=$ver";
     625        echo "<link rel='stylesheet' href='$href' type='text/css' media='all' />\n";
     626        $wp_styles->concat = $wp_styles->concat_version = '';
     627    }
     628
     629    if ( !empty($wp_styles->print_html) ) {
     630        echo $wp_styles->print_html;
     631        $wp_styles->print_html = '';
     632    }
     633
     634    $wp_styles->do_concat = false;
     635    return $wp_styles->done;
     636}
     637
     638function script_concat_settings() {
     639    global $concatenate_scripts, $compress_scripts;
     640
     641    $concatenate_scripts = defined('CONCATENATE_SCRIPTS') ? CONCATENATE_SCRIPTS : true;
     642    if ( $concatenate_scripts && -1 == get_option('concatenate_scripts') )
     643        $concatenate_scripts = false;
     644
     645    $compress_scripts = defined('COMPRESS_SCRIPTS') ? COMPRESS_SCRIPTS : true;
     646    if ( $compress_scripts && ! get_option('can_compress_scripts') )
     647        $compress_scripts = false;
     648}
     649
    464650add_action( 'wp_default_scripts', 'wp_default_scripts' );
    465651add_filter( 'wp_print_scripts', 'wp_just_in_time_script_localization' );
Note: See TracChangeset for help on using the changeset viewer.