Добавить элементы шаблона в TinyMCE - PullRequest
1 голос
/ 16 сентября 2010

Я хотел бы добавить «элементы шаблона» в редакторе tineMCE. Элементы шаблона действуют как заполнитель для динамически вставляемых данных.

Пример:

Вместо того, чтобы писать: «Привет {имя}, тебе {лет} лет». Я хотел бы вставить объект вместо "{firstname}", который заменяется на "{firstname}" при сохранении на сервере. Он также должен переводиться обратно при загрузке в редактор. Объект должен быть выбран из выпадающего списка (но это должно быть легко, как только другие вещи будут исправлены).

1 Ответ

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

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

tinymce.activeEditor.onSaveContent.add(function(ed, o) {
  console.debug(o.element.nodeName);
  // do your replacement here using a regular expression and the saved value from the dropdown selection
});

или при выборе имени из выпадающего списка выберите свой собственный плагин.

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

  // Andreas from db should be placed in a custom initialisation paramter like this:
db_firstname_save: '<?php echo $value_from_db; ?>', // $value_from_db = 'Andreas'

Заменить значение из БД с помощью регулярного выражения

tinymce.activeEditor.onInit.add(function(ed) {
  console.debug('Editor is done: ' + ed.id);
  // do your replacement here using a regular expression
  ed.setcontent(ed.getContent.replace(ed.getParam('db_firstname_save'),'{firstname}'));
});

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

...