TYPO3 12多站点扩展下自定义CKEditor配置方案咨询
TYPO3 12多站点扩展下自定义CKEditor配置方案
核心结论
你提到的RTE.default.preset = EXT:...yaml写法不可行——TypoScript的这个配置仅接受已注册的RTE预设名称,而非直接的YAML文件路径。多站点场景下的最优方案是「先注册站点专属预设,再通过页面TSconfig绑定到对应站点树」。
具体步骤
在每个站点扩展中注册专属RTE预设
在每个站点扩展的ext_localconf.php里,为该站点注册一个唯一标识的RTE预设,避免与其他站点冲突:// 站点扩展site_ext1的ext_localconf.php $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['site_ext1_custom'] = 'EXT:site_ext1/Configuration/RTE/Default.yaml'; // 站点扩展site_ext2的ext_localconf.php $GLOBALS['TYPO3_CONF_VARS']['RTE']['Presets']['site_ext2_custom'] = 'EXT:site_ext2/Configuration/RTE/Default.yaml';这里的
site_ext1_custom是自定义的预设名称,只要保证全局唯一即可。通过页面TSconfig绑定站点到对应预设
每个站点都有独立的根页面,在根页面的页面TSconfig中配置:// site_ext1根页面的TSconfig RTE.default.preset = site_ext1_custom该配置会自动继承到根页面下的所有子页面,实现整个站点树使用专属的CKEditor配置。
可选:细粒度控制(按需使用)
如果需要给某部分页面单独配置RTE,可在对应页面的TSconfig中覆盖根配置:RTE.default.preset = site_ext1_special_custom也可以结合条件判断,比如针对特定页面类型生效:
[page["doktype"] = 1] RTE.default.preset = site_ext1_standard_custom [end]
为什么全局设置无效?
你之前用ext_localconf.php设置全局default预设,会对所有站点生效,无法实现多站点隔离。而通过「注册多预设+页面TSconfig绑定」的方式,能精准控制每个站点树的RTE配置,完全适配多站点扩展的场景。
内容的提问来源于stack exchange,提问作者Boris Weisgerber
相关产品推荐
相关产品推荐

