0

我正在下载 Drupal 上的模块,但我遇到了所见即所得的问题。它说它需要一个编辑器库,所以我下载了 CKEditor 模块,它工作得很好。但是,当我进入所见即所得配置时,它一直告诉我“无法检测到CKEditor的版本。然后它说我应该提取内容,以便可以在以下位置找到库:

站点/所有/库/ckeditor/ckeditor.js

我确实这样做了,我重置了权限,我查看了不同的安装指南,但似乎没有任何效果。你们有谁知道我该如何解决这个问题?

4

1 回答 1

1

如果您使用的是最新版本的CKEditor,即版本4,则需要编辑Drupal 的WYSIWYG 模块。该模块使用与 CKEditor 的版本定义(在 javascript 中)不匹配的正则表达式来验证编辑器版本。

您需要使用以下修改后的代码将wysiwyg/editors/ckeditor.inc文件从第 77 行修改到第 88 行(基本上是while循环):

while ($max_lines && $line = fgets($library, 500)) {
  // version:'CKEditor 3.0 SVN',revision:'3665'
  // version:'3.0 RC',revision:'3753'
  // version:'3.0.1',revision:'4391'
  if (preg_match('@version:\"(?:CKEditor )?([\d\.]+)(?:.+revision:\"([\d]+))?@', $line, $version)) {
    fclose($library);
    // Version numbers need to have three parts since 3.0.1.
    $version[1] = preg_replace('/^(\d+)\.(\d+)$/', '${1}.${2}.0', $version[1]);
    return $version[1] . ((isset($version[2])) ? '.' . $version[2] : '');
  }
  $max_lines--;
}

正则表达式中的单引号已更改为双引号 + 返回值添加了一个额外的isset条件。

于 2013-10-24T20:58:21.373 回答