在字段中使用字符串替换/正则表达式来获取rte字段

时间:2013-08-07 14:42:15

标签: php regex typo3 typoscript

我想截取除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
 }
}

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

请注意,TYPO3 4.6中不推荐使用HTML cObject。您应该使用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>