Changeset 11191
- Timestamp:
- 10/12/2016 11:31:54 PM (8 years ago)
- Location:
- trunk/src/bp-core
- Files:
-
- 105 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-core/bp-core-cssjs.php
r11190 r11191 20 20 $url = buddypress()->plugin_url . 'bp-core/js/'; 21 21 22 /** 23 * Filters the BuddyPress Core javascript files to register. 24 * 25 * @since 2.1.0 26 * 27 * @param array $value Array of javascript file information to register. 28 */ 29 $scripts = apply_filters( 'bp_core_register_common_scripts', array( 30 22 /* 23 * Moment.js locale. 24 * 25 * Try to map current WordPress locale to a moment.js locale file for loading. 26 * 27 * eg. French (France) locale for WP is fr_FR. Here, we try to find fr-fr.js 28 * (this file doesn't exist). 29 */ 30 $locale = sanitize_file_name( strtolower( get_locale() ) ); 31 $locale = str_replace( '_', '-', $locale ); 32 if ( file_exists( buddypress()->core->path . "bp-core/js/vendor/moment-js/locale/{$locale}{$min}.js" ) ) { 33 $moment_locale_url = $url . "vendor/moment-js/locale/{$locale}{$min}.js"; 34 35 /* 36 * Try to find the short-form locale. 37 * 38 * eg. French (France) locale for WP is fr_FR. Here, we try to find fr.js 39 * (this exists). 40 */ 41 } else { 42 $locale = substr( $locale, 0, strpos( $locale, '-' ) ); 43 if ( file_exists( buddypress()->core->path . "bp-core/js/vendor/moment-js/locale/{$locale}{$min}.js" ) ) { 44 $moment_locale_url = $url . "vendor/moment-js/locale/{$locale}{$min}.js"; 45 } 46 } 47 48 // Set up default scripts to register. 49 $scripts = array( 31 50 // Legacy. 32 51 'bp-confirm' => array( 'file' => "{$url}confirm{$min}.js", 'dependencies' => array( 'jquery' ), 'footer' => false ), … … 51 70 'bp-moment' => array( 'file' => "{$url}vendor/moment-js/moment{$min}.js", 'dependencies' => array(), 'footer' => true ), 52 71 'bp-livestamp' => array( 'file' => "{$url}vendor/livestamp{$min}.js", 'dependencies' => array( 'jquery', 'bp-moment' ), 'footer' => true ), 53 ) ); 72 ); 73 74 // Version 2.7 - Add Moment.js locale to our $scripts array if we found one. 75 if ( isset( $moment_locale_url ) ) { 76 $scripts['bp-moment-locale'] = array( 'file' => esc_url( $moment_locale_url ), 'dependencies' => array( 'bp-moment' ), 'footer' => true ); 77 } 78 79 /** 80 * Filters the BuddyPress Core javascript files to register. 81 * 82 * Default handles include 'bp-confirm', 'bp-widget-members', 83 * 'bp-jquery-query', 'bp-jquery-cookie', and 'bp-jquery-scroll-to'. 84 * 85 * @since 2.1.0 'jquery-caret', 'jquery-atwho' added. 86 * @since 2.3.0 'bp-plupload', 'bp-avatar', 'bp-webcam' added. 87 * @since 2.4.0 'bp-cover-image' added. 88 * @since 2.7.0 'bp-moment', 'bp-livestamp' added. 89 * 'bp-moment-locale' is added conditionally if a moment.js locale file is found. 90 * 91 * @param array $value Array of javascript file information to register. 92 */ 93 $scripts = apply_filters( 'bp_core_register_common_scripts', $scripts ); 94 54 95 55 96 $version = bp_get_version(); … … 490 531 } 491 532 533 /* 534 * Only enqueue Moment.js locale if we registered it in 535 * bp_core_register_common_scripts(). 536 */ 537 if ( wp_script_is( 'bp-moment-locale', 'registered' ) ) { 538 wp_enqueue_script( 'bp-moment-locale' ); 539 540 if ( function_exists( 'wp_add_inline_script' ) ) { 541 wp_add_inline_script ( 'bp-livestamp', bp_core_moment_js_config() ); 542 } else { 543 add_action( 'wp_footer', '_bp_core_moment_js_config_footer', 20 ); 544 } 545 } 546 492 547 wp_enqueue_script( 'bp-livestamp' ); 493 494 // We're only localizing the relative time strings for moment.js since that's all we need for now.495 wp_localize_script( 'bp-livestamp', 'BP_Moment_i18n', array(496 'future' => __( 'in %s', 'buddypress' ),497 'past' => __( '%s ago', 'buddypress' ),498 's' => __( 'a few seconds', 'buddypress' ),499 'm' => __( 'a minute', 'buddypress' ),500 'mm' => __( '%d minutes', 'buddypress' ),501 'h' => __( 'an hour', 'buddypress' ),502 'hh' => __( '%d hours', 'buddypress' ),503 'd' => __( 'a day', 'buddypress' ),504 'dd' => __( '%d days', 'buddypress' ),505 'M' => __( 'a month', 'buddypress' ),506 'MM' => __( '%d months', 'buddypress' ),507 'y' => __( 'a year', 'buddypress' ),508 'yy' => __( '%d years', 'buddypress' ),509 ) );510 511 if ( function_exists( 'wp_add_inline_script' ) ) {512 wp_add_inline_script ( 'bp-livestamp', bp_core_moment_js_config() );513 } else {514 add_action( 'wp_footer', '_bp_core_moment_js_config_footer', 20 );515 }516 548 } 517 549 … … 524 556 */ 525 557 function bp_core_moment_js_config() { 558 // Grab the locale from the enqueued JS. 559 $moment_locale = wp_scripts()->query( 'bp-moment-locale' ); 560 $moment_locale = substr( $moment_locale->src, strpos( $moment_locale->src, '/moment-js/locale/' ) + 18 ); 561 $moment_locale = str_replace( '.js', '', $moment_locale ); 562 526 563 $inline_js = <<<EOD 527 564 jQuery(function() { 528 moment.locale( 'bp', { 529 relativeTime : BP_Moment_i18n 530 }); 565 moment.locale( '{$moment_locale}' ); 531 566 }); 532 567 EOD; … … 545 580 */ 546 581 function _bp_core_moment_js_config_footer() { 547 if ( ! wp_script_is( 'bp- livestamp' ) ) {582 if ( ! wp_script_is( 'bp-moment-locale' ) ) { 548 583 return; 549 584 }
Note: See TracChangeset
for help on using the changeset viewer.