CKEditor добавляет setkeystroke к стилю форматирования - PullRequest
0 голосов
/ 27 августа 2018

Может ли CKEditor включить ярлык для пользовательского стиля форматирования с помощью setkeystrokes?

Определение стиля:

var estilos = [
    // Block-level styles
    { name: 'Alínea', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_alinea' } },
    { name: 'Anexo', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_anexo' } },
    { name: 'Preâmbulo', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_preambulo' } },
    { name: 'Artigo', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_artigo' } },
    { name: 'Assinatura', element: 'h5', attributes: { 'class': 'legislacao_componente legislacao_assinatura' } },
    { name: 'Capítulo', element: 'h4', attributes: { 'class': 'legislacao_componente legislacao_capitulo' } },
    { name: 'Data', element: 'h5', attributes: { 'class': 'legislacao_componente legislacao_data' } },
    { name: 'Ementa', element: 'h2', attributes: { 'class': 'legislacao_componente legislacao_ementa' } },
    { name: 'Inciso', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_inciso' } },
    { name: 'Item', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_item' } },
    { name: 'Parágrafo', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_paragrafo' } },
    { name: 'Seção', element: 'h4', attributes: { 'class': 'legislacao_componente legislacao_secao' } },
    { name: 'Subseção', element: 'h4', attributes: { 'class': 'legislacao_componente legislacao_subsecao' } },
    { name: 'Título', element: 'h1', attributes: { 'class': 'legislacao_componente legislacao_titulo' } },
    { name: 'Parte', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_parte' } },
    { name: 'Livro', element: 'p', attributes: { 'class': 'legislacao_componente legislacao_livro' } }
    ].sort(function (a, b) {
        if (a.name < b.name) return -1;
        if (a.name > b.name) return 1;
        return 0;
    });

    CKEDITOR.stylesSet.add('estilos_legislacao', estilos);

Заменить код:

var editor = CKEDITOR.replace('txt_dsLegislacao',
    {
        extraPlugins: 'copyformatting,keystrokes',
        stylesSet: 'estilos_legislacao',
        setKeystroke: [[ CKEDITOR.ALT + 54 /*T*/, 'estilos_legislacao' ]],
        contentsCss: [/*'scripts/contents.css',*/ (SITE_BASE_URL + '/css/legislacao.css')]
        });

Включение либо через нажатия клавиш plugin.js, либо через замену ярлыка не работает.

Instace Ready:

editor.on('instanceReady', function (e) {
    for (var i = 0; i < estilos.length; i++) {
        (function (x, y) {
            var styleDefinition = new CKEDITOR.style(CKEDITOR.tools.extend(x, { stylesSet: 'estilos_legislacao' })),
                commandName = /[_a-z]+$/i.exec(x.attributes.class)[0];

            editor.addCommand(commandName, new CKEDITOR.styleCommand(styleDefinition));

            editor.contextMenu.addListener(function (element, selection) {
                var objectListener = {};
                objectListener[commandName] = CKEDITOR.TRISTATE_OFF;
                return objectListener;
            });

            var menuItem = {};
            menuItem[commandName] = {
                label: x.name,
                command: commandName,
                group: 'image',
                order: (y+1)
            };

            editor.addMenuItems(menuItem);

        })(estilos[i], i);
    }
});

Кто-нибудь может мне помочь?

...