Согласно документации, объект конфигурации TinyMCE ожидает, что вы передадите массив, содержащий один объект для каждого шаблона.На высоком уровне это будет выглядеть так:
tinymce.init({
selector: "textarea", // change this value according to your HTML
plugins: "template",
menubar: "insert",
toolbar: "template",
templates: [
{title: 'Item 1', description: 'Desc 1', content: 'My content'},
{title: 'Item 2', description: 'Desc 2', url: 'development.html'}
]
});
Вы заметите, что параметру конфигурации templates
передано значение array
из objects
- это то, что ожидает TinyMCE, поэтому независимо от того, что выдолжен возвращать array
из objects
.
. Вы можете вставить HTML-шаблон напрямую (как показано в первом примере выше) или указать URL-адрес, который браузер может получить при инициализации TinyMCE.(как показано во втором примере выше).Не существует параметра конфигурации template_external_list_url
, поэтому он не работает, поскольку он недопустим.
Если вы хотите вывести шаблоны за пределы конфигурации TinyMCE, вы можете поместить данные в файл и ссылаться на них через URL-адрес.Например:
tinymce.init({
selector: "textarea", // change this value according to your HTML
plugins: "template",
menubar: "insert",
toolbar: "template",
templates: "/path/to/the/file/templates.php"
});
Ссылочный URL-адрес должен возвращать array
из objects
, поскольку в конечном итоге это то, что ожидает TinyMCE.В приведенном выше примере, похоже, подразумевается, что ваш внешний файл возвращает переменную JavaScript с именем tinyMCETemplateList
, но это ничего не значит для TinyMCE, поэтому, хотя файл может быть загружен, то, что «возвращается», не является массивом объектов JavaScript.
Я бы посоветовал вам начать с работы без внешних шаблонов (просто убедитесь, что у вас работают основы).Затем перенесите содержимое в отдельный файл и убедитесь, что файл возвращает array
из objects
.Я хотел бы отметить, что ваш пример использования tinyMCETemplateList
, похоже, возвращает массив из массивов , что совсем не то, что ожидает TinyMCE.