我设法最终创建了大部分代码,但是我不知道如何处理这些事情......
我创建了一个按钮,可以从自定义帖子类型加载我的所有帖子。现在我想在弹出对话框中添加一个"预览"按钮,但我不知道该怎么做,无法找到任何示例
提前感谢您提供任何帮助
(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 :(得分: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>' );
}
});
}
});
},