The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dotiac::DTL::Tag::if - The {% if [not ]VARIABLE1[ or [not ]VARIABLE2[ or ..]]|[and [not ]VARIABLE2[ and ..]] %} tag

SYNOPSIS

Template file:

        {% if var %}
                var is true
        {% endif %}
        {% if var %}
                var is true
        {% else %}
                var is not true
        {% endif %}
        {% if not var %}
                var is not true
        {% endif %}
        {% if not var %}
                var is not true
        {% else %}
                var is true
        {% endif %}
        {% if var and var2 and not var3 %}
                ....
        {% endif %}
        {% if var or not var2 or var3 %}
                ....
        {% endif %}

DESCRIPTION

Conditional rendering of templates, everything between {% if .. %} and {% else %} or {% endif %} is only rendered if the condition in the if clause is true.

The part between {% else %} and {% endif %}, if exists, is only rendered if the condition is false.

The condition

You can link conditions with either "and" or "or", but not both (there is a problem with precedence), you have to use two {% if %}'s for that.

        {% if var1 %}
                {% if var2 or var3 %}
                        This would be the same as "if var1 and (var2 or var3)", if that would work.
                {% endif %}
        {% endif %}

You can negate a variable in any case with a "not" before it:

        {% if not var %}
                ....
        {% endif %}
        
        {% if not var1 and var2 and not var3 %}
                ...
        {% endif %}
        {% if not var1 or var2 or not var3 %}
                ...
        {% endif %}

False values

False is:

        0 # The number 0
        0.00 # The number 0.0
        "" # An empty string
        "0" # A string containing a null
        undef # A null value
        {} # An empty hash
        [] # An empty list/array
        An unknown variable, even if $Dotiac::DTL::TEMPLATE_STRING_IF_INVALID is set to something true.
        not "a true value" # not negates true to false and false to true.

True values

Everything else is true, including references to objects which are false and references to empty strings.

SEE ALSO

http://www.djangoproject.com, Dotiac::DTL

BUGS AND DIFFERENCES TO DJANGO

If you find any, please report them

LEGAL

Dotiac::DTL was built according to http://docs.djangoproject.com/en/dev/ref/templates/builtins/.

AUTHOR

Marc-Sebastian Lucksch

perl@marc-s.de