if

    if

    Сніпет виводить інформації за умовою

    Як працює?

    Якщо при виклику 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`]]