WYSIWYG CKEditor config.js wird nicht verwendet?

10

Ich habe das WYSIWYG- Modul (neueste Entwicklung) für die Verwendung von CKEditor installiert und konfiguriert und die neueste Version von CKEditor (neueste Vollversion) auf heruntergeladen sites/all/libraries. Ich kann den Editor verwenden.

Ich muss einige zusätzliche Dinge anpassen, damit ich Konfigurationsänderungen auf config.js in anwende sites/all/libraries/ckeditor/config.js. Es scheint jedoch, dass diese Datei überhaupt nicht verwendet oder gelesen wird. Ich habe diese Hypothese getestet, indem ich den Bestand config.jswie folgt angepasst habe:

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

alert('World!');

Immer , wenn ich den Editor laden, würde ich erwarten , entweder ein oder zwei Warnungen zu bekommen, man sagen , entweder Hello!oder World!oder beides. Es werden jedoch keine Warnfenster gestartet.

Wie passt man die Konfiguration von CKEditor an, wenn man das WYSIWYG-Modul verwendet?

Lester Peabody
quelle

Antworten:

13

Dies erforderte einige Nachforschungen, aber ich fand diesen Artikel, der beschreibt, wie es geht.

Das Fleisch des Artikels ist der folgende Hook, der eine benutzerdefinierte Konfigurationsdatei definiert:

<?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
quelle
Das hat bei mir perfekt funktioniert. Das Problem ist, dass Sie ein zusätzliches benutzerdefiniertes Modul benötigen, um CKEditor tatsächlich zu konfigurieren. Sobald Sie dies tun, funktioniert es einwandfrei und Sie haben die volle Kontrolle über CKEditor.
Eric Steinborn
Das funktioniert teilweise bei mir. Nicht alle Einstellungen in der Datei ckeditor_custom_config.js werden berücksichtigt, einige jedoch. Andere funktionieren, wenn Sie sie direkt in die Funktionsvariable des Moduls $settingseinfügen. Verwirrend.
Commonpike
-1

Ich hatte ein ähnliches Problem und es stellte sich heraus, dass CKEditor die Datei config.js zwischengespeichert hat. Nicht einmal das Drücken von Strg-F5 würde das lösen: Ich musste den Cache manuell aus der Browsereinstellung löschen.

Hoffe das hilft jemandem =)

Toby Webb
quelle
Es sollte nicht zwischengespeichert worden sein, wenn Sie die Aggregation von JS-Dateien deaktiviert /admin/config/development/performanceund dort auch Ihren Cache geleert haben. Ich hoffe, dies verhindert, dass jemand 100 verschiedene Dateien für 100 verschiedene Commits erstellt.
Eric Steinborn
-3

Alles was Sie tun müssen, ist /sites/all/modules/ckeditor/ckeditor.config.jsstatt ckeditor/config.jsDatei zu bearbeiten .

Vojtech Vitek
quelle
3
Sie sollten keine Contrib-Module hacken. Besonders ohne Informationen rund um die Bereitstellung eines Patches (wenn es sich um eine Fehlerbehebung handelt, die dies nicht ist) drupal.org/node/1054616
Christian
1
Die WYSIWYG-Version lebt dort sowieso nicht.
Zirkusdei