Mon objectif est de créer un contrôle personnalisé qui sera utilisé dans le corps de la boîte de dialogue ouverte en largeur. editor.windowManager.open
.
J'ai trouvé la classe source des contrôles standards sur github, mais je ne trouve pas le moyen d'ajouter un nouveau contrôle via un plugin. https://github.com/tinymce/tinymce/tree/master/js/tinymce/classes/ui
Après des heures de recherche, je n'ai trouvé aucune documentation, aucun tutoriel ni aucune réponse sur stackoverflow. J'ai ensuite essayé d'inclure la déclaration de contrôle dans le plugin mais j'obtiens un ReferenceError: define is not defined
.
tinymce.PluginManager.add('my_plugin',function(editor,url){
// My custom control declaration following standard control found in source file
define("tinymce/ui/MyControl", [ "tinymce/ui/Widget" ],
function(Widget) {
"use strict";
return Widget.extend({
/**
* Renders the control as a HTML string.
*/
renderHtml: function() {
return '<div class="my-control">'+ this.state.get('text') +'</div>';
}
});
});
// Toolbar button to open the dialog
editor.addButton('my_plugin',{
title: 'My Plugin button',
text: 'My Plugin button',
onclick: function(){
// Dialog declaration
editor.windowManager.open({
title: 'My dialog',
body: [
{ type: 'textbox', name: 'textbox', label: 'My textbox' },
{ type: 'mycontrol', name: 'mycontrol', label: 'My Control' },
],
onsubmit: function( e ){
editor.insertContent( e.data.textbox );
}
});
},
});
});
// Init tinyMCE
tinymce.init({
selector: '#mytextarea',
plugins: 'my_plugin',
toolbar: 'my_plugin'
});
Est-il possible d'ajouter un contrôle personnalisé, si oui comment le réaliser ?
Trouvez deux jsfiddle, le premier avec contrôles standard et deuxième avec ma tentative et l'erreur dans la console du navigateur
Merci pour votre aide