This plugin adds a “Redactor” field type to Craft CMS, which provides a rich text editor powered by Redactor by Imperavi.
This plugin requires Craft CMS 4.0 or later.
You can install this plugin from the Plugin Store or with Composer.
Go to the Plugin Store in your project’s Control Panel and search for “Redactor”. Then click on the “Install” button in its modal window.
Open your terminal and run the following commands:
# 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
You can create custom Redactor configs that will be available to your Redactor fields. They should be created as JSON files in your config/redactor/
folder.
For example, if you created a config/redactor/Standard.json
file with the following content:
{
"buttons": ["html", "format", "bold", "italic", "lists", "link", "file"],
"plugins": ["fullscreen"]
}
…then a “Standard” option would become available within the “Redactor Config” setting on your Redactor field’s settings.
See the Redactor documentation for a list of available config options and buttons.
Craft addes the enforceButtonOrder
config option that can be set to a list of button names in the expected order. This option should be used to address the uncontrollable button order set by Redactor when adding plugins to the configuration.
Redactor fields use HTML Purifier to ensure that no malicious code makes it into its field values, to prevent XSS attacks and other vulnerabilities.
You can create custom HTML Purifier configs that will be available to your Redactor fields. They should be created as JSON files in your config/htmlpurifier/
folder.
Copy Default.json as a starting point, which is the default config that Redactor fields use if no custom HTML Purifier config is selected.
See the HTML Purifier documentation for a list of available config options.
For advanced customization, you can modify the HTMLPurifier_Config
object directly via the craft\redactor\Field::EVENT_MODIFY_PURIFIER_CONFIG
event.
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;
// ...
}
);
All first party Redactor JS plugins are bundled by default. To enable them, just add the plugin handle to the plugin
array in your Redactor config.
{
"plugins": ["alignment", "fullscreen"]
}
You can also supply your own Redactor plugins by saving them in your config/redactor/
folder. You can either place the plugin directly in that folder, or within a subfolder that is named after the plugin:
config/
└── redactor/
└── plugins/
├── foo.js
└── bar/
└── bar.js
Other Craft plugins can supply additional Redactor JS plugin locations using the craft\redactor\Field::EVENT_REGISTER_PLUGIN_PATHS
event.