Zum Inhalt springen

Viewhelper: "else if"

Erstellt am 18. Juni 2013 · 3 Antworten · letzte Antwort am 11. Juni 2015

Tags: Frage

tvnetzwerk ·

Kleine Verständnisfrage:

Das geht ja super:

<f:if condition="{myvar}">
  <f:then>
    Displayed if myvar is neither an empty string nor "0".
  </f:then>
  <f:else>
    Displayed if myvar IS an empty string or "0".
  </f:else>
</f:if>

Aber was ist mit else if? Ist wohl nicht möglich, oder?

Vielen Dank
Carsten

Unbekannter Benutzer ·

Dann musst du in dein <f:else> wieder ein <f:if> mit <f:then> und <f:else> einbauen. Manchmal ist das notwendig aber in der Regel deutet es darauf hin, dass Funktionalität im View abgebildet wird, die eigentlich woanders hin gehört.

tvnetzwerk ·

Danke für den Tip.
Da haben wir die verschachtelten If-Schleifen... ;-)

In meinem Fall wäre es ganz hilfreich, wenn man zum Beispiel mit Grids arbeitet. Und die sind ja häufig von div's mit unterschiedlichen Klassen umschlossen.

jpsy ·

Je nach Aufgabenstellung kannst Du statt if / elseif / else unter Umständen auch ein switch + case verwenden:

<f:switch expression="{myvar}">
  <f:case value="0">NULL</f:case>
  <f:case value="1">EINS</f:case>
</f:switch>

Um dabei auch ein leeres myvar zu erkennen, kannst Du so vorgehen:

<f:switch expression="{myvar}X">
  <f:case value="X">LEER</f:case>
  <f:case value="0X">NULL</f:case>
  <f:case value="1X">EINS</f:case>
</f:switch>

http://docs.typo3.org/typo3cms/drafts/github/froemken/ExtbaseGuide/Fluid/ViewHelper/Switch.html