Как мне вернуть значения из моего плагина TinyMCE? - PullRequest
8 голосов
/ 19 июля 2011

Я нахожусь в процессе создания дополнительной кнопки на панели инструментов TinyMCE (это для Wordpress, но я не думаю, что это имеет значение).

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

Единственные релевантные документы, которые я нашел, это эта страница , где они показывают, как реализовать пользовательский браузер. Но это довольно загадочно для первого таймера (или, по крайней мере, для меня).

Вот что у меня есть:

Это выполняется при нажатии кнопки:

ed.windowManager.open({
    file : url + '/dialog.html',
    width : 400,
    height : 120,
    inline : 1
}, {
    plugin_url : url, // Plugin absolute URL
    some_custom_arg : 'custom arg' // Custom argument
});

Это содержимое файла dialog.html

<html>
<head>
<title>Hello world!</title>
</head>
<body>
<form name="Hello world" method="post">
        <input size="30" name="textbox1"  type="text" id="textbox1" />
        <input type="submit" value="" name="submitbutton" />
    </form>
</body>
</html>

Очевидно, что это ничего не делает (даже не закрывает диалоговое окно), но я не знаю, с чего начать, чтобы что-то сделать.

Ответы [ 2 ]

3 голосов
/ 19 июля 2011

Я ответил на это на форумах MoxieCode, но добавил свой ответ здесь для других.

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

Глядя на плагин, в каталоге js вы найдете библиотеку JavaScript dialog.js , которая содержит метод, вызываемый при нажатии кнопки отправки в диалоговом окне примера. По сути, он просто использует mceInsertContent через execCommand для вставки значения в редактор.

Итак, в вашем примере первое, что вам нужно сделать, это изменить форму, чтобы вызывать метод JavaScript при отправке. Затем вам нужно будет создать этот метод, чтобы сделать все, что вы хотите вставить в TinyMCE.

1 голос
/ 19 июля 2011

Примеры tinymce - действительно место, чтобы посмотреть.В дополнение к информации, которую уже дал Бретт, вы также можете обратиться к вызывающему экземпляру tinymce и разместить там переменные или вызвать функцию одного из ваших собственных плагинов.*

// insertion of content into the calling editor instance
tinyMCEPopup.execCommand('mceInsertContent', false, 'my_content';

// store value in editor variable
tinyMCEPopup.editor.new_variable = 'new_special_blah';

// call a function from an own plugin
tinyMCEPopup.editor.plugins.my_plugin.my_custom_function(var1, var2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...