WYSIWYG CKEditor config.js nie jest używany?

10

Zainstalowałem i skonfigurowałem moduł WYSIWYG (najnowszy program) do korzystania z CKEditor i pobrałem najnowszą wersję CKEditor (najnowsza pełna wersja) do sites/all/libraries. Jestem w stanie korzystać z edytora.

Muszę dostosować kilka dodatkowych rzeczy, dlatego wprowadzam zmiany konfiguracji do pliku config.js w sites/all/libraries/ckeditor/config.js. Wygląda jednak na to, że ten plik nie jest w ogóle używany ani czytany. Przetestowałem tę hipotezę, dostosowując zapasy config.jsw następujący sposób:

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

alert('World!');

Ilekroć załadować edytora, spodziewam się otrzymać jeden lub dwa alarmy, jeden mówiąc albo Hello!albo World!albo oba. Nie są jednak uruchamiane okna alertów.

Jak dostosować konfigurację CKEditora przy użyciu modułu WYSIWYG?

Lester Peabody
źródło

Odpowiedzi:

13

Zajęło to trochę badań, ale znalazłem ten artykuł, który opisuje, jak to zrobić.

Mięsem artykułu jest następujący haczyk, który definiuje niestandardowy plik konfiguracyjny:

<?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
źródło
To działało idealnie dla mnie. Problem polega na tym, że potrzebujesz dodatkowego niestandardowego modułu, aby faktycznie skonfigurować CKEditor. Gdy to zrobisz, wszystko działa dobrze i masz pełną kontrolę nad CKEditor.
Eric Steinborn,
To działa częściowo dla mnie. Nie wszystkie ustawienia w pliku ckeditor_custom_config.js są honorowane, ale niektóre są. Inne działają, jeśli umieścisz je bezpośrednio w $settingszmiennej funkcji modułów . Zagmatwane.
commonpike
-1

Miałem podobny problem i okazało się, że CKEditor buforował plik config.js. Nawet naciśnięcie klawisza Control-F5 nie rozwiązałoby tego: musiałem ręcznie usunąć pamięć podręczną z ustawień przeglądarki.

Mam nadzieję, że to pomoże komuś =)

Toby Webb
źródło
Nie powinno być buforowane, jeśli wyłączyłeś agregację plików JS /admin/config/development/performancei wyczyściłeś tam również swoją pamięć podręczną. Mam nadzieję, że to pomoże powstrzymać kogoś przed utworzeniem 100 różnych plików dla 100 różnych zatwierdzeń.
Eric Steinborn,
-3

Wszystko, co musisz zrobić, to edytować /sites/all/modules/ckeditor/ckeditor.config.jszamiast ckeditor/config.jspliku.

Vojtech Vitek
źródło
3
Nie powinieneś hakować modułów contrib. Zwłaszcza bez informacji na temat dostarczania łatki (jeśli jest to poprawka błędu, której nie ma.) Drupal.org/node/1054616
Christian
1
Wersja WYSIWYG i tak tam nie mieszka.
circusdei