2

看到 CKE 4.4+ 现在可以使用嵌套小部件,我感到非常兴奋。我通读了这个问题并尝试了它 - 太棒了。奇怪的是,它不适用于使用 CKEditor 模块的我的 Drupal 站点。

所以,我得到了什么:

该模块使用 CDN,提供 CKE 4.5.1 (//cdn.ckeditor.com/4.5.1/full-all)。
我设置了一个模块来提供 simplebox 插件(取自工作开发 repo 示例):

function mymodule_ckeditor_plugin() {
  $plugins = array();
  $plugins['simplebox'] = array(
    'name' => 'simplebox',
    'desc' => t('simplebox Plugin'),
    'path' => drupal_get_path('module', 'mymodule') . '/plugins/simplebox/',
    'buttons' => array(
      'Simplebox' => array('label' => 'Simplebox', 'icon' => 'icons/simplebox.png'),
    )
  );
  return $plugins;
}

它为我提供了激活插件:

在此处输入图像描述 在此处输入图像描述

我的工具栏上提供了插件按钮: 在此处输入图像描述

单击它,将创建标记。但奇怪的是,添加另一个嵌套在里面是不可能的:

在此处输入图像描述

任何想法我做错了什么?

4

1 回答 1

2

我不太确定你从哪里得到 Simplebox 插件。我假设您是从官方“创建简单的 CKEditor 小部件(第 2 部分)”指南下载的。

如果是这样,我必须告诉您,附加到指南的插件与 ckeditor-dev 存储库中的插件之间存在plugins/widget/dev/assets/simplebox/plugin.js细微差别

后者是最新的,并在content嵌套可编辑中启用任何类型的富 HTML:

editor.widgets.add( 'simplebox', {
    ...
    editables: {
        ...
        content: {
            selector: '.simplebox-content'
        }
    }   
} );

而旧的非常严格:

editor.widgets.add( 'simplebox', {
    ...
    editables: {
        ...
        content: {
            selector: '.simplebox-content',
            allowedContent: 'p br ul ol li strong em'
        }
    }   
} );

请参阅API 文档以了解有关嵌套可编辑项定义的更多信息。CKEditor中高级内容过滤器的介绍也应该很有帮助。

解决方案:从 GitHub 存储库复制simplebox 插件并享受嵌套小部件,通过拖放等。或者只是从嵌套可编辑中删除allowedContent限制。content

对于给您带来的不便,我们深表歉意,我们正在尽最大努力使我们的文档保持最新,但这是一项艰巨的任务,有时我们无法赶上;)

于 2015-07-16T13:59:12.313 回答