TYPO3 RTE font/css 根据后端设置更改(typoscript 和 RTE 初始化)

TYPO3 RTE font/css change according to backend setting (typoscript and RTE initialisation)

我需要更改 RTE 的 CSS,实际上是整个站点。仅当在后端常量编辑器中选择时才会发生此更改。 (我想在特殊情况下允许中文之类的)

我的问题是RTE是否在根据常量读取正确的font/css之前进行了初始化?

此答案与 TYPO3 7.6 和 v8 分支相关。不知道TYPO3 v9会是什么情况

富文本编辑器 (RTE) 组件是一个 FormEngine 组件,FormEngine 组件按两种模式工作:

  • 一个模式创建包含 TCEForms 数组及其所需的所有相关资产的结构。
  • 另一种单一模式呈现该结构并插入每个组件所需的资产(对于使用完全相同资产的组件,只加载一次)。

这意味着 RTE 直到很晚才初始化(在创建所有结构之后,但在渲染它们之前 - 因为我假设 "initialised" 你的意思是在 PHP 方面而不是在客户端浏览器中)并且您确实可以选择读取常量并在呈现之前操作这些结构。你覆盖的初始化确实可以依赖于 TS 常量。

您的任务需要更多背景信息:

  • 为了操作表单结构,当前推荐的做法是创建自定义 FormEngine 组件并将其添加为 RTE 组件的依赖项。这使得每次使用 RTE 时都会调用您的组件(因此您可以影响每个字段的各个参数,以及附加全局或特定于 ID 的资产)。
  • FormEngine组件创建一开始可能有点难掌握,所以一个例子会派上用场。此 URL 显示了由 Flux 扩展添加的自定义组件 - 它通过在组件注册表中添加一个新的数组条目并使用依赖项和 before/after 指令来匹配该新条目来实现。 https://github.com/FluidTYPO3/flux/blob/development/ext_localconf.php#L85.
  • 您可以使用相同的注册表操作来更改现有组件的依赖关系,将您自己的组件添加到列表中,并专门针对 RTE FormEngine 组件(其 class 名称为 TYPO3\CMS\Rtehtmlarea\Form\Element\RichTextElement - https://github.com/TYPO3/TYPO3.CMS/blob/TYPO3_7-6/typo3/sysext/rtehtmlarea/Classes/Form/Element/RichTextElement.php).

希望这些信息足以指导您找到完美的解决方案,为任何 FormEngine 组件添加 CSS 覆盖,并且仅在使用该类型的组件时准确触发它。