2013-08-07 34 views
1

我想從一個RTE場截斷的一切,但第一款用於摘錄替換Typo腳本/正則表達式:使用字符串的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

你可以使用stdWrap.cropHTML來達到類似的效果。它也會縮短第一段,如果第一段太短,則使用多段。但也許這在你的情況是可取的? http://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Stdwrap/Index.html#stdwrap-crophtml – Jost

+0

「不工作」意味着整個文本被渲染。沒有更換,但感謝cropHTML方法,我認爲這應該適用於我的情況 –

回答

0

您可以使用stdWrap.cropHTML來達到類似的效果。它也會縮短第一段,如果第一段太短,則使用多段。但也許這在你的情況是可取的?

0

請注意,HTML cObject在TYPO3 4.6中已棄用。你應該使用TEXT cObject。

我懷疑在你的情況下,parseFunc沒有正確應用,因爲stdWrap不能在值上直接使用,而是直接在對象上使用。沒有stdWrap,保存在數據庫中的換行符不會轉換爲<p>標記,因此您的正則表達式無法應用。

我試着把你的Typo腳本(但它是未經測試):

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>