Make WordPress Core

Ticket #42794: minimal-working-example.php

File minimal-working-example.php, 2.0 KB (added by carlobeltrame, 9 years ago)

MWE for testing the bug and the proposed fix

Line 
1<?php
2 /*
3 Plugin Name: MWE Trac #42794
4 Plugin URI: https://core.trac.wordpress.org/ticket/42794
5 Description: Demonstration that one can't upload new media files when multiple media dialogues are present on a single page.
6 Version: 1.0
7 Author: carlobeltrame
8 License: GPL2
9 */
10
11/* Minimal working example CPT with multiple media uploaders on the same page */
12function trac42794_custom_post_type_mwe( $wpptd ) {
13 $wpptd->add_components( array(
14 'trac42794_mwe' => array(
15 'label' => __( 'MWE', 'trac42794' ),
16 'post_types' => array(
17 'mwe' => array(
18 'public' => true,
19 'metaboxes' => array(
20 'mwe_metabox' => array(
21 'title' => __( 'MWE metabox', 'trac42794' ),
22 'fields' => array(
23 'mwe-media-picker-1' => array(
24 'title' => __( 'Media picker 1', 'trac42794' ),
25 'type' => 'media',
26 ),
27 'mwe-media-picker-2' => array(
28 'title' => __( 'Media picker 2', 'trac42794' ),
29 'type' => 'media',
30 ),
31 ),
32 ),
33 ),
34 ),
35 ),
36 ),
37 ), 'trac42794' );
38}
39add_action( 'wpptd', 'trac42794_custom_post_type_mwe' );
40
41
42/* Proposed fix: modify UploaderStatus such that ready() is called at the end of every
43 * initialize() invocation. This is demonstrated here by overriding UploaderStatus, but
44 * in the proposed patch, we would patch the UploaderStatus class directly in core.
45 * Uncomment the last line to activate the fix. */
46function trac42794_fix_media_uploader() {
47 ?>
48<script>
49 var oldUploaderStatus = wp.media.view.UploaderStatus;
50 wp.media.view.UploaderStatus = oldUploaderStatus.extend({
51 initialize: function() {
52 oldUploaderStatus.prototype.initialize.call(this);
53 this.ready();
54 }
55 });
56</script><?php
57}
58function trac42794_add_media_modification_js() {
59 add_action( 'admin_print_footer_scripts', 'trac42794_fix_media_uploader' );
60}
61//add_action( 'wp_enqueue_media', 'trac42794_add_media_modification_js' );