我想从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
}
}
为什么这个正则表达式不起作用?或者有更好的解决方案吗?
您可以使用stdWrap.cropHTML
来实现类似的效果。它还将缩短长的第一段,如果第一段太短,则使用多个段落。但在你的情况下,也许这是可取的?
请注意,TYPO3 4.6中不赞成使用HTML cObject。您应该使用TEXT cObject。
我怀疑在您的案例中,parseFunc没有正确应用,因为stdWrap不能用于值,而是直接用于对象。如果没有stdWrap,保存在数据库中的换行符不会转换为<p>
标记,因此您的regex无法应用。
我试图修复你的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>