如何在 TYPO3 8 LTS 中完全禁用 HTML 转换
How to disable HTML transformation in TYPO3 8 LTS completely
在 TYPO3 8.7.8 LTS 和全新安装中,设置为在安装期间创建一个空白基础页面,并且当您在文本元素中写入内容时禁用 CKEditor 扩展(我认为这是 tt_content
.bodytext
字段)它被转换(添加 <p>
标签,删除换行符等......)即使没有启用所见即所得编辑器。所以这个转换必须发生在 TYPO3 后端。
我现在正尝试禁用它一段时间,但到目前为止我都失败了。我尝试了 https://docs.typo3.org/typo3cms/CoreApiReference/Rte/Transformations/Tsconfig/Index.html 中的方法
而这里主要是
This configuration in "Page TSconfig" will disable the RTE altogether:
RTE.default.disabled = 1
准确地说,我的 Page TSConfig
看起来像这样,并且转换仍然发生:
RTE.default.proc.dontRemoveUnknownTags_db = 1
RTE.default.proc.entryHTMLparser_db = 0
RTE.default.proc.exitHTMLparser_db = 0
RTE.default.disabled = 1
RTE.config.tt_content.bodytext.proc.dontRemoveUnknownTags_db = 1
RTE.config.tt_content.bodytext.proc.entryHTMLparser_db = 0
RTE.config.tt_content.bodytext.proc.exitHTMLparser_db = 0
RTE.config.tt_content.bodytext.disabled = 1
所以问题是,如何才能完全禁用 HTML 转换?我是否需要在 TypoScript Setup
中添加一些东西(我尝试了一点但没有运气)或者我是否必须完全做一些事情 different/in 与 Page TSConfig
不同的停止?
查看(和调试)\TYPO3\CMS\Core\Html\RteHtmlParser
和此处 RTE_transform($value, $specConf = [], $direction = 'rte', $thisConfig = [])
似乎是负责转换该字段的函数,我知道我的案例的转换发生在模式 foreach
.
我也知道我的 RTE.default.disabled = 1
没有放错地方。它是加载配置的一部分,但至少在这一点上它根本没有任何作用。
设置RTE.default.proc.overruleMode = none
或RTE.default.proc.mode = none
有影响。一个人会这样做,任何不是注册模式的字符串都可以禁用任何转换。
恕我直言:TYPO3 文档看起来和它的代码库一样混乱,也许 RTE.default.disabled = 1
在某处有一个用例,如果您进一步研究文档,也许您会发现它,但我担心它也可能只是是一些旧版本的人工制品,大部分预处理和后处理逻辑似乎是(从我过去两个小时在这里看到的,我不相信这个框架的其他部分是 'modern',最简单的后端任务的数据库查询数量表明我可能是对的)。不管怎样,我的问题已经解决了,祝那些出于某种原因也需要和这只过去的爬行动物一起工作的人好运。
tl;dr:在您的 Page TSConfig
中设置 RTE.default.proc.overruleMode = none
在 TYPO3 8.7.8 LTS 和全新安装中,设置为在安装期间创建一个空白基础页面,并且当您在文本元素中写入内容时禁用 CKEditor 扩展(我认为这是 tt_content
.bodytext
字段)它被转换(添加 <p>
标签,删除换行符等......)即使没有启用所见即所得编辑器。所以这个转换必须发生在 TYPO3 后端。
我现在正尝试禁用它一段时间,但到目前为止我都失败了。我尝试了 https://docs.typo3.org/typo3cms/CoreApiReference/Rte/Transformations/Tsconfig/Index.html 中的方法 而这里主要是
This configuration in "Page TSconfig" will disable the RTE altogether:
RTE.default.disabled = 1
准确地说,我的 Page TSConfig
看起来像这样,并且转换仍然发生:
RTE.default.proc.dontRemoveUnknownTags_db = 1
RTE.default.proc.entryHTMLparser_db = 0
RTE.default.proc.exitHTMLparser_db = 0
RTE.default.disabled = 1
RTE.config.tt_content.bodytext.proc.dontRemoveUnknownTags_db = 1
RTE.config.tt_content.bodytext.proc.entryHTMLparser_db = 0
RTE.config.tt_content.bodytext.proc.exitHTMLparser_db = 0
RTE.config.tt_content.bodytext.disabled = 1
所以问题是,如何才能完全禁用 HTML 转换?我是否需要在 TypoScript Setup
中添加一些东西(我尝试了一点但没有运气)或者我是否必须完全做一些事情 different/in 与 Page TSConfig
不同的停止?
查看(和调试)\TYPO3\CMS\Core\Html\RteHtmlParser
和此处 RTE_transform($value, $specConf = [], $direction = 'rte', $thisConfig = [])
似乎是负责转换该字段的函数,我知道我的案例的转换发生在模式 foreach
.
我也知道我的 RTE.default.disabled = 1
没有放错地方。它是加载配置的一部分,但至少在这一点上它根本没有任何作用。
设置RTE.default.proc.overruleMode = none
或RTE.default.proc.mode = none
有影响。一个人会这样做,任何不是注册模式的字符串都可以禁用任何转换。
恕我直言:TYPO3 文档看起来和它的代码库一样混乱,也许 RTE.default.disabled = 1
在某处有一个用例,如果您进一步研究文档,也许您会发现它,但我担心它也可能只是是一些旧版本的人工制品,大部分预处理和后处理逻辑似乎是(从我过去两个小时在这里看到的,我不相信这个框架的其他部分是 'modern',最简单的后端任务的数据库查询数量表明我可能是对的)。不管怎样,我的问题已经解决了,祝那些出于某种原因也需要和这只过去的爬行动物一起工作的人好运。
tl;dr:在您的 Page TSConfig
RTE.default.proc.overruleMode = none