tinymce中的拆分按钮的代码在wordpress 3.9版本中不起作用?

时间:2014-03-01 05:30:16

标签: php jquery wordpress tinymce-4

我有

下的php文件代码
class TinyMCE_Buttons {
function __construct() {
    add_action( 'init', array(&$this,'init') );
}
function init() {
    if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') )
        return;     
    if ( get_user_option('rich_editing') == 'true' ) {  
        add_filter( 'mce_external_plugins', array(&$this, 'add_plugin') );  
        add_filter( 'mce_buttons', array(&$this,'register_button') ); 

    }  
}  
function add_plugin($plugin_array) {  
   $plugin_array['shortcodes'] = SHORTCODES_PLUGIN_URL.'/js/tinymce.js';
   return $plugin_array; 
}
function register_button($buttons) {  
   array_push($buttons, "shortcodes_button");
   return $buttons; 
}   
}
$shortcode = new TinyMCE_Buttons;

这是我的.js文件

(function() {   
tinymce.create('tinymce.plugins.ShortcodeMce', {
    init : function(ed, url){
        tinymce.plugins.ShortcodeMce.theurl = url;
    },
    createControl : function(btn, e) {
        if ( btn == "shortcodes_button" ) {
            var a = this;   
            var btn = e.createSplitButton('symple_button', {
                title: "Insert Shortcode",
                image: tinymce.plugins.ShortcodeMce.theurl +"/shortcodes.png",
                icons: false,
            });
            btn.onRenderMenu.add(function (c, b) {

                b.add({title : 'Shortcodes', 'class' : 'mceMenuItemTitle'}).setDisabled(1);

                // Columns
                c = b.addMenu({title:"Columns"});
// add more menu and cloase file

它在tinymce4.x版本中不起作用也没有任何错误。 任何解决方案都被接受了。

1 个答案:

答案 0 :(得分:1)

不再为插件对象调用 init createControl 回调。

其次,您需要在编辑器对象上调用 addButton 函数。

建议的解决方案可以这样工作(从上面的帖子中获取代码):

(function() {   
tinymce.create('tinymce.plugins.ShortcodeMce', function (editor, url) {
    tinymce.plugins.ShortcodeMce.theurl = url;

    var btn = editor.addButton('symple_button', {
        type: "splitbutton",
        title: "Insert Shortcode",
        image: tinymce.plugins.ShortcodeMce.theurl +"/shortcodes.png",
        icons: false,
        menu: [
            { title: "Shortcodes", classes: "mceMenuItemTitle", disabled: true }
        ]
    });

以下是TinyMCE API 4.x中 Button 界面的参考:http://www.tinymce.com/wiki.php/api4:class.tinymce.ui.Button