WYSIWYG CKEditor config.js не используется?

10

Я установил и настроил модуль WYSIWYG (последний разработчик) для использования CKEditor, и я загрузил последнюю версию CKEditor (последний полный выпуск) в sites/all/libraries. Я могу использовать редактор.

Мне нужно настроить несколько дополнительных вещей, поэтому я применяю изменения конфигурации в config.js в sites/all/libraries/ckeditor/config.js. Однако кажется, что этот файл даже не используется или не читается вообще. Я проверил эту гипотезу, настроив запас config.jsтак:

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

alert('World!');

Всякий раз , когда я загружаю редактор, я бы ожидать , чтобы получить один или два предупреждения, один говоря , либо Hello!или World!или обоих. Однако окна предупреждений не запускаются.

Как настроить конфигурацию CKEditor при использовании модуля WYSIWYG?

Лестер Пибоди
источник

Ответы:

13

Это заняло некоторое исследование, но я нашел эту статью, которая описывает, как это сделать.

Основой статьи является следующий хук, который определяет пользовательский файл конфигурации:

<?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';
    }
}
Скотт Джудри
источник
Это отлично сработало для меня. Проблема в том, что вам требуется дополнительный пользовательский модуль для фактической настройки CKEditor. Как только вы это сделаете, все будет работать нормально, и вы получите полный контроль над CKEditor.
Эрик Стейнборн,
Это работает частично для меня. Не все настройки в ckeditor_custom_config.js соблюдаются, но некоторые есть. Другие работают, если вы поместите их прямо в $settingsпеременную функции modules . Смешение.
commonpike
-1

У меня была похожая проблема, и оказалось, что CKEditor кэшировал файл config.js. Даже нажатие клавиши control-F5 решило бы это: мне пришлось вручную удалить кеш из настроек браузера.

Надеюсь, это поможет кому-то =)

Тоби Уэбб
источник
Он не должен был кэшироваться, если вы отключили агрегацию файлов JS /admin/config/development/performanceи очистили там также кэш. Надеюсь, это поможет остановить создание 100 разных файлов для 100 разных коммитов.
Эрик Стейнборн,
-3

Все, что вам нужно сделать, это редактировать /sites/all/modules/ckeditor/ckeditor.config.jsвместо ckeditor/config.jsфайла.

Войтех Витек
источник
3
Вы не должны взламывать модули contrib. Особенно без информации о предоставлении патча (если это исправление ошибки, но это не так). Drupal.org/node/1054616
Кристиан,
1
Версия WYSIWYG там все равно не живет.
Circusdei