Silverstripe 3:向 HTMLEditorField 添加自定义块

Silverstripe 3: Add a custom block to HTMLEditorField

我想在 html 编辑器字段中添加创建 'div' 的选项。

如何向格式下拉列表添加选项,以创建具有特定 class 的 div?

我已使用 editor.css

中的代码成功将样式添加到样式下拉列表中
.responsive-table {
    overflow-x: scroll;
}

我正在使用 silverstripe 3 并希望能够将我自己的选项添加到格式下拉列表中以创建各种元素。

在 SilverStripe 3 中,我们可以通过将以下内容添加到 mysite/_config.php 来编辑 HTMLEditorField 中的样式下拉项:

HtmlEditorConfig::get('cms')->setOption('style_formats', [
    [
        'title' => 'Responsive table',
        'attributes' => ['class' => 'responsive-table'],
        'selector' => 'div',
    ],
]);

上面的代码将使 HTMLEditorField 样式下拉列表中有一个项目,一个 Responsive table 选项可以应用于 div 元素。如果我们希望将其应用于 table 元素,我们可以在 selector 选项中更改它。

这是一个方便的模块,展示了我们如何更改 SilverStripe 3 中的 HTMLEditorField 的示例: https://github.com/jonom/silverstripe-tinytidy/blob/master/_config.php