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

TYPO3 13.3中CKEditor5文件外包:自定义特殊字符插件失效问题

TYPO3 CKEditor5 自定义特殊字符插件(不修改Vendor)解决方案

问题根源分析

你的配置存在两个核心问题:

  1. JavaScript模块映射错误:JavaScriptModules.php中直接将命名空间指向单个JS文件,而非目录,导致模块解析失败
  2. 未正确覆盖核心插件:核心SpecialCharacters插件优先级高于自定义模块,需明确替换核心插件引用

正确配置步骤

1. 修正站点包JavaScript模块映射

修改ub_sitepackage/Configuration/JavaScriptModules.php,将命名空间映射到目录(支持子模块解析):

<?php
return [
    'dependencies' => ['core', 'backend', 'rte_ckeditor'],
    'imports' => [
        '@ub/sitepackage/' => 'EXT:ub_sitepackage/Resources/Public/JavaScript/'
    ],
];

2. 复制并修改核心插件代码

从vendor/typo3/cms-rte-ckeditor/Resources/Public/JavaScript/ckeditor5-plugins/special-characters目录,完整复制所有文件到站点包的Resources/Public/JavaScript/special-characters目录下。

修改special-characters.js添加自定义字符(示例):

// 找到specialCharacters数组,新增自定义分类
const specialCharacters = [
    // 保留原有字符分类...
    {
        title: '自定义特殊字符',
        characters: ['✪', '✯', '✰', '❂']
    }
];

3. 调整CKEditor预设YAML配置

修改ub_sitepackage/Configuration/RTE/ckeditor-ub.yaml,明确替换核心插件:

editor:
  config:
    # 移除核心默认加载的SpecialCharacters插件
    removePlugins:
      - SpecialCharacters
    # 引入自定义插件模块
    importModules:
      - { module: '@ub/sitepackage/special-characters/special-characters.js' }
    # 确保插件注册名称与核心一致,关联工具栏按钮
    plugins:
      - SpecialCharacters
      - SpecialCharactersArrows # 如需保留核心子分类,需同步复制对应文件到站点包
      # 保留其他必要插件...
  toolbar:
    items:
      # 保留其他工具栏项...
      - specialCharacters

4. 缓存清理与验证

  • 清除TYPO3所有缓存(包含JavaScript模块缓存)
  • 强制刷新浏览器页面(Ctrl+F5)
  • 打开RTE编辑器,检查特殊字符面板是否显示自定义字符

关键注意事项

  • 自定义插件必须注册与核心完全相同的插件名称(如SpecialCharacters),确保工具栏按钮能正常关联
  • 若需保留核心的子分类(如箭头、货币字符),需同步复制对应子模块文件到站点包并按需修改
  • 所有修改仅在站点包内完成,避免核心更新后配置丢失

内容的提问来源于stack exchange,提问作者wini

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:09:52