Течност: if - then - elseif - else

Аз съм малко нов в течността и искам да направя следния php израз във Fluid.

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

Как мога да направя това във Fluid? Не виждам оператора elseif в документацията.


person Tom    schedule 05.04.2015    source източник


Отговори (2)


От TYPO3 8LTS

Тъй като версия 8 TYPO3 използва самостоятелната версия на fluid, която беше сериозно разработена и получи много нови функции като 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 Fluid можете да вложите две, ако 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, който прави това по-елегантно.

person Daniel    schedule 05.04.2015
comment
В TYPO3 8 се уверете, че {other-var} в f:else if={other-var} не съдържа низ с изчисления като '100% foo - 0% bar'. Това ще завърши с Uncaught TYPO3 Exception Error 'Modulo by zero' - person jokumer; 12.04.2018

Има възможност за И и ИЛИ в 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>

Надявам се това да помогне на някого.

person MrThree    schedule 07.12.2017