2015-06-12 73 views
-2

我希望viewhelper,可以有助於分配流體中的變量,我不希望變量從控制器傳遞。如何分配流體中的變量?

+0

我不明白你想要什麼? –

+2

看看擴展名'vhs'。它提供[這樣一個ViewHelper](https://fluidtypo3.org/viewhelpers/vhs/master/Variable/SetViewHelper.html)等等。真的很有用。 – Jost

回答

9

安裝擴展名爲VHS從TYPO3庫

定義命名空間就像在你的流體模板頂部

{namespace v=FluidTYPO3\Vhs\ViewHelpers} 

然後使用設置視圖助手

<v:variable.set name="test" value="12345" /> 
Value of test : {test} 

以下{test}會返回值12345

爲了記錄全球變量

<v:variable.register.set name="test" value="12345"/>] 

獲取值的全球變量

Value of global variable : <v:variable.register.get name="test"> 
0

由於第一流體版本,它可以定義變量的一個特殊區域:還有就是VH f:alias使您在本VH的範圍來定義新的變量。這是與ext:vhs中的variable.set VH的區別。

<f:alias map="{firstName: 'John', lastName: 'Doe'}"> 
    <p>Hello, my name is {firstName} {lastName}</p> 
</f:alias> 

<f:for each="{users}" as="user" iteration="iterator"> 
    <f:if condition="{iterator.isFirst}"> 
     <v:variable.set name="firstName">{user.firstName}</v:variable.set> 
     <v:variable.set name="lastName">{user.lastName}</v:variable.set> 
    </f:if> 
    : 
    do other output 
    : 
</f:for> 
<p>the first user was {firstName} {lastName}.</p> 

與流體內部設置變量的問題是做編程邏輯內流體的可能性:

<v:variable.set name="counter" value="0"> 
<f:for each="records" as="record"> 
    <f:if condition="{record.flag}"> 
     <v:variable.set name="counter"> 
      <f:cObject typoscriptObjectPath="lib.calc"> 
       {counter}+1 
      </f:cObject> 
     </v:variable.set> 
    </f:if> 
</f:for> 
<p>there are {counter} records with a flag set.</p> 

這個Typo腳本

lib.calc = TEXT 
lib.calc.current = 1 
lib.calc.prioriCalc = 1