work@lienusowl.ru

Полное портфолио: zsws.ru

Сниппет If для modx revo

Рассмотрим простой пример работы сниппета (перед началом работы его нужно установить из установщика приложений и репозиториев):

    !If? 
    &subject=`` 
    &operator=empty 
    &then=``  
    &else=`#`

Как работает данное условие - проверяем, если к примеру идет проверка - существует некое tv (&subject=``) и оно пустое (&operator=empty) тогда ни чего не выводить (&then=``), иначе вывести ссылку (&else=`#`)


Использование

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

    
    I f
    

На случай, если объект, указанный в параметрах, может быть изменен до того, как кэш ресурса будет очищен, используйте не кэшируемый вызов сниппета в двойных скобках:

    
    !If
    

Параметры

Название Описание По умолчанию
subject Параметр, по которому выполняются условия.
operator Оператор сравнения с subject =
operand Используеться по необходимости и являет собой значение subject (предмета сравнения) с использованием operator (оператора сравнения).
then Код, который выводиться в том случае если условие принимает значение true
else Код, который выводиться в том случае если условие принимает значение false
debug Если значение true, отобразит все переданные параметры 0
die Если отладка (debag) прошла успешно и соответствует значению true, то после вывода параметров применить функцию die(). 0

Операторы

Название Описание
!=,neq,not,isnot,isnt,unequal,notequal Проверяет если subject не равен указанному значению operand
==,=,eq,is,equal,equals,equalto Проверяет если subject равен указанному значению operand
<,lt,less,lessthan Проверяте если subject меньше указанного значения operand
>,gt,greater,greaterthan Проверяет если subject больше указанного значения operand
<=,lte,lessthanequals,lessthanorequalto Проверяет если subject меньше или равно указанного значения operand
>=,gte,greaterthanequals,greaterthanequalto Проверяет если subject больше или равно указанного значения operand
isempty,empty Проверяет если subject имеет пустое значение
!empty,notempty,isnotempty Проверяет если subject имеет какое-либо значение
isnull,null Проверяет если subject равен null
inarray,in_array,ia Проверяет если subject найден в списке operand (строка разделённая запятой)

Сравнение чисел:

!If? 
	&subject=`` 
	&operator=`GT` 
	&operand=`3` 
	&then=`You have more than 3 items!`

Сравнение строк:

!If?
   &subject=``
   &operator=`EQ`
   &operand=`George`
   &then=`Hey George! Long time no see!`
   &else=`You're not George. Go away.`

Встраиваемый вызов сниппета:

!If?
   &subject=`0`
   &operator=`EQ`
   &operand=`0`
   &then=``
   &else=``

При использовании сниппета If для проверки поля ресурса или переменной шаблона (или другого значения, которое не изменяеться до очистки кэша) - убедитесь что вы используете кэшируемый вызов сниппета для проверки условия. В таком случае, проверку не прийдёться обрабатывать при каждом запросе.

If?
   &subject=``
   &operator=`EQ`
   &operand=`1`
   &then=`This resource is not visible in the menu.`
   &else=`This resource shows up in the menu in spot 1.`

Пример с inarray:

If?
   &subject=`90`
   &operator=`inarray`
   &operand=`3,4`
   &then=`This text will show if id is 3 or 4.`
   &else=`This text is printed for all other resource id's.`