Fluid Syntax: Conditions & Booleans
Boolean conditions
Boolean conditions are expressions that evaluate to true or false.
Boolean conditions can be used as ViewHelper arguments, whenever the datatype
boolean
is given, e.g. in the condition
argument of the
<f:if> ViewHelper.
-
The expression can be a variable, which is evaluated as follows:
- Number: Evaluates to
true
if it is not0
. - Array: Evaluates to
true
if it contains at least one element.
- Number: Evaluates to
-
The expression can be a statement consisting of:
term1 operator term2
, for example{variable} > 3
.- The operator can be one of the following:
>
,>=
,<
,<=
,==
,===
,!=
,!==
, or%
.
- The operator can be one of the following:
- The previous expressions can be combined with
|
(logical OR) or| &&
(logical AND).
Examples:
<f:if condition="{myObject}">
...
</f:if>
<f:if condition="{myNumber} > 3 || {otherNumber} || {somethingElse}">
<f:then>
...
</f:then>
<f:else>
...
</f:else>
</f:if>
<my:custom showLabel="{myString} === 'something'">
...
</my:custom>
Example using the inline notation:
<div class="{f:if(condition: blog.posts, then: 'blogPostsAvailable', else: 'noPosts')}">
...
</div>
Boolean literals
New in version Fluid 4.0
The boolean literals {true}
and {false}
have been introduced.
You can use the boolean literals {true}
and {false}
in ViewHelper calls. This works
both in tag and inline syntax:
<f:render section="MySection" optional="{true}" />
{f:render(section: 'MySection', optional: true)}
If a ViewHelper argument is defined as boolean
, it is also possible to provide
values of different types, which will then be implicitly converted to a boolean:
<f:render section="MySection" optional="1" />
This can be used to remain compatible to Fluid 2, which did not support boolean literals in all cases.