¿WYSIWYG CKEditor config.js no se está utilizando?

10

He instalado y configurado el módulo WYSIWYG (último desarrollador) para usar CKEditor, y he descargado la última versión de CKEditor (último lanzamiento completo) sites/all/libraries. Puedo usar el editor.

Necesito personalizar algunas cosas adicionales, así que estoy aplicando cambios de configuración a config.js en sites/all/libraries/ckeditor/config.js. Sin embargo, parece que este archivo ni siquiera se está utilizando o leyendo en absoluto. Probé esta hipótesis ajustando el stock de la config.jssiguiente manera:

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

alert('World!');

Cuando cargo el editor, que se puede esperar para conseguir uno o dos alertas, uno diciendo ya sea Hello!o World!o ambos. Sin embargo, no se inician ventanas de alerta.

¿Cómo se personaliza la configuración de CKEditor cuando se usa el módulo WYSIWYG?

Lester Peabody
fuente

Respuestas:

13

Esto requirió algo de investigación, pero encontré este artículo que describe cómo hacerlo.

El meollo del artículo es el siguiente enlace, que define un archivo de configuración 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
fuente
Esto funcionó perfectamente para mí. El problema es que necesita un módulo personalizado adicional para configurar realmente CKEditor. Una vez que haga esto, funciona bien y tiene control total sobre CKEditor.
Eric Steinborn
Esto funciona en parte para mí. No se respetan todas las configuraciones en ckeditor_custom_config.js, pero algunas sí. Otros funcionan si los coloca directamente en la $settingsvariable de función de los módulos . Confuso.
commonpike
-1

Tuve un problema similar, y resulta que CKEditor estaba almacenando en caché el archivo config.js. Ni siquiera presionar control-F5 resolvería eso: tuve que eliminar el caché manualmente de la configuración del navegador.

Espero que esto ayude a alguien =)

Toby Webb
fuente
No debería haberse almacenado en caché si deshabilitó la agregación de archivos JS /admin/config/development/performancey borró su caché allí también. Espero que esto ayude a evitar que alguien haga 100 archivos diferentes para 100 confirmaciones diferentes.
Eric Steinborn
-3

Todo lo que necesitas hacer es editar en /sites/all/modules/ckeditor/ckeditor.config.jslugar de ckeditor/config.jsarchivo.

Vojtech Vitek
fuente
3
No deberías hackear módulos contrib. Especialmente sin información sobre la provisión de un parche (si es una corrección de error, que no lo es). Drupal.org/node/1054616
Christian
1
La versión WYSIWYG no vive allí de todos modos.
circusdei