web-dev-qa-db-fra.com

Comment récupérer une valeur d'un champ de saisie dans un modèle de vue multimédia

J'ai créé un modèle de vue de support avec deux champs d'entrée (largeur et hauteur) et je me demandais comment récupérer les valeurs saisies dans une vue du contrôleur de support.

PHP:

function add_my_media_view_template(){
?>
    <script type="text/html" id="tmpl-my-media-view">
        <label class="setting width">
            <span><?php _e('Width'); ?></span>
            <input type="text" class="alignment" data-setting="width" />
        </label>
        <label class="setting height">
            <span><?php _e('Height'); ?></span>
            <input type="text" class="alignment" data-setting="height" />
        </label>
    </script>
<?php  }
add_action( 'print_media_templates', 'add_my_media_view_template');

JS:

wp.media.view.MyMediaViewSettings = wp.media.view.Settings.extend({
    className: 'my-media-view',
    template:  wp.media.template('my-media-view'),

    initialize: function() {
        ....
    }

});

wp.media.controller.Custom = wp.media.controller.State.extend({

    initialize: function(){
        ....
    },

    // called when the toolbar button is clicked
    customAction: function(){
        // NEED TO GET THE VALUES OF THE WIDTH AND HEIGHT INPUT FIELDS
    }

});

Toute aide serait appréciée. Le média modal est mal documenté et il est difficile de construire des choses en utilisant.

Merci

1
leemon

Après avoir fouillé dans le code modal des médias, j'ai trouvé la réponse à ma question:

wp.media.controller.Custom = wp.media.controller.State.extend({

    initialize: function(){
        this.props = new Backbone.Model();
    },

    // called when the toolbar button is clicked
    customAction: function( controller ){
        // get the value of a media view template form field using
        // this.props.get('key'), where 'key' is the value of its 
        // 'data-setting' attribute
        console.log('width: ' + this.props.get('width'));
        console.log('height: ' + this.props.get('height'));
    }

});
1
leemon