tinymce.WPWindowManager устарела. Как вместо этого использовать редактор по умолчанию editor.windowManager в TinyMCE 4 и WordPress 3.9?

У меня есть плагин TinyMCE, который открывает попин, используя следующий код:

editor.windowManager.open({
    id : 'popin-div-id',
    width : 500,
    height : "auto",
    wpDialog : true,
    title : 'Edit Options'
});

С тех пор как я обновил до WordPress 3.9 (который встраивает TinyMCE 4), я получаю следующую ошибку в консоли:

tinymce.WPWindowManager is deprecated. Use the default editor.windowManager to open dialogs with inline HTML. 

Если я удалюwpDialog : truemsgstr "часть кода выше, мой popin больше не появляется (без ошибок).

Что мне нужно изменить, чтобы использовать WindowManager по умолчанию в TinyMCE 4? Я проверил их веб-сайт и не смог найти документацию по открытию popin из div, но только с внешней HTML-страницы, см.:

1 ответ

У меня такая же проблема. Документы TinyMCE бесполезны, так же как и документы WordPress. Мне пришлось довольно глубоко вникнуть в код TinyMCE, чтобы выяснить, как заставить мое простое настраиваемое всплывающее окно работать снова.

Ответ

Использовать html ключ, чтобы определить ваш HTML в объекте, который вы передаете windowManager.open, Ниже я использую jQuery для выбора HTML, который я поместил на страницу, подключив WordPress. after_wp_tiny_mce действие.

tinymce.activeEditor.windowManager.open({
    title: ed.getLang('mm_tiny_mce.element_attributes'),
    width : 300,
    height : 300,
    html :
        '<div id="mm-attrs-pop" class="mm-tinymce-popup" tabindex="-1">' +
            jQuery('#mm-attrs-pop-tpl').html() +
        '</div>',
    buttons: [
        {
            text: 'Cancel',
            onclick: 'close'
        },
        {
            text: 'Set Attributes',
            onclick: function(){
                //some code here that modifies the selected node in TinyMCE
                tinymce.activeEditor.windowManager.close();
            }
        }
    ]
});

Соответствующий код TinyMCE находится в classes/ui/Window.jsв частности renderHTML имущество. https://github.com/tinymce/tinymce/blob/master/js/tinymce/classes/ui/Window.js

Надеюсь, это поможет. Ура, Крис

Другие вопросы по тегам