меню

Что такое IF?

Условный логический сниппет, обеспечивающий выполнение условных выражений в MODx

История создания

IF написан Джейсоно Ковардом (Jason Coward), известным как opengeek, и Шоном Маккормиком, известным как splittingred и опубликован 29 октября 2009.

Загрузка

Вы можете загрузить ПО с помощью менеджера MODx Revolution, используя Package Management, или из хранилища дополнений MODx.

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

Сниппет If может быть вызван с использованием тегов:

  
[[If]]
  

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

  
[[!If]]
 

Доступные свойства IF

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

Доступные операторы IF

Оператор Описание
!=,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

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

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

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

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

  
[[!If?
   &subject=`[[+modx.user.id]]`
   &operator=`EQ`
   &operand=`0`
   &then=`[[Login]]`
   &else=`[[Logout]]`
]]
  

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

 
[[If?
   &subject=`[[*hidemenu]]`
   &operator=`EQ`
   &operand=`1`
   &then=`This resource is not visible in the menu.`
   &else=`This resource shows up in the menu in spot [[*menuindex]].`
]]
 
Помощь сайту
ЮMoney:
4100 1180 7209 833
Карта Сбербанк:
2202 2080 6183 7127
MindForge: Pull Request наставник для GitHub
MindForge: Pull Request наставник для GitHub
Превратите свой пет-проект в эффективный тренажёр роста

Возможно, вам будет интересно

MODx Revo - поиск по сайту SimpleSearch modx

Для создания поиска по сайту необходимо установить пакет SimpleSearch. Затем в ресурсах создаем ресурс ПОИСК и вписываем туда [[!SimpleSearch]]. Запоминаем id этого ресурса, это страница вывода результатов поиска. В шаблон где находится сама форма поиска вставляем следующий код: [[!SimpleSearchForm? &landing=`1` &tpl=`MySForm`]]

По шаговое обновление Modx Revolution до последней версии

В данной статье будет описано пошаговое обновление ядра MODx Revo. Речь пойдет, как обновить Ваш сайт на Modx Revolution до последней версии. Все достаточно просто и не потребует особых знаний.

RESTful API в MODX Rrevolution

В MODX 2.3 был замечен удобный способ разработки API-интерфейсов RESTful поверх MODX. Это делается с поддержкой класса modRestService и производных modRestController. Он поддерживает большое количество интересных функций для взаимодействия с экземплярами xPDOObject.

Быстрый старт в MODX Revolution

Revolution дорос уже до версии 2.3.2, но большинство разработчиков не спешит его использовать, так как документация еще не полная, да и статей на русском очень мало.