Make WordPress Core

Ticket #29420: 29420.6.diff

File 29420.6.diff, 2.4 KB (added by barryceelen, 9 years ago)

Check if jquery-ui-datepicker is enqueued

  • wp-includes/default-filters.php

    diff --git wp-includes/default-filters.php wp-includes/default-filters.php
    index f7bfeb5..d044fb3 100644
    add_action( 'set_current_user', 'kses_init' ); 
    404404
    405405// Script Loader
    406406add_action( 'wp_default_scripts', 'wp_default_scripts' );
     407add_action( 'wp_enqueue_scripts', 'wp_localize_jquery_ui_datepicker', 1000 );
     408add_action( 'admin_enqueue_scripts', 'wp_localize_jquery_ui_datepicker', 1000 );
    407409add_filter( 'wp_print_scripts', 'wp_just_in_time_script_localization' );
    408410add_filter( 'print_scripts_array', 'wp_prototype_before_jquery' );
    409411
  • wp-includes/script-loader.php

    diff --git wp-includes/script-loader.php wp-includes/script-loader.php
    index 1b20961..a9f55a3 100644
    function wp_just_in_time_script_localization() { 
    844844                'autosaveInterval' => AUTOSAVE_INTERVAL,
    845845                'blog_id' => get_current_blog_id(),
    846846        ) );
     847}
     848
     849/**
     850 * Localizes the jQuery UI datepicker.
     851 *
     852 * @since 4.6.0
     853 *
     854 * @link http://api.jqueryui.com/datepicker/#options
     855 * @global WP_Locale $wp_locale The WordPress date and time locale object.
     856 */
     857function wp_localize_jquery_ui_datepicker() {
     858        global $wp_locale;
     859
     860        if ( ! wp_script_is( 'jquery-ui-datepicker', 'enqueued' ) ) {
     861                return;
     862        }
     863
     864        // Convert the PHP date format into jQuery UI's format.
     865        $datepicker_date_format = str_replace(
     866                array(
     867                        'd', 'j', 'l', 'z', // day
     868                        'F', 'M', 'n', 'm', // month
     869                        'Y', 'y'            // year
     870                ),
     871                array(
     872                        'dd', 'd', 'DD', 'o',
     873                        'MM', 'M', 'm', 'mm',
     874                        'yy', 'y'
     875                ),
     876                get_option( 'date_format' )
     877        );
     878
     879        $datepicker_defaults = wp_json_encode( array(
     880                'closeText'       => __( 'Close' ),
     881                'currentText'     => __( 'Today' ),
     882                'monthNames'      => array_values( $wp_locale->month ),
     883                'monthNamesShort' => array_values( $wp_locale->month_abbrev ),
     884                'nextText'        => __( 'Next' ),
     885                'prevText'        => __( 'Previous' ),
     886                'dayNames'        => array_values( $wp_locale->weekday ),
     887                'dayNamesShort'   => array_values( $wp_locale->weekday_abbrev ),
     888                'dayNamesMin'     => array_values( $wp_locale->weekday_initial ),
     889                'dateFormat'      => $datepicker_date_format,
     890                'firstDay'        => absint( get_option( 'start_of_week' ) ),
     891                'isRTL'           => $wp_locale->is_rtl(),
     892        ) );
    847893
     894        wp_add_inline_script( 'jquery-ui-datepicker', "jQuery(document).ready(function(jQuery){jQuery.datepicker.setDefaults({$datepicker_defaults});});" );
    848895}
    849896
    850897/**