You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TYPO3 12多站点扩展下自定义CKEditor配置方案咨询

TYPO3 12多站点扩展下自定义CKEditor配置方案

核心结论

你提到的RTE.default.preset = EXT:...yaml写法不可行——TypoScript的这个配置仅接受已注册的RTE预设名称,而非直接的YAML文件路径。多站点场景下的最优方案是「先注册站点专属预设,再通过页面TSconfig绑定到对应站点树」。

具体步骤

  1. 在每个站点扩展中注册专属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是自定义的预设名称,只要保证全局唯一即可。

  2. 通过页面TSconfig绑定站点到对应预设
    每个站点都有独立的根页面,在根页面的页面TSconfig中配置:

    // site_ext1根页面的TSconfig
    RTE.default.preset = site_ext1_custom
    

    该配置会自动继承到根页面下的所有子页面,实现整个站点树使用专属的CKEditor配置。

  3. 可选:细粒度控制(按需使用)
    如果需要给某部分页面单独配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 10:52:05