Разрешение пользовательских тегов в TinyMCE для интеграции с indexhibit - PullRequest
24 голосов
/ 24 мая 2011

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

<plug:plugin_name />

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

<plug:plugin_name></plug:plugin_name>

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

Я перепробовал многие варианты инициализации:

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?

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

Ответы [ 5 ]

2 голосов
/ 14 октября 2014

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

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'

Вот скрипка для демонстрации.

0 голосов
/ 31 декабря 2013
  1. Сначала давайте создадим пользовательский плагин для вашего редактора 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' 
        });
    
        });
    
0 голосов
/ 14 октября 2013

Вы пробовали эту опцию?

valid_elements: "a,br,span,plug:plugin_name,another:tag"
0 голосов
/ 26 декабря 2013

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

tinyMCE.init({
   encoding : "raw"
})
0 голосов
/ 10 января 2012

Вместо:

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

Работает ли это?

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

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

...