Pour un thème, j'ajoute un menu personnalisé à TinyMCE de Wordpress à l'aide de ed.addButton.
Maintenant, certains de ces points de menu ont des options plus ou moins élaborées, alors je me suis dit que j'utiliserais la fonction de dialogue personnalisée de TinyMCE pour que l'utilisateur les remplisse. Cela fonctionne très bien jusqu'à présent avec de simples champs de texte, mais dès que j'essaie d'utiliser une zone de sélection, elle cesse de fonctionner.
Le code ressemble à ceci:
ed.addButton('mybutton', {
type: 'menubutton',
text: 'My Button',
icon: false,
menu: [
{
text: 'Bootstrap Well',
onclick: function () {
ed.windowManager.open({
title: 'Bootstrap Well',
body: [
{type: 'selectbox', name: 'size', label: 'Size', options: ['small', 'normal', 'large']}
],
onsubmit: function (e) {
var selected = ed.selection.getContent(),
size = e.data.size;
console.log(e.data);
ed.insertContent('[well size="' + size + '"]' + selected + '[/well]');
}
});
}
}]
La boîte de dialogue ne semble pas poser de problème, la zone de sélection est là, pas de problème. Lorsque je soumets la boîte de dialogue, j'obtiens un objet événement dans ma fonction onsubmit. L'attribut data contient un objet avec une clé "size", mais la valeur de la clé est toujours une chaîne vide.
Qu'est-ce que je fais mal ici?
Essayer
type: 'listbox',
values: [{text: 'small'}, {text: 'normal'}, {text: 'large'}]
Pour plus de détails: https://github.com/tinymce/tinymce/blob/master/js/tinymce/plugins/link/plugin.js
J'ai rencontré le même problème lorsque je veux utiliser select2 dans la boîte de dialogue. Tous les plugins utilisent listbox. J'imagine qu'ils utilisent toujours listbox au lieu de selectbox. Et le gestionnaire de selectbox est cassé.