O WYSIWYG CKEditor config.js não está sendo usado?

10

Instalei e configurei o módulo WYSIWYG (dev mais recente) para usar o CKEditor e baixei a versão mais recente do CKEditor (última versão completa) para sites/all/libraries. Eu sou capaz de usar o editor.

Preciso personalizar algumas coisas adicionais, por isso estou aplicando alterações de configuração ao config.js no sites/all/libraries/ckeditor/config.js. No entanto, parece que esse arquivo nem sequer está sendo usado ou lido. Eu testei essa hipótese ajustando o estoque da seguinte config.jsforma:

CKEDITOR.editorConfig = function( config ) {
    // Define changes to default configuration here. For example:
    config.allowedContent = true;
    alert('Hello!');
};

alert('World!');

Sempre que eu carregar o editor, eu esperaria para obter um ou dois alertas, um dizendo que ou Hello!ou World!ou ambos. No entanto, nenhuma janela de alerta é iniciada.

Como é possível personalizar a configuração do CKEditor ao usar o módulo WYSIWYG?

Lester Peabody
fonte

Respostas:

13

Isso levou algumas pesquisas, mas eu encontrei este artigo que descreve como fazê-lo.

A descrição do artigo é o seguinte gancho, que define um arquivo de configuração personalizado:

<?php
/**
 * Implements hook_wysiwyg_editor_settings_alter()
 */
function MODULENAME_wysiwyg_editor_settings_alter(&$settings, $context)
{
    // The $context variable contains information about the wysiwyg profile we're using
    // In this case we just need to check that the editor being used is ckeditor
    if ($context['profile']->editor == 'ckeditor')
    {

        // The $settings variable contains all the config options ckeditor uses. 
        // The array keys correspond directly with any setting that can be applied 
        // to CKEditor - as outlined in the CKEditor docs: 
        // http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html 
        // Another way to override configuration is to use your own configuration javascript
        // file. In this case, we're going to add our own configuration file that will
        // Hold our stylesSet customizations... 
        $settings['customConfig'] = base_path() . drupal_get_path('module', 'MODULENAME') . '/ckeditor_custom_config.js';
    }
}
Scott Joudry
fonte
Isso funcionou perfeitamente para mim. O problema é que você precisa de um módulo personalizado adicional para realmente configurar o CKEditor. Depois de fazer isso, ele funciona muito bem e você tem controle total sobre o CKEditor.
Eric Steinborn 18/09/15
Isso funciona em parte para mim. Nem todas as configurações no ckeditor_custom_config.js são respeitadas, mas algumas são. Outros funcionam se você os colocar diretamente na $settingsvariável de função dos módulos . Confuso.
commonpike
-1

Eu tive um problema semelhante e o CKEditor estava armazenando em cache o arquivo config.js. Nem apertar control-F5 resolveria isso: eu tinha que excluir o cache manualmente da configuração do navegador.

Espero que isso ajude alguém =)

Toby Webb
fonte
Não deveria ter sido armazenado em cache se você desativou a agregação de arquivos JS /admin/config/development/performancee limpou seu cache também. Espero que isso ajude a impedir que alguém crie 100 arquivos diferentes para 100 confirmações diferentes.
Eric Steinborn
-3

Tudo que você precisa fazer é editar em /sites/all/modules/ckeditor/ckeditor.config.jsvez de ckeditor/config.jsarquivo.

Vojtech Vitek
fonte
3
Você não deve estar invadindo os módulos do contrib. Especialmente sem informações sobre o fornecimento de um patch (se for uma correção de bug, o que não é o caso). Drupal.org/node/1054616
Christian
1
Versão WYSIWYG não mora lá de qualquer maneira.
Circusdei