Модификатор | Описание | Пример использования |
if, input | if - задает дополнительное условие input - добавляет в тег обратываемые данные |
[ [*id:is=`1`:and:if=`[ [*id]]`:ne=`2`:then=`da`:else=`net`]] |
or | Объединение нескольких модификаторов связью ИЛИ |
[ [*id:is=`5`:or:is=`6`:then=`номер 5 или 6`:else=`другой номер`]] |
and | Объединение нескольких модификаторов связью И |
[ [*id:is=`1`:and:if=`[ [*id]]`:ne=`2`:then=`da`:else=`net`]] |
isequalto, isequal, equalto, equals, is, eq | Сравнивает передаваемое значение с установленным. Если значения совпадают, выводится значение «then», если нет - «else» |
[ [*id:is=`5`:then=`номер 5`:else=`номер не 5`]] |
notequalto, notequals, isnt, isnot, neq, ne | Сравнивает передаваемое значение с установленным. Если значения НЕ совпадают, выводится значение «then», если нет - «else» |
[ [*id:isnot=`5`:then=`номер не 5`:else=`видимо номер 5`]] |
greaterthanorequalto, equalorgreaterthen, ge, eg, isgte, gte | То же, только условие «Больше или равно» |
[ [*id:gte=`5`:then=`номер 5 или больше`:else=`меньше пятого номера`]] |
isgreaterthan, greaterthan, isgt, gt | То же, только условие «Строго больше» |
[ [*id:gt=`5`:then=`номер больше пяти`:else=`номер 5 или меньше`]] |
equaltoorlessthan, lessthanorequalto, el, le, islte, lte | То же, только условие «Меньше или равно» |
[ [*id:lte=`5`:then=`номер 5 или меньше`:else=`больше, чем номер 5`]] |
islowerthan, islessthan, lowerthan, lessthan, islt, lt | То же, только условие «Строго меньше» |
[ [*id:lte=`5`:then=`номер точно меньше 5`:else=`номер 5 или больше`]] |
hide | Скрывает элемент, если условие выполняется |
[ [*id:lt=`1`:hide]] |
show | Отображает элемент, если условие выполняется |
[ [*id:gt=`0`:show]] |
then | Используется для составления условий |
[ [*id:gt=`0`:then=`Книги в наличии!`]] |
else | Используется для составления условий (совместно с «then») |
[ [*id:gt=`0`:then=`Книги в наличии!`:else=`Простите, но все продано.`]] |
select | Установить свое значение, в зависимости от модификатора и вывода тега. Так же можно использовать "else", например если значение [ [+controls]] - не подходит под шаблон select |
[ [+controls:select=`0=ВЫКЛ&1=ВКЛ&2=ХЗ`:else=`Ошибка`]] |
memberof, ismember, mo | Проверяет, является ли пользователь членом указанной группы пользователей |
[ [+modx.user.id:memberof=`Administrator`]] |
Имя |
Описание |
Значение “по умолчанию“ |
subject |
Параметр, над значением которого выполняются условия. |
|
operator |
Оператор сравнения с subject |
= |
operand |
Используется при необходимости, значение для сравнения subject и operator. |
|
then |
Выводится, если состояние принимает значение true |
|
else |
Выводится, если состояние принимает значение false |
|
debug |
Если значение true, отображает все проверенные свойства |
0 |
die |
Если прошло обработку debug и значение 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 равен 0 |
inarray,in_array,ia |
Принимается если subject найден в списке операндов (строковый параметр, разделитель - запятая) |
[ [!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 8.` ]]Скачиваем и устанавливаем пакет IF Например, нам нужно что бы слайдер отображлся только на главной странице, с id=1, тогда вставляем в шаблон:
[ [If? &subject=`117` &operator=`EQ` &operand=`1` &then=``]]или через модификаторы
[ [*id:is=`1`:then=``:else=``]]Еще например, нам надо что бы выводился ЗАГОЛОВОК, если РАСШИРЕННЫЙ ЗАГОЛОВОК пуст, тогда вписываем:
[ [If? &subject=`` &operator=`notempty` &then=``&else=`Конструкция условий if else в MODx` ]]или
[ [*longtitle:is=``:then=`Конструкция условий if else в MODx`:else=``]]