вставка изображений в несколько редакторов tinyMCE в WordPress - PullRequest
2 голосов
/ 28 сентября 2010

Я использую плагин для WordPress под названием «CMS», это плагин, который делает WordPress более похожим на CMS.http://plugins.trendwerk.nl В частности, он добавляет несколько текстовых «блоков» в шаблон, каждый из которых может быть отредактирован в сценарии post.php с использованием нескольких редакторов tinymce.

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

Это не всегда работает, по какой-то причине при перетаскивании из одного редактора в другой используется относительная ссылка, это нарушает работу сайта.

Я хотел бы добавить возможность вставлять изображения в отдельные поля редактирования tinyMCE.Когда изображение вставлено, оно вставляется в activeEditor.но активный редактор всегда кажется главным редактором.

Когда страница создается, любая текстовая область с классом theEditor преобразуется в редактор tinyMCE, можно было бы предположить, что щелчок по редактору установит для этого редактора значениеАктивный редактор, он не отображается.или поочередное нажатие на иконку «Добавить изображение» отключает его (теряет фокус).

Кто-нибудь знает, как я могу установить activeEditor?возможно, когда пользователь нажмет на иконку «добавить изображение», я смогу обновить активный редактор.

Ответы [ 2 ]

2 голосов
/ 30 сентября 2010

WordPress меняет редактор, к сожалению, в событии onclick на панели инструментов, которая содержит значки. событие всплывает из тега и вызывает следующий javascript:

if (typeof tinyMCE != "undefined" && tinyMCE.activeEditor) {
      tinyMCE.get("content").focus();
      tinyMCE.activeEditor.windowManager.bookmark = tinyMCE.activeEditor.selection.getBookmark("simple")
}

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

Чтобы решить проблему, я изменил вышеупомянутое значение на if (typeof tinyMCE != "undefined" && tinyMCE.activeEditor). Это означает, что если редактор еще не установлен, измените его на жестко заданное значение.

Затем в моем собственном методе onclick значков я изменяю редактор на тот, который я выбрал.

К сожалению, это означает, что мне пришлось изменить файлы ядра WordPress, но в плагине не было простого способа сделать это. Конечно, это можно сделать, но требует репликации событий WordPress. не уверен, хорошо это или плохо.

Я передам то, что я сделал, автору плагина, и он может внести изменения в свой плагин, если захочет.

DC

0 голосов
/ 28 сентября 2010

Все экземпляры редактора (объекты) можно найти с помощью

tinymce.editors; // array containing all editor objects

. Например, вы можете установить activeEditor на первый редактор, но вы можете выбрать любой другой объект редактора

tinymce.activeEditor = tinymce.editors[0];

Я предлагаю вам использовать Firebug и console.log(tinymce.editors);, чтобы поближе взглянуть на это.

При создании страницы любая текстовая область с классом theEditorпреобразуется в редактор tinyMCE, можно было бы предположить, что нажатие на редактор установит этот редактор в активный редактор, а не в.или поочередное нажатие на значок «Добавить изображение» отключает его (теряет фокус).

При нажатии на редактор обычно этот редактор становится активным.Я думаю, что вы правы, что кнопка «Добавить изображение» как-то меняет activeEditor.Что это за кнопка - это кнопка пользовательского интерфейса или что-то из WordPress?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...