gpt4 book ai didi

javascript - Tinymce 中的简码下拉框在 WordPress 3.9 中不起作用?

转载 作者:数据小太阳 更新时间:2023-10-29 04:51:14 26 4
gpt4 key购买 nike

嗨,因为新版本即将发布,我想我会下载它,看看我的主题是否仍然有效。

除了现在不再显示的下拉框外,一切都很好。

这是我们在以前的版本中用来展示它的代码。

PHP 代码:

function register_ppp_shortcodes( $buttons ) {
array_unshift( $buttons, "Shortcodes" );
return $buttons;
}

function add_ppp_shortcodes( $plugin_array ) {
$plugin_array['Shortcodes'] = get_template_directory_uri() . '/js/Shortcodes_js.js';
return $plugin_array;
}

function ppp_shortcodes() {

if ( ! current_user_can('edit_posts') && ! current_user_can('edit_pages') ) {
return;
}

if ( get_user_option('rich_editing') == 'true' ) {
add_filter( 'mce_external_plugins', 'add_ppp_shortcodes' );
add_filter( 'mce_buttons', 'register_ppp_shortcodes' );
}

}

add_action('init', 'ppp_shortcodes');

JS 代码:

/*global tinyMCE, tinymce*/
/*jshint forin:true, noarg:true, noempty:true, eqeqeq:true, bitwise:true, strict:true, undef:true, unused:true, curly:true, browser:true, devel:true, maxerr:50 */
(function() {
"use strict";

tinymce.create('tinymce.plugins.Shortcodes', {

init : function(ed, url) {
ed = ed;
url = url;
},
createControl : function(n, cm) {

if(n==='Shortcodes'){
var mtb = cm.createListBox('Shortcodes', {
title : 'Shortcodes',
onselect : function(p) {
var selected = false;
var content = '';
switch (p){

case 'H1 Title':{

var h1titleclass = prompt("Would you like a custom class?", "");

selected = tinyMCE.activeEditor.selection.getContent();

if(h1titleclass != ''){
h1titleclass = 'class= "'+h1titleclass+'"';
}

if (selected) {
content = '[h1'+h1titleclass+']' + selected + '[/h1]';
} else {
content = '[h1'+h1titleclass+'][/h1]';
}

tinymce.execCommand('mceInsertContent', false, content);

} // finished shortcode
break;

case 'H2 Title':{

var h2titleclass = prompt("Would you like a custom class?", "");

selected = tinyMCE.activeEditor.selection.getContent();

if(h2titleclass != ''){
h2titleclass = 'class= "'+h2titleclass+'"';
}

if (selected) {
content = '[h2'+h2titleclass+']' + selected + '[/h2]';
} else {
content = '[h2'+h2titleclass+'][/h2]';
}

tinymce.execCommand('mceInsertContent', false, content);

} // finished shortcode
break;

}
}
});


// Add some menu items
var my_shortcodes = ['H1 Title','H2 Title'];

for(var i in my_shortcodes){
if (true) {mtb.add(my_shortcodes[i],my_shortcodes[i]);}
}

return mtb;
}
return null;
}


});
tinymce.PluginManager.add('Shortcodes', tinymce.plugins.Shortcodes);
})();

谁能指出我从哪里开始的正确方向。

如您所知,我对 tinymce 知之甚少:(

谢谢

最佳答案

在 tinymce4 中 createControl 不再存在。

您必须创建一个按钮并将文本值对作为值分配给该按钮。当您从下拉列表中选择一个元素时,使用 onSelect 函数来执行操作。

这是一段示例代码:

var my_options = [];
my_options.push({text: "title1", value: "value1"});
my_options.push({text: "title2", value: "value2"});
my_options.push({text: "title3", value: "value3"});

ed.addButton('shortcodes', {
type: 'listbox',
text: 'my_own_decription',
icon: false,
tooltip: 'my_own_decription',
fixedWidth: true,
onselect: function(e)
{
var options = {paragraphs: 1, calldirect: 1};
var text = this.text();
var value = this.value();

console.log("Text choosen:", text);
console.log("Value choosen:", value);

// get selection and range
var selection = ed.selection;
var rng = selection.getRng();
...

ed.focus();
},
values: my_options,
onPostRender: function()
{
ed.my_control = this; // ui control element
}
});

关于javascript - Tinymce 中的简码下拉框在 WordPress 3.9 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22684464/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com