Make WordPress Core

Ticket #42495: 42495.0.diff

File 42495.0.diff, 4.8 KB (added by bpayton, 7 years ago)
  • src/wp-includes/js/customize-selective-refresh.js

    From 62cf077cd2a7ad7597f0cf17a4700f4cf9063574 Mon Sep 17 00:00:00 2001
    From: Brandon Payton <brandon@happycode.net>
    Date: Thu, 14 Dec 2017 16:25:34 -0700
    Subject: [PATCH 1/2] Enqueue support for playlist shortcodes in preview
    
    ---
     src/wp-includes/js/customize-selective-refresh.js |  4 ++++
     src/wp-includes/js/mediaelement/wp-playlist.js    | 17 +++++++++++++----
     src/wp-includes/widgets/class-wp-widget-text.php  | 19 +++++++++++++++++++
     3 files changed, 36 insertions(+), 4 deletions(-)
    
    diff --git a/src/wp-includes/js/customize-selective-refresh.js b/src/wp-includes/js/customize-selective-refresh.js
    index b1169eb277..a3d71f76d1 100644
    a b wp.customize.selectiveRefresh = ( function( $, api ) { 
    488488                                wp.mediaelement.initialize();
    489489                        }
    490490
     491                        if ( wp.playlist ) {
     492                                wp.playlist.initialize();
     493                        }
     494
    491495                        /**
    492496                         * Announce when a partial's placement has been rendered so that dynamic elements can be re-built.
    493497                         */
  • src/wp-includes/js/mediaelement/wp-playlist.js

    diff --git a/src/wp-includes/js/mediaelement/wp-playlist.js b/src/wp-includes/js/mediaelement/wp-playlist.js
    index 19cab125ba..7d46b201e0 100644
    a b  
    33(function ($, _, Backbone) {
    44        'use strict';
    55
     6        window.wp = window.wp || {};
     7
    68        var WPPlaylistView = Backbone.View.extend(/** @lends WPPlaylistView.prototype */{
    79                /**
    810                 * @constructs
     
    168170                }
    169171        });
    170172
    171     $(document).ready(function () {
    172                 $('.wp-playlist').each( function() {
    173                         return new WPPlaylistView({ el: this });
     173        function initialize() {
     174                // Only initialize new playlists
     175                $( '.wp-playlist:not(:has(.mejs-container))' ).each( function() {
     176                        new WPPlaylistView( { el: this } );
    174177                } );
    175     });
     178        }
     179
     180        window.wp.playlist = {
     181                initialize: initialize
     182        };
     183
     184        $(document).ready( initialize );
    176185
    177186        window.WPPlaylistView = WPPlaylistView;
    178187
  • src/wp-includes/widgets/class-wp-widget-text.php

    diff --git a/src/wp-includes/widgets/class-wp-widget-text.php b/src/wp-includes/widgets/class-wp-widget-text.php
    index dc94978cd4..49ed729c46 100644
    a b class WP_Widget_Text extends WP_Widget { 
    5757
    5858                wp_add_inline_script( 'text-widgets', sprintf( 'wp.textWidgets.idBases.push( %s );', wp_json_encode( $this->id_base ) ) );
    5959
     60                if ( $this->is_preview() ) {
     61                        add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_preview_scripts' ) );
     62                }
     63
    6064                // Note that the widgets component in the customizer will also do the 'admin_print_scripts-widgets.php' action in WP_Customize_Widgets::print_scripts().
    6165                add_action( 'admin_print_scripts-widgets.php', array( $this, 'enqueue_admin_scripts' ) );
    6266
    class WP_Widget_Text extends WP_Widget { 
    393397                return $instance;
    394398        }
    395399
     400        /**
     401         * Enqueue preview scripts.
     402         *
     403         * These scripts normally are enqueued just-in-time when a playlist shortcode is used.
     404         * However, in the customizer, a playlist shortcode may be used in a text widget and
     405         * dynamically added via selective refresh, so it is important to unconditionally enqueue them.
     406         *
     407         * @since 4.9.2
     408         */
     409        public function enqueue_preview_scripts() {
     410                wp_playlist_scripts( 'audio' );
     411                wp_playlist_scripts( 'video' );
     412        }
     413
    396414        /**
    397415         * Loads the required scripts and styles for the widget control.
    398416         *
    class WP_Widget_Text extends WP_Widget { 
    400418         */
    401419        public function enqueue_admin_scripts() {
    402420                wp_enqueue_editor();
     421
    403422                wp_enqueue_script( 'text-widgets' );
    404423                wp_add_inline_script( 'text-widgets', 'wp.textWidgets.init();', 'after' );
    405424        }
  • src/wp-includes/widgets/class-wp-widget-text.php

    -- 
    2.15.0
    
    
    From 9169f90e31ca24d48840ee351aa9cd3d13bab54b Mon Sep 17 00:00:00 2001
    From: Brandon Payton <brandon@happycode.net>
    Date: Fri, 15 Dec 2017 17:42:22 -0700
    Subject: [PATCH 2/2] Require media.php for wp_playlist_scripts
    
    ---
     src/wp-includes/widgets/class-wp-widget-text.php | 3 ++-
     1 file changed, 2 insertions(+), 1 deletion(-)
    
    diff --git a/src/wp-includes/widgets/class-wp-widget-text.php b/src/wp-includes/widgets/class-wp-widget-text.php
    index 49ed729c46..f42b0ca20e 100644
    a b class WP_Widget_Text extends WP_Widget { 
    407407         * @since 4.9.2
    408408         */
    409409        public function enqueue_preview_scripts() {
     410                require_once( dirname( dirname( __FILE__ ) ) . '/media.php' );
     411
    410412                wp_playlist_scripts( 'audio' );
    411413                wp_playlist_scripts( 'video' );
    412414        }
    class WP_Widget_Text extends WP_Widget { 
    418420         */
    419421        public function enqueue_admin_scripts() {
    420422                wp_enqueue_editor();
    421 
    422423                wp_enqueue_script( 'text-widgets' );
    423424                wp_add_inline_script( 'text-widgets', 'wp.textWidgets.init();', 'after' );
    424425        }