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

时间:2016-11-18 13:14:23

标签: css typo3 typoscript rte

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

我的问题是RTE是否在根据常量读取正确的字体/ css之前是否已初始化?

1 个答案:

答案 0 :(得分:0)

此答案与TYPO3 7.6和v8分支相关。我不确定TYPO3 v9会出现什么情况。

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

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

这意味着RTE直到很晚才被初始化(在创建所有结构之后,但在它们被渲染之前 - 因为我假设通过"初始化"你的意思是在PHP方面而不是在客户端浏览器)你可以选择在渲染之前读取常量并操纵这些结构。你重写的初始化确实取决于TS常量。

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

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

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