Перейти к основному содержимому

Условные выражения в PROScript

IF / ELSIF / ELSE

[% IF anketa.base.name %]
[% anketa.base.name %]
[% END %]
[% IF !anketa.base.name %]
шаблонное значение #выводим если anketa.base.name не заполнено
[% END %]

Можно объединять несколько выражений с помощью ELSIF и/или ELSE:

[% IF anketa.base.age < 10 %]
Привет [% anketa.base.name %], твоя мама знает, что ты играешь в интернете?
[% ELSIF anketa.base.age < 18 %]
Извините, вы слишком малы для покупки алкоголя
[% ELSE %]
Добро пожаловать[% anketa.base.name %]!
[% END %]

Для сравнения можно использовать следующие операторы:

== != < <= > >= && || ! and or not

Условия также могут быть составными:

[% IF (name == 'admin' || uid <= 0) && mode == 'debug' %]
I'm confused.
[% ELSIF more > less %]
That's more or less correct.
[% END %]

В зависимости от условия можно выводить разные ссылки:

[% IF условие %]
<a href="example.com" текст ссылки >
[% ELSE %]
<a href="example-2.com" другой текст ссылки >
[% END %]

А можно внутри одной ссылки подставлять разные адреса:

<a href="[% IF условие %] example.com [% ELSE %] example-2.com [% END %] " текст ссылки></a>

SWITCH / CASE

В некоторых случаях может быть удобнее использовать конструкцию SWITCH/CASE:

[% SWITCH anketa.base.city %]
[% CASE "Воронеж" %]
...
[% CASE ["Москва", "Петербург"] %]
...
[% CASE someobject.keys() %]
...
[% CASE DEFAULT %]
...
[% END %]