1

我有一个 TYPO3,它<p>会在为相关字段启用 RTE 编辑器时从我创建的内容中删除任何标签,然后再将其保存在数据库中。而且似乎我找不到使用 TypoScript 禁用此行为的方法。一旦我禁用 RTE 编辑器,我就可以保存<p>标签,它们会在前端正确呈现。当我直接将它们直接添加到 bodytext 字段的 tt_content 表中的数据库中时,它们也会在前端正确呈现。当我切换到 RTE 的编辑源模式时,我看到所有<p>标签都已到位。在保存之前和之后(他们也从来没有进入数据库)所以看起来他们被转换为(linux)换行符或其他东西并被转换回<p>编辑器在后端加载它们时的标签。但是这些换行符当然对前端没有影响。

我认为这种行为会受到控制,RTE.default.proc但那里的一切对我来说看起来都不错(p 已经在允许的标签中,并且不知道为什么它可以被剥离)。我还尝试禁用RTE.default.proc.entryHTMLparser_dbandRTE.default.proc.exitHTMLparser_db因为如果您在 RTE 的编辑源模式中看到的 HTML 内容(因此仍然启用 RTE!)根本不会被触及,我不介意 - 事实上我会更喜欢它 - 但这没有效果。另一方面,当我将标签添加到以前不存在的允许标签(例如<button>)时,这可以正常工作,因此我尝试添加的内容RTE.default.proc通常不会被忽略。

那么如何阻止 TYPO3 从<p>RTE 内容中删除我的标签或完全触摸它呢?我更喜欢使用 TypoScript 的解决方案,但与此同时,只要它有效,我也会对 sys 扩展中的丑陋黑客行为感到高兴......

4

2 回答 2

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
        }
    }
}
于 2014-01-29T12:18:57.857 回答
0

TYPO3 手册中解释了这种行为的原因:

许多在 TYPO3 后端来回执行的转换可以追溯到将 RTE 合并到浏览器中的挑战。然后有时需要回退一个简单的<textarea> 富文本,必须以足够简单的方式呈现富文本,以便编辑人员可以在没有视觉帮助的情况下使用它。

于 2015-11-27T14:31:03.220 回答