不使用所见即所得的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!或两者兼而有之。但是,没有启动警报窗口。

使用WYSIWYG模块时,如何自定义CKEditor的配置?

Answers:


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变量中,则其他方法会起作用。令人困惑。
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
Christian

1
所见即所得版本根本不存在。
circusdei
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.