這個TypoScript模板適用於TYPO3 CMS 6.2.17服務器。
page.30 = CONTENT
page.30 {
table = tt_content
select {
orderBy = sorting
where = colPos = 0
}
renderObj = COA
renderObj {
wrap = <div>|</div>
10 = COA
10.10 = TEXT
10.10.if.isTrue.field = header_link
10.10.if.isFalse.field = image
10.10 {
stdWrap.data = header_link
stdWrap.typolink {
parameter.field = header_link
wrap = <img src="|" />
ATagBeforeWrap = 1
}
}
10.20 = TEXT
10.20.if.isFalse.field = header_link
10.20.stdWrap.field = header
10.20.stdWrap.wrap = <h1>|</h1>
}
}
結果顯示tt_content
header
字段除非兩者header_link
和image
字段測試爲陽性。以下是我在測試中使用的tt_content
記錄的相關字段。 (該||表示空字段值。)
uid|hidden|Sorting|CType|header|image|deleted|colPos|header_link|
29|0|256|text|Regular text element|NULL|0|0||
30|0|512|image|Image element|0|0|0|file:37|
31|0|384|image|Image element with no image|0|0|0||
32|0|768|div|Divider|NULL|0|0||
我包括hidden
和deleted
列作爲一個提醒,因爲如果任一設定爲1
,內容select
功能不會返回記錄renderObj使用。還有對開始日期和結束日期的檢查,以及當前用戶是否具有對內容元素的訪問權限。見"select" in the TypoScript Reference manual。
對象上的多個TypoScript if
語句使用隱式邏輯AND連接在一起。請參閱"if" page in the TypoScript Reference及其具有"Explanation"兩個條件的「更復雜」示例。
這是涉及此測試的if
邏輯。
Object page.30.renderObj.10.10.
uid|header_link|if.isTrue.field = header_link|image|if.isFalse.field = image|Result
29||no|NULL|no|not rendered
30|file:37|yes|0|yes|rendered
31||no|0|yes|not rendered
32||no|NULL|no|not rendered
Object page.30.renderObj.10.20.
uid|header_link|if.isFalse.field = header_link|Result
29||yes|rendered
30|file:37|no|not rendered
31||yes|rendered
32||yes|rendered
輸出顯示產生同樣的結果,如果我們只使用上爲page.30.renderObj.10.10
對象if.isTrue.field = header_link
測試,並留下關閉if.isFalse.field = image
測試。但是,保持if.isFalse.field = image
測試更接近應答請求,並說明檢查多個字段。