Якщо при виклику if
умова в параметрі is
виконується, то виведеться вміст параметра then
, якщо ні - вміст параметра else
.
Якщо необхідно нічого не виводити через then
або else
, то можна зовсім не задавати цей параметр.
При роботі з зовнішніми плейсхолдерами необхідно викликати сніппет некешованим.
А зовнішній плейсхолдер це, наприклад, [+pages+]
з Ditto.
// приклад виклику кешованого...
[[if? &is=`[*parent*]:=:5` &then=`true` &else=`false`]]
// і некешованого if
[!if? &is=`[*parent*]:=:5` &then=`true` &else=`false`!]
Параметр | Опис | Можливі значення | По-замовчуванню |
---|---|---|---|
is | Оброблювана умова | що порівнюємо: як порівнюємо: з чим порівнюємо | Пусто |
then | Вміст для виведення, якщо умова вірна | @tpl:chunkname або будь-який html-код з тегами MODX |
Пусто |
else | Вміст для виведення, якщо умова не вірна | @tpl:chunkname або будь-який html-код з тегами MODX |
Пусто |
math | Включає виконання математичних функцій в параметрі is |
on | Пусто |
separator | Роздільник в умові | Наприклад, ~ |
: |
Для того щоб парсер не обробляв варіант і then
і else
, як це робить PHx, викликайте: &then='@TPL:chunkname'
— де chunkname
- ім'я чанка.
У цьому випадку буде виконаний тільки результуючий чанк.
is, = - дорівнює
not, != - не дорівнює
>, gt - більше
<, lt - менше
>=, gte - більше або дорівнює
lte, <= - менше або дорівнює
isempty, empty - перевірка на порожнечу
not_empty, !empty - перевірка на заповненість
null, is_null - перевірка, чи є значення змінної рівним NULL
in_array, inarray, in - наявність в масиві
not_in, !in - відсутність в масиві
contains - наявність в рядку
not_contains, !contains - відсутність в рядку
is=`[+id+]*10:=:30`
1) Виводити акцію потрібно тільки в каталозі з ID = 5
[[if? &is=`[*parent*]:=:5` &then=`@TPL:akcia`]]
2) Виводити акцію потрібно тільки в каталозі з ID = 5 або в каталозі з шаблоном №7,8,9
[[if? &is=`[*parent*]:=:5:or:[*template*]:in:7,8,9` &then=`@TPL:akcia`]]
3) Виводити акцію потрібно тільки в каталозі з ID = 5 і тільки в ресурсі з шаблоном №2
[[if? &is=`[*parent*]:=:5:and:[*template*]:=:2` &then=`@TPL:akcia`]]
4) Виводити акцію потрібно тільки в каталозі з ID = 5 і тільки в ресурсі з шаблоном №2 або в інших шаблонах але з ТВ show_akcia = 1
[[if? &is=`[*parent*]:=:5:and:[*template*]:=:2:or:[*show_akcia*]:=1` &then=`@TPL:akcia`]]
5) Виводити акцію тільки для товарів з ціною в діапазоні >300$ <=700$
[[if? &is=`[*price*]:>:300:and:[*price*]:<=:700` &then=`@TPL:akcia`]]
6) Виводити при кратності запису Ditto 3
[[if? &is=`[+ditto_iteration+]+1:%:3` &then=`true` &else=`false`]]
[[if? &is=`[+ditto_index+]+1:%:3` &then=`true` &else=`false`]]
7) Виводити при кратності запису Ditto 3 але з множенням значення
[[if? &is=`[+ditto_iteration+]*2:%:3` &then=`true` &else=`false` &math=`on`]]
8) Виводити значення математичного виразу
[[if? &is=`[+ditto_iteration+]*2` &math=`on`]]