The first thing to do is to create a base configuration that is shared by both user groups. In our example we call the file CkEditorBase.yaml.
imports:
- { resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml" }
- { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml" }
- { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml" }
editor:
config:
removeButtons:
- Save
- Templates
- NewPage
In the next step we import the base configuration into our configuration file for editors. The reason for this is that we often disable features via removeButtons and therefore need a separate selection for admins and editors.
CkEditorDefault.yaml
# CKEditor configuration for editor role
imports:
- { resource: "EXT:in2template/Configuration/Yaml/CkEditorBase.yaml" }
editor:
config:
removeButtons:
- Source
We repeat the same step for the admin configuration file (CkEditorAdmin.yaml).
# CkEditor configuration for admin role
imports:
- { resource: "EXT:in2template/Configuration/Yaml/CkEditorBase.yaml" }
We can now register the two files for the different user roles as CKEditor presets via ext_localconf.php.
$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['in2template'] = 'EXT:in2template/Configuration/Yaml/CkEditorDefault.yaml';
$GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['in2template_admin'] = 'EXT:in2template/Configuration/Yaml/CkEditorAdmin.yaml';
In the Typoscript we can now switch between the two presets.
RTE.default.preset = in2template
[backend.user.isAdmin]
RTE.default.preset = in2template_admin
[END]
With these five simple steps you can now enable and disable CKEditor features for different user groups.