Условные блоки позволяют выводить (обрабатывать) или не выводить (не обрабатывать) участок шаблона в зависимости от
истинности или ложности различных условий, применяемых к значениям специальных переменных (таких как
$GROUP_ID$). Условный блок начинается конструкцией '%IF()%' и заканчивается оператором '%ENDIF%'.
Допускаются вложения условных блоков друг в друга.
Синтаксис условных блоков следующий:
%IF($VARNAME$[условия])%истинный_код[%ELSE%ложный_код]%ENDIF%
[ ] – (квадратные скобки) указывают на допустимость отсутствия элемента синтаксиса (вводить их не нужно).
$VARNAME$ - название специальной переменной, к значению которой будет применено условие.
истинный_код – HTML-код, выводимый при истинности указанного условия (может полностью отсутствовать, если необходима только проверка на ложность).
ложный_код – HTML-код, выводимый при ложности указанного условия (может полностью отсутствовать вместе с оператором '%ELSE%', если необходима только проверка на истинность).
условия – условия, применяемые к значению переменной. Допускается до 5 условий, разделенных вертикальной чертой '|', максимальная общая длина – 80 символов. Если условия не указаны, то выполняется проверка значения на истинность*. Синтаксис следующий:
[код_операции]операнд[|[код_операции]операнд[|[код_операции]операнд[|...]]]
операнд – второй операнд в операции. Может быть пустым, может содержать любые символы, кроме обратного слеша '\'. Вертикальная черта '|' и закрывающая круглая скобка ')' могут быть записаны как '\|' и '\)' соответственно.
код_операции – символ, определяющий вид операции сравнения:
= - полное совпадение значения с операндом (строковое сравнение с учетом регистра);
! - несовпадение значения с операндом (отрицание строкового сравнения с учетом регистра);
~ - совпадение начала значения с операндом (строковое сравнение с учетом регистра первых L символов значения, где L – длина операнда);
> - значение численно больше операнда (численное сравнение целых или дробных десятичных чисел);
< - значение численно меньше операнда (численное сравнение целых или дробных десятичных чисел);
Если код_операции отсутствует (не равен ни одному из перечисленных выше символов) и
операнд не пустой, то подразумевается операция '=' (учтите, что список операций может быть расширен, поэтому лучше всегда явно указывать '='). Если отсутствует и
код_операции, и операнд, то производится проверка значения на истинность*.
* Значение считается ложным (не истинным), если оно пустое или равно '0' (т.е. '4', 'Hello', '#%B', '00' или '0.0' считаются истинными).
Примеры: 1)
Вы %IF($USER_LOGGED_IN$)%зашли как "$USERNAME$"%ELSE%не выполнили вход%ENDIF%.
выведет (подставив значение $USERNAME$)
Вы зашли как "$USERNAME$".
если $USER_LOGGED_IN$ истинна, или иначе
Вы не выполнили вход.
2)
%IF($USERNAME$=Hacker|=bad_boy|~anti)%Пошел прочь, $USERNAME$!!!%ENDIF%
выведет (подставив значение $USERNAME$)
Пошел прочь, $USERNAME$!!!
если $USERNAME$ совпадает с 'Hacker' или 'bad_boy', или начинается на 'anti'.
3)
%IF($POSTS$>50)%***%ELSE%%IF($POSTS$>10.0)%**%ELSE%*%ENDIF%%ENDIF%
выведет ' ***', если $POSTS$ больше 50, ' **', если больше 10 и меньше-равно 50, и ' *', если меньше-равно 10.
Источник: http://ucoz3.ucoz.ru/IFELSE.htm |