2015-04-05 2 views
3

Я немного новичок в жидкости, и я хочу сделать следующее выражение php в Fluid.Fluid: if - then - elseif - else

if ($var == 'something') { 
    // do something 
} elseif ($other-var == 'something else') { 
    // do something else 
} else { 
    // do then the other thin 
} 

Как это сделать в жидкости? Я не вижу инструкции elseif в документации.

ответ

13

Поскольку TYPO3 8LTS

Начиная с версии 8 TYPO3 использует автономную версию жидкости, которая была сильно развита и получила массу новых функций, таких как elseif:

<f:if condition="{var} == 'something'"> 
    <f:then>do something</f:then> 
    <f:else if="{other-var} == 'something else'">do something else</f:else> 
    <f:else>do the other thing</f:else> 
</f:if> 

Кроме того, есть поддержка синтаксиса как не так:

<f:if condition="{something} || {someOtherThing}"> 
    Something or someOtherThing 
</f:if> 

До и включая TYPO3 7LTS

С Plain жидкости можно вложить два, если ViewHelper:

<f:if condition="{var} == 'something'"> 
    <f:then> 
     // do something 
    </f:then> 
    <f:else> 
     <f:if condition="{other-var} == 'something else'"> 
      <f:then> 
       // do something else 
      </f:then> 
      <f:else> 
       // do then the other thing 
      </f:else> 
     </f:if> 
    </f:else> 
</f:if> 

Или вы могли бы реализовать свой собственный ViewHelper или использовать библиотеку ViewHelper как VHS, которые имеют ViewHelper, что делает это более элегантно.

0

Там есть возможность для AND и OR в TYPO3 7 LTS:

http://typo3blogger.de/fluid-ifviewhelper-conditions-verknupfen/

И:

<f:if condition="{0: value1, 1: value2} == {0: myValue1, 2: myValue2}"> 
    <!-- your code--> 
</f:if> 

ИЛИ (в данном примере для проверки того, что по крайней мере одна переменная не равно нулю) :

<f:if condition="{0: value1, 1: value2} != {0: 0, 2: 0}"> 
    <!-- your code--> 
</f:if> 

Надежды, которые помогают кому-то.