1

我想从 rte 字段中截断除第一段之外的所有内容以获取摘录:

20 = HTML
20.value.field = tx_myextention_field
20.value.parseFunc < lib.parseFunc_RTE
20.wrap = <p class="claim-long">|</p>
20.stdWrap.replacement {
  10 {
    search = /^(.*?\/p).*$/m
    replace = \1>
    useRegExp = 1
 }
}

为什么这个正则表达式不起作用?还是有更好的解决方案?

4

2 回答 2

0

你可以使用stdWrap.cropHTML来达到类似的效果。如果第一个太短,它也会缩短一个长的第一段,并使用多个段落。但也许这在你的情况下是可取的?

于 2015-04-26T09:00:16.953 回答
0

请注意 HTML cObject 在 TYPO3 4.6 中已被弃用。您应该使用 TEXT cObject。

我怀疑在您的情况下, parseFunc 没有正确应用,因为 stdWrap 不能用于值,而是直接用于对象。如果没有 stdWrap,则保存在数据库中的换行符不会转换为<p>标签,因此您的正则表达式将无法应用。

我试图修复您的 TypoScript(但未经测试):

20 = TEXT
20.field = tx_myextension_field
20.stdWrap.parseFunc < lib.parseFunc_RTE
20.stdWrap.replacement {
  10 {
    search = /^(.*?\/p).*$/m
    replace = \1>
    useRegExp = 1
 }
}
20.wrap = <p class="claim-long">|</p>
于 2015-04-26T20:03:37.143 回答