Подтвердить что ты не робот

Разрешение пользовательских тегов в TinyMCE для интеграции с indexhibit

Я пытаюсь разрешить ввод пользовательских тегов в TinyMCE. Тег

<plug:plugin_name />

Однако это превращается в

<plug:plugin_name></plug:plugin_name>

Я собираюсь написать регулярное выражение, чтобы справиться с этим, так как мне нужно выполнить эту работу, я бы предпочел, но это исправит мою проблему.

Я пробовал много вариантов init:

extended_valid_elements : "plug.plugin_name[*]",
custom_elements: "plug.plugin_name[*]",
verify_html : false, **//This ment that the tag wasn't ouright removed**
selfclosetags : \" />\", //some plugin I found, didn't seem to work
closed : /^(br|hr|input|meta|img|link|param|area|plug:plugin_name)$/,

Кто-нибудь еще определенно получил это, чтобы работать с последней версией TinyMCE?

Кроме того, другая проблема будет в том, что редактор отключит тэг, после того как я исправил его с помощью регулярного выражения!

4b9b3361

Ответ 1

Вам просто нужно добавить его в список коротких элементов:

extended_valid_elements : "plug:plugin_name[*]",
custom_elements: "~plug:plugin_name[*]",
short_ended_elements: 'area base basefont br col frame hr img input isindex link meta param embed source wbr track plug:plugin_name'

Здесь fiddle, чтобы продемонстрировать.

Ответ 2

Вместо:

closed : /^(br|hr|input|meta|img|link|param|area|plug:plugin_name)$/,

Это работает?

closed : /^(br|hr|input|meta|img|link|param|area|plug)$/,

Обратите внимание на последний элемент "plug" без модификатора:

Ответ 3

Вы пробовали этот вариант?

valid_elements: "a,br,span,plug:plugin_name,another:tag"

Ответ 4

Вы можете использовать метод кодирования как необработанный для любого типа данных.

tinyMCE.init({
   encoding : "raw"
})

Ответ 5

  • Сначала создадим пользовательский плагин для вашего редактора Tinymce 4. и затем добавим пункт меню для этого плагина:

     tinymce.PluginManager.add('YOUR_CUSTOM_PLUGIN_NAME_HERE', function(editor, url){
               //add first menu item
        editor.addMenuItem('YOUR_MENU_ITEM1_CUSTOM_NAME_HERE', {
    
        text: 'Menu Item 1',
        context: 'YOUR_CUSTOM_DROP_DOWN_MENU_NAME', 
        onclick: function() {
           //make the magic happen when the user click this menu here...
        } });
    

    вы закончили создание пользовательских плагинов и пользовательских элементов меню, фактически добавив их в редактор Tinymce 4. Это будет сделано в методе tinymce.init:

    tinymce.init({
            selector: "textarea",
            plugins: "YOUR_CUSTOM_PLUGIN_NAME_HERE",
            toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
    
        //this is how you will get your custom menu like in the above image
                menu : {
                     YOUR_CUSTOM_DROP_DOWN_MENU_NAME: {
    
                         title: 'Name it whatever you like here',
                         items: 'YOUR_MENU_ITEM1_CUSTOM_NAME_HERE YOUR_MENU_ITEM2_CUSTOM_NAME_HERE YOUR_MENU_ITEM3_CUSTOM_NAME_HERE'
                     }
                 },
    
                 menubar: 'YOUR_CUSTOM_DROP_DOWN_MENU_NAME' 
        });
    
        });