2016-02-28 53 views
0

我搜索內聯流體條件和typoscriptObjectPath的解決方案。TYPO3內聯流體條件和輸入框對象PathPath

做工精細:

<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')} 

我該如何使用正確的內聯代碼?

回答

1

您不需要在您的視圖中解析lib.currentDate cObject,因爲您只需將其輸出拷貝到其輸出爲流體變量。這將避免與嵌套的引號,括號中的任何問題,等等等等......當然,我認爲,這是結合了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'))); 

無TE你也有其他選擇:

  1. 創建自定義如果視圖助手,當price.daycurrentDate是不同的類型,需要類型轉換比較之前,這將是有益的。
  2. price模式,」吸氣天場strftime('%A',date('U'))比較創建transient現場並返回boolean價值,這樣你就可以直接使用它作爲:

    <f:if condition="{price.myTransientField}">Hooray!</f:if>