Wordpress tinymce 对话框 Body Element & Attribute 正式文档

Wordpress tinymce dialog box Body Element & Attribute Formal Documentation

我是tinymce的新手。我一直在试图弄清楚我需要使用的所有属性来创建用户填写的外观不错的对话框并创建短代码输出。在下面的代码示例中,标签和文本框相互对接,没有边距或填充,并且标签文本中的任何尾随空格都被修剪,这只是我想做的一个更改。我查看了 tinymce 的文档,发现的都是简单的简短代码示例。

我的问题 1:我在哪里可以找到此 windowManager.open 方法以及与其关联的所有可能属性和方法的正式完整文档?

我的问题 2&3:这些属性实际上是原生的 javascript?如果是这样,我在哪里可以找到它的正式完整文档?

感谢您提供的任何帮助,让我可以检索文档或可能使用 css sytle sheet(w/.mce-widget 或 .mce-textbox)格式化以及在何处以及如何格式化在 Wordpress 中注册此样式 sheet。

(function() {

    tinymce.create("tinymce.plugins.youtube_plugin", {

        //url argument holds the absolute url of our plugin directory
        init : function(ed, url) {
             alert('in youtube');

            //add new button     
            ed.addButton("youtube_button", {
                title : "Youtube Video Responsive Embed",
                cmd : "youtube_command",
                image : "https://cdn0.iconfinder.com/data/icons/social-flat-rounded-rects/512/youtube_v2-32.png"
            });

            //button functionality.
            ed.addCommand("youtube_command", function() {
                //alert('hello youtube');
                ed.windowManager.open({
                    title: "YouTube Video Settings",   //    The title of the dialog window.
                    //file : url + '/../html/youtube.html',
                    width : 800,
                    height : 300,
                    inline : 1,
                    body: [{
                        type: 'container',
                        //label  : 'flow',
                        //layout: 'flow',
                        items: [
                        {type: 'label', text: 'Youtube ServerPath:'},
                        {type: 'textbox', size: '80', name: 'title', value: 'http://www.youtube.com/embed/'},
                        //{type: 'label', text: 'and two labels'}
                        ]
                    }],
                    buttons: [{
                          text: 'Submit',
                          onclick: 'submit'
                       }, {
                          text: 'Cancel',
                          onclick: 'close'
                       }],
                    onsubmit: function(e) {
                        //form = $('#youtube_plugin_id iframe').contents().find('form');
                        alert('hello');
                        ed.insertContent('Title: ' + e.data.title);
                    }
                });
                //var selected_text = ed.selection.getContent();
               // var return_text = "<span style='color: green'>" + selected_text + "</span>";
                //ed.execCommand("mceInsertContent", 0, return_text);
            });

        } // end init
    }); // end tinymce.create

    tinymce.PluginManager.add("youtube_button_plugin", tinymce.plugins.youtube_plugin);
})();

虽然我没有找到任何正式文档专门创建一个漂亮的 mce 对话框,但我确实弄清楚了如何设置对话框标题的格式,然后嵌入一个外部 html 文件,您可以添加一个link 标签到 css 风格 sheet 没有限制。

这是 mce 的 JavaScript 代码,由您创建外部 html 和 css 文件。

(function($) {
    /**
    This tinymce plugin provides the editor button and the modal dialog used to embed. 
    */
    //  Extract data stored in the global namespace in tinymce-dev-starter.php.
    var passed_data = lgrriw_data;
    var php_version = passed_data.php_version;
    var valid_domains = passed_data.valid_domains;
    var dialogTitle = 'My Dialog Title';




    //  Define the TinyMCE plugin and setup the button.
    //  The last property in the first tinymce.create paramenter below must be the same
    //  as the plugin you defined in tinymce-dev-starter.php. In this case, it is
    //  lgrriw_plugin.  If we called it my_cool_plugin, the first parameter would change
    //  to 'tinymce.plugins.my_cool_plugin'.
    tinymce.create('tinymce.plugins.lgrriw_plugin', {
        init: function(editor, url) {
           /**
             * The editor parameter contains the TinyMCE editor instance.  The url
             * parameter contains the absolute url to the directory containing the
             * TinyMCE plugin file (this file's directory).
             *
             * We will be using editor to talk to the TinyMCE instance.  And we
             * will be using url to tell TinyMCE where files are (e.g. button
             * images).
             */
            //  Specify button properties and commands.
            //  The first parameter of editor.addButton must be the button ID
            //  given in tinymce-dev-starter.php. In this case, it is lgrriw_button.
            editor.addButton('lgrriw_button', {
                title: dialogTitle,   // Tooltip when hovering over button.
                image: url + '/../../assets/tinymce-button_32.png',    // The image for the button.
                cmd: 'lgrriw_command'                           // The editor command to execute on button click.
            });

            //  Define the "command" executed on button click.
            editor.addCommand('lgrriw_command', function() {
                editor.windowManager.open(
                    {
                        title: dialogTitle,   //    The title of the dialog window.
                        file:  url + '/../html/tinymce_dialog.html', //    The HTML file with the dialog contents links to css style sheet(s).
                        width: 810,                               //    The width of the dialog
                        height: 505,                              //    The height of the dialog
                        inline: 1                                 //    Whether to use modal dialog instead of separate browser window.
                    },

                    //  Parameters and arguments we want available to the window.
                    {
                        editor: editor,
                        jquery: $,
                        valid_domains: valid_domains
                    }
                );

                $('.mce-title').each(function(index,item){
                    // Iterate through the mce titles until you find
                    // the dialog for this dialog before formatting, otherwise
                    // the formatting will change the Wordpress
                    // Theme globally.  Be Careful!
                    if($(item).text() == dialogTitle){
                        // Format the dialog title using css
                        $(item).css('text-align', 'center');
                        $(item).css('color', '#336999');
                        $(item).css('background-color', '#add9ff');
                    }
                });
            });
        }
    });


    // Add the plugin to TinyMCE
    // Documentation: http://www.tinymce.com/wiki.php/api4:method.tinymce.AddOnManager.add
    tinymce.PluginManager.add('lgrriw_plugin', tinymce.plugins.lgrriw_plugin);
})(jQuery);