2016-10-05 42 views
0

我設法創造的大部分代碼最終會但也有幾件事情我不知道如何處理..WP TinyMCE的 - 自定義按鈕來獲得職位

我創建的加載我所有的文章自定義按鈕郵政類型工作正常。現在我想添加到彈出對話框「預覽」按鈕,但我不知道如何做到這一點,但沒有找到任何例子

預先感謝解決方案 - 找到任何幫助

(function() { 
    tinymce.create('tinymce.plugins.custom_tinymce', { 
     /** 
     * Initializes the plugin, this will be executed after the plugin has been created. 
     * This call is done before the editor instance has finished it's initialization so use the onInit event 
     * of the editor instance to intercept that event. 
     * 
     * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in. 
     * @param {string} url Absolute URL to where the plugin is located. 
     */ 
     init : function(ed, url) { 
      ed.addButton('nestedtables', { 
       title : 'Nested Tables', 
       image : url + '../../images/nested-tables.png', 
     onclick: function() { 
      ed.windowManager.open({ 
       // Open Popup 
       title: 'Choose a Nested Table', 
       id: 'choose_table', 
       body: [ 
       { 
         type: 'listbox', 
         id: 'nesttables_label', 
         label: 'Choose a Nested Table', 
         values: ajax_func() 
        } 
       ], 
       // Add to editor 
       onsubmit: function(e) { 
       ed.focus(); 
       ed.insertContent('<span>' + jQuery('#choose_table .mce-listbox button span').text() + '</span>'); 
       } 
      }); 
     } 
      }); 
     }, 

     /** 
     * Creates control instances based in the incomming name. This method is normally not 
     * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons 
     * but you sometimes need to create more complex controls like listboxes, split buttons etc then this 
     * method can be used to create those. 
     * 
     * @param {String} n Name of the control to create. 
     * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control. 
     * @return {tinymce.ui.Control} New control instance or null if no control was created. 
     */ 
     createControl : function(n, cm) { 
      return null; 
     }, 

     /** 
     * Returns information about the plugin as a name/value array. 
     * The current keys are longname, author, authorurl, infourl and version. 
     * 
     * @return {Object} Name/value array containing information about the plugin. 
     */ 
     getInfo : function() { 
      return { 
       longname : 'Nested Tables', 
       author : '#', 
       authorurl : '#', 
       infourl : '#', 
       version : "1.0" 
      }; 
     } 
    }); 

    // Register plugin 
    tinymce.PluginManager.add('custom_tinymce', tinymce.plugins.custom_tinymce); 

})(); 

回答

0

init : function(ed, url) { 
    ed.addButton('nestedtables', { 
     title : 'Nested Tables', 
     image : url + '../../images/nested-tables.png', 
onclick: function() { 
    ed.windowManager.open({ 
     // Open Popup 
     title: 'Choose a Nested Table', 
     id: 'choose_table', 
     body: [ 
     { 
       type: 'listbox', 
       id: 'nesttables_label', 
       label: 'Choose a Nested Table', 
       values: ajax_get_tables() 
      } 
     ], 
    buttons: [ 
     { text: 'Close', onclick: 'close' }, 
     { text: 'Insert to content', onclick: 'submit' }, 
     { text: 'Preview', onclick: function() { preview_table(result[0]) } } 
    ], 
    onselect: function() { 
     result = jQuery('#choose_table .mce-listbox button span').text().split(' | '); 
    }, 

     // Add to editor 
     onsubmit: function(e) { 
     ed.focus(); 
     ed.insertContent('<span>[NestedTable id="' + result[0] + '"]</span>'); 
     } 
    }); 
} 
    }); 
}, 
相關問題