craftcms/redactor

此包已被废弃,不再维护。作者建议使用craftcms/ckeditor包。

使用Imperavi的Redactor在Craft CMS中编辑富文本内容。

安装次数2,435,281

依赖: 71

建议者: 0

安全: 0

星标: 100

关注者: 13

分支: 49

开放问题: 65

语言:JavaScript

类型:craft-plugin


README

Redactor icon

Redactor

此插件为Craft CMS添加了“Redactor”字段类型,它由Imperavi提供丰富的文本编辑器。

要求

此插件需要Craft CMS 4.0或更高版本。

安装

您可以从插件商店或使用Composer安装此插件。

从插件商店

转到项目的控制面板中的插件商店,搜索“Redactor”。然后在模态窗口中点击“安装”按钮。

使用Composer

打开终端并运行以下命令

# go to the project directory
cd /path/to/my-project.test

# tell Composer to load the plugin
composer require craftcms/redactor

# tell Craft to install the plugin
./craft install/plugin redactor

配置

Redactor 配置

您可以在您的 config/redactor/ 文件夹中创建自定义 Redactor 配置,它们将可用于您的 Redactor 字段。它们应该以 JSON 文件的形式创建。

例如,如果您创建了一个包含以下内容的 config/redactor/Standard.json 文件

{
  "buttons": ["html", "format", "bold", "italic", "lists", "link", "file"],
  "plugins": ["fullscreen"]
}

…那么一个“Standard”选项将出现在您的 Redactor 字段设置中的“Redactor 配置”选项中。

有关可用配置选项和按钮的列表,请参阅Redactor 文档

Craft Redactor 配置选项

Craft 添加了 enforceButtonOrder 配置选项,该选项可以设置为按钮名称的列表,按预期顺序排列。此选项应用于解决Redactor在添加插件到配置时设置的不可控按钮顺序问题。

HTML Purifier 配置

Redactor 字段使用 HTML Purifier 来确保没有任何恶意代码进入其字段值,以防止XSS攻击和其他漏洞。

您可以在您的 config/htmlpurifier/ 文件夹中创建自定义 HTML Purifier 配置,它们将可用于您的 Redactor 字段。它们应该以 JSON 文件的形式创建。

Default.json 复制作为起点,这是Redactor字段在没有选择自定义 HTML Purifier 配置时使用的默认配置。

有关可用配置选项的列表,请参阅HTML Purifier 文档

对于高级定制,您可以通过使用 craft\redactor\Field::EVENT_MODIFY_PURIFIER_CONFIG 事件直接修改 HTMLPurifier_Config 对象。

use craft\htmlfield\events\ModifyPurifierConfigEvent;
use craft\redactor\Field;
use HTMLPurifier_Config;
use yii\base\Event;

Event::on(
    Field::class,
    Field::EVENT_MODIFY_PURIFIER_CONFIG,
    function(ModifyPurifierConfigEvent $event) {
        /** @var HTMLPurifier_Config $config */
        $config = $event->config;
        // ...
    }
);

Redactor JS 插件

默认捆绑了所有 第一方 Redactor JS 插件。要启用它们,只需将插件句柄添加到您的 Redactor 配置中的 plugin 数组中。

{
  "plugins": ["alignment", "fullscreen"]
}

您也可以通过在您的 config/redactor/ 文件夹中保存它们来提供自己的 Redactor 插件。您可以将插件直接放在该文件夹中,或者在以插件命名的子文件夹中放置插件。

config/
└── redactor/
    └── plugins/
        ├── foo.js
        └── bar/
            └── bar.js

其他Craft插件可以通过使用craft\redactor\Field::EVENT_REGISTER_PLUGIN_PATHS事件来提供额外的Redactor JS插件位置。