我有一个TYPO3,它会在我为相关字段启用RTE编辑器之前从我创建的内容中删除任何<p>
标记,然后将其保存到数据库中。似乎我找不到用TypoScript禁用此行为的方法。一旦我禁用RTE编辑器,我就可以保存<p>
个标签,并在前端正确呈现它们。当我直接将它们直接添加到bodytext字段的tt_content表中的数据库中时,它们也会在前端正确呈现。
当我切换到RTE的编辑源模式时,我会看到所有<p>
个标签。在保存之前和之后(也就是它们永远不会进入数据库)所以看起来它们会转换为(linux)换行符,并在编辑器在后端加载时转换回<p>
标签。但是那些换行当然对前端没有影响。
我认为这种行为会由RTE.default.proc
控制,但是那些对我来说都很好看(p已经在允许的标签中,并且不知道为什么它可以被剥离)。我还尝试禁用RTE.default.proc.entryHTMLparser_db
和RTE.default.proc.exitHTMLparser_db
,因为我不介意,如果您在RTE的编辑源模式中看到HTML内容(因此仍然启用了RTE!)根本不会被触及 - 实际上我更喜欢它 - 但这没有任何效果。另一方面,当我将标签添加到之前不存在的允许标签时(例如<button>
),这样就可以了解我尝试添加到RTE.default.proc
的内容一般不会被忽略。
那么我如何阻止TYPO3从RTE内容中剥离<p>
标签或完全触摸它?我更喜欢使用TypoScript的解决方案,但同时我也会对sys扩展中的丑陋黑客感到高兴,只要它有效......
答案 0 :(得分:1)
我不确定这是否是一个错误,但问题的解决方案在于p.rmTagIfNoAttrib = 1
。至少在我的TYPO3版本(v6.1.7和几乎只有内置扩展)中,我无法在页面的预设TypoScript或RTE编辑器中找到此设置,所以我猜它默认为0
。我的逻辑0
表示false
所以我会说默认会读为“如果没有属性则删除标记?:不!”。
然而,TYPO3似乎按照自己的逻辑运作。将以下语句添加到页面TS可解决我的问题并保留<p>
标记:
RTE.default.proc {
entryHTMLparser_db {
tags {
p.rmTagIfNoAttrib = 1
}
}
}
答案 1 :(得分:0)
此行为的原因are explained in the TYPO3 manual:
在TYPO3后端中来回执行的许多转换可以追溯到将RTE合并到浏览器中的挑战。然后有时需要回退一个简单的
<textarea>
,其中富文本必须以足够简单的方式呈现,以便编辑可以在没有视觉帮助的情况下使用它。