Modx *id не = `` и isnot = `` не работает

Привет, может кто-нибудь помочь мне с правильным кодом для этого оператора, потому что он не работает для меня.

[[*id:isnot=`250` and isnot=`252`:then=`[[$qc-wrap]]`]]

person mgonz    schedule 29.07.2020    source источник


Ответы (3)


Вы используете неправильный синтаксис, исправьте следующим образом:

[[*id:isnot='250':and:isnot='252':then='[[$qc-wrap]]']]

Не забудьте заменить ' на ' в этом примере

person Anton Tarasov    schedule 30.07.2020

Более производительный синтаксис:

[[[[*id:isnot=`250`:or:isnot=`252`:then=`$qc-wrap`:else=``]]]]

Я думаю, что здесь уместно использовать or, а не and.

Эта статья отлично подходит для понимания условий MODX:

https://sepiariver.com/modx/modx-output-filters-if-phx-conditional-statements-tutorial/

И это для понимания приведенного выше синтаксиса и почему он более эффективен:

https://modx.com/blog/2012/09/14/tags-as-the-result-or-how-conditionals-are-like-mosquitoes/

person LIannotti    schedule 30.07.2020

Более простое решение этого вопроса — использовать модификатор вывода :inarray для возврата пустой строки и использовать модификатор вывода :default для настройки вывода для всего, что не соответствует 250 или 252:

[[*id:inarray=`250,252`:then=``:default=`[[$qc-wrap]]`]]
person CJHolowatyj    schedule 05.02.2021