CKEditor - как получить атрибуты шаблона - PullRequest
0 голосов
/ 14 мая 2018

Я использую плагин шаблонов CKEditor для загрузки шаблонов в редакторе. В шаблонах я определил likt this.

templates: [
    {
    title: "Quickclick 1",
    image: "template1.png",
    description: "Quickclick 1 template",
    html_et: "<span>test1</span>",
    html:'  <span>test</span>'
}]

Когда пользователь выбирает шаблон, загружается HTML, что нормально. Но также было бы здорово, если бы был способ получить свойство текущего выбранного шаблона из экземпляра CKEditor.

Мне нужно получить значение свойства html_et в этом случае. Я не нашел ничего в документации, связанной с этим. Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

@ Lingasamy Sakthivel - это не то, как вы определяете шаблоны в CKEditor.

Если вы хотите использовать шаблоны, вам нужно создать файл, подобный файлу по умолчанию в плагине шаблонов: https://github.com/ckeditor/ckeditor-dev/blob/major/plugins/templates/templates/default.js

ПРИМЕЧАНИЕ: при определении файла моего тестового шаблона я назвал файл my_template.js и присвоил этому же имени определение CKEDITOR.addTemplates( 'my_templates', {... для простоты.

Теперь, когда у вас есть готовый файл, вы можете назначить его редактору. Для этого вам нужно указать путь к вашему файлу (полный или относительно контекста вашего приложения) и определения, которые должны быть загружены.

В приведенном ниже примере я загружаю файл CKEditor по умолчанию, а также свой собственный:

var editor = CKEDITOR.replace( 'editor1', {
        language: 'en',
        templates_files : [
            '/myApp/ckeditor/plugins/templates/templates/default.js',
            '/myApp/ckeditor/my_templates.js'
        ],
        templates : 'default,my_templates'
});

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

Когда определение шаблона загружено, шаблоны внутри него загружаются один за другим и назначил обработчик onclick. ИМХО это место, где мы могли бы добавить свой код для получения свойства html_et - https://github.com/ckeditor/ckeditor-dev/blob/major/plugins/templates/dialogs/templates.js#L53-L55.

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

В качестве альтернативы вы можете загрузить CKEditor без плагина templates (это можно сделать с помощью online builder , где вы можете удалить плагин templates из вашей сборки). Затем вам нужно вручную загрузить этот плагин , внести изменения и добавить этот плагин в редактор, поместив папку плагина в папку ckeditor/plugins и используя параметр extraPlugins .

0 голосов
/ 14 мая 2018

Можешь попробовать вот так?

var editor = CKEDITOR.replace('editor1', {
    templates: [
        {
            title: "Quickclick 1",
            image: "template1.png",
            description: "Quickclick 1 template",
            html_et: "<span>test1</span>",
            html:'  <span>test</span>'
        }
    ]
});

alert(editor.config.templates[0].html_et);
...