[英]TYPO3 inline fluid condition and typoscriptObjectPath
我在尋找內聯流體條件和typoscriptObjectPath的解決方案。
工作正常:
<f:cObject typoscriptObjectPath="lib.currentDate" />
工作正常:
<f:if condition="{price.day} == {f:cObject(typoscriptObjectPath:'lib.currentDate')}">
<f:then>work</f:then>
<f:else>dont work</f:else>
</f:if>
工作正常:
{f:if(condition:'{price.day} == \'Sunday\'',then:'active',else:'test')}
不要工作
{f:if(condition:'{price.day} == \'{f:cObject(typoscriptObjectPath:'lib.currentDate')}\'',then:'active',else:'test')}
如何使用正確的內聯代碼?
您無需在視圖中解析lib.currentDate
,因為您只需將其輸出復制到Fluid變量即可。 它將避免嵌套引號,方括號等任何問題。當然,我認為這是與PAGE
流暢模板結合使用的:
lib.currentDate = TEXT
lib.currentDate {
data = date:U
strftime = %A
}
page = PAGE
page {
# ....
10 = FLUIDTEMPLATE
10 {
# ....
variables {
mainContent < styles.content.get
currentDate < lib.currentDate
}
}
}
因此您可以像下面這樣使用:
<f:if condition="{price.day} == {currentDate}">That's today!</f:if>
<!-- or... -->
{f:if(condition:'{price.day} == {currentDate}', then: 'active', else: 'not-active')}
當然,如果您在插件的上下文中工作,則可以在操作中使用assign
方法執行相同的操作,例如:
$this->view->assign('currentDate', strftime('%A',date('U')));
請注意,您還有其他選擇:
price.day
和currentDate
為不同類型並且在比較之前需要類型轉換時將很有用。 在price
模型中創建一個transient
字段,getter將日期字段與strftime('%A',date('U'))
並返回boolean
值,因此您可以將其直接用作:
<f:if condition="{price.myTransientField}">Hooray!</f:if>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.