我有
下的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版本中不起作用也没有任何错误。 任何解决方案都被接受了。
答案 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