---
title: "Feature: #88818 - Introduce events to modify CKEditor configuration"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:feature-88818"
source: "Changelog/10.3/Feature-88818-IntroduceEventsToModifyCKEditorConfiguration.rst"
typo3-version: "10.3"
typo3-major: 10
type: "feature"
issue: 88818
forge: "https://forge.typo3.org/issues/88818"
tags: ["Backend", "PHP-API", "RTE", "ext:rte_ckeditor"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Feature: #88818 - Introduce events to modify CKEditor configuration {#feature-88818}

See [forge#88818](https://forge.typo3.org/issues/88818)

## Description {#description}

The following new PSR-14-based Events are introduced which allow
to modify CKEditor configuration.

-   `\TYPO3\CMS\RteCKEditor\Form\Element\Event\AfterGetExternalPluginsEvent`
-   `\TYPO3\CMS\RteCKEditor\Form\Element\Event\BeforeGetExternalPluginsEvent`
-   `\TYPO3\CMS\RteCKEditor\Form\Element\Event\AfterPrepareConfigurationForEditorEvent`
-   `\TYPO3\CMS\RteCKEditor\Form\Element\Event\BeforePrepareConfigurationForEditorEvent`

## Example {#example}

An example implementation how you could extend the existing
configuration to register a new plugin:

`EXT:my_extension/Configuration/Services.yaml`

```yaml
services:
  Vendor\MyExtension\EventListener\RteConfigEnhancer:
    tags:
      - name: event.listener
        identifier: 'ext-myextension/rteConfigEnhancer'
        method: 'beforeGetExternalPlugins'
        event: TYPO3\CMS\RteCKEditor\Form\Element\Event\BeforeGetExternalPluginsEvent
      - name: event.listener
        identifier: 'ext-myextension/rteConfigEnhancer'
        method: 'beforePrepareConfiguration'
        event: TYPO3\CMS\RteCKEditor\Form\Element\Event\BeforePrepareConfigurationForEditorEvent
```

`EXT:my_extension/Classes/EventListener/RteConfigEnhancer.php`

```php
namespace Vendor\MyExtension\EventListener;

use TYPO3\CMS\RteCKEditor\Form\Element\Event\BeforeGetExternalPluginsEvent;
use TYPO3\CMS\RteCKEditor\Form\Element\Event\BeforePrepareConfigurationForEditorEvent;

class RteConfigEnhancer
{
   public function beforeGetExternalPlugins(BeforeGetExternalPluginsEvent $event): void
   {
      $data = $event->getData();
      // @todo make useful decisions on fetched data
      $configuration = $event->getConfiguration();
      $configuration['example_plugin'] = [
         'resource' => 'EXT:my_extension/Resources/Public/CKEditor/Plugins/ExamplePlugin/plugin.js'
      ];
      $event->setConfiguration($configuration);
   }

   public function beforePrepareConfiguration(BeforePrepareConfigurationForEditorEvent $event): void
   {
      $data = $event->getData();
      // @todo make useful decisions on fetched data
      $configuration = $event->getConfiguration();
      $configuration['extraPlugins'][] = 'example_plugin';
      $event->setConfiguration($configuration);
   }
}
```
