WYSIWYG CKEditor config.js n'est pas utilisé?

10

J'ai installé et configuré le module WYSIWYG (dernière version) pour utiliser CKEditor, et j'ai téléchargé la dernière version de CKEditor (dernière version complète) sur sites/all/libraries. Je peux utiliser l'éditeur.

J'ai besoin de personnaliser quelques éléments supplémentaires, donc j'applique les changements de configuration à config.js dans sites/all/libraries/ckeditor/config.js. Cependant, il semble que ce fichier ne soit même pas utilisé ou lu du tout. J'ai testé cette hypothèse en ajustant le stock config.jscomme suit:

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

alert('World!');

Chaque fois que je charge l'éditeur, je m'attends à recevoir une ou deux alertes, l'une disant l'un Hello!ou l' autre World!ou les deux. Cependant, aucune fenêtre d'alerte n'est lancée.

Comment personnaliser la configuration de CKEditor lors de l'utilisation du module WYSIWYG?

Lester Peabody
la source

Réponses:

13

Cela a pris quelques recherches, mais j'ai trouvé cet article qui décrit comment le faire.

La viande de l'article est le crochet suivant, qui définit un fichier de configuration personnalisé:

<?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
la source
Cela a parfaitement fonctionné pour moi. Le problème est que vous avez besoin d'un module personnalisé supplémentaire pour réellement configurer CKEditor. Une fois que vous faites cela, cela fonctionne très bien et vous avez un contrôle total sur CKEditor.
Eric Steinborn
Cela fonctionne en partie pour moi. Tous les paramètres dans ckeditor_custom_config.js ne sont pas respectés, mais certains le sont. D'autres fonctionnent si vous les placez directement dans la $settingsvariable de fonction des modules . Déroutant.
commonpike
-1

J'ai eu un problème similaire et il s'avère que CKEditor mettait en cache le fichier config.js. Ne pas même appuyer sur control-F5 résoudrait cela: j'ai dû supprimer le cache manuellement dans les paramètres du navigateur.

J'espère que cela aide quelqu'un =)

Toby Webb
la source
Il n'aurait pas dû être mis en cache si vous avez désactivé l'agrégation de fichiers JS /admin/config/development/performanceet effacé votre cache à cet endroit également. J'espère que cela empêchera quelqu'un de créer 100 fichiers différents pour 100 commits différents.
Eric Steinborn
-3

Tout ce que vous devez faire est de modifier /sites/all/modules/ckeditor/ckeditor.config.jsau lieu de ckeditor/config.jsfichier.

Vojtech Vitek
la source
3
Vous ne devriez pas pirater les modules contrib. Surtout sans informations sur la fourniture d'un correctif (s'il s'agit d'un correctif de bogue, ce qui n'est pas le cas.) Drupal.org/node/1054616
Christian
1
La version WYSIWYG n'y vit pas de toute façon.
circusdei